verstak/internal/core
mirivlad 45cfe1b0a6 fix: финальный cleanup Lua plugin lifecycle
1. ActivatePlugin → error return:
   - Возвращает ошибки при создании VM, загрузке main.lua, scheduler setup
   - on_init failure = non-fatal (logged, activation continues)
   - SetPluginEnabled сохраняет EnabledPlugins в config ТОЛЬКО после успешной активации
   - При ошибке активации — rollback (deactivate + не сохраняем в config)

2. CallPluginFunction fully thread-safe:
   - Новый метод LuaVM.CallFunctionJSON(segments, paramsJSON)
   - JSON→Lua conversion происходит под vm.mu (внутри lock)
   - Убраны parseParamsToLua/goToLua из bindings_plugins.go
   - goToLua перенесён в runtime.go (под lock)

3. PluginPage → CalendarPluginPage:
   - Компонент явно календарный (get-events/create-event/update-event/delete-event)
   - Переименован для ясности
   - Console log префиксы обновлены

4. Тесты:
   - TestSetPluginEnabled_ActivateFails_NoConfigSave: проверяет что при ошибке
     активации плагин НЕ сохраняется в EnabledPlugins
   - TestActivatePlugin_ErrorReturn: проверяет все режимы ошибок
   - TestCallFunctionJSON_ThreadSafe: JSON object/array/empty params
   - TestDeactivatePlugin_Idempotent: двойная деактивация = no-op
   - TestInitRuntimes_SkipsDisabled: только Enabled плагины активируются
2026-06-07 22:58:26 +08:00
..
actions stabilization: server.go split + i18n templates + frontend localization 2026-06-02 11:08:29 +08:00
activity feat: ШАГ 1 — Bridge HTTP-сервер для браузерного расширения 2026-06-06 18:23:47 +08:00
bridge feat: плагин-система Lua + Calendar reference plugin 2026-06-07 14:59:46 +08:00
browser feat: ШАГ 2 — Staging-таблица browser_events + Store 2026-06-06 18:27:00 +08:00
config feat: plugin install/uninstall lifecycle + UI buttons 2026-06-07 15:28:37 +08:00
files feat: ШАГ 1 — Bridge HTTP-сервер для браузерного расширения 2026-06-06 18:23:47 +08:00
nodes feat: ШАГ 1 — Bridge HTTP-сервер для браузерного расширения 2026-06-06 18:23:47 +08:00
notes fix: complete vault layout transition — fs_path everywhere, no more spaces/ 2026-06-02 15:43:40 +08:00
plugins fix: финальный cleanup Lua plugin lifecycle 2026-06-07 22:58:26 +08:00
search feat: restore global search in app header 2026-06-06 02:39:29 +08:00
storage feat: ШАГ 2 — Staging-таблица browser_events + Store 2026-06-06 18:27:00 +08:00
sync test: comprehensive sync package unit tests (37 new tests) 2026-06-03 09:16:38 +08:00
templates refactor: implement template-driven node tree and human-readable vault layout 2026-06-02 12:47:06 +08:00
util step 2: init command + SQLite storage + migrations + config 2026-05-30 18:58:47 +08:00
vault step 2: init command + SQLite storage + migrations + config 2026-05-30 18:58:47 +08:00
watcher feat: плагин-система Lua + Calendar reference plugin 2026-06-07 14:59:46 +08:00
worklog feat: edit and delete worklog entries 2026-06-05 00:48:12 +08:00
doc.go step 1: skeleton - go module, CLI stub with --version, structure 2026-05-30 18:42:19 +08:00
smoke_test.go fix: third stabilization pass — template children as nodes, atomicity, fs_path validation, sync_apply compat, smoke test 2026-06-03 02:05:53 +08:00