feat: плагин-система Lua + Calendar reference plugin

- Lua VM runtime: gopher-lua с песочницей, хуки on_init/on_tick/on_shutdown
- API: verstak.node.* / verstak.db.* / verstak.config.* / verstak.state.*
- API: verstak.worklog.* / verstak.activity.* / verstak.file.*
- API: verstak.schedule.* / verstak.http.* / verstak.ui.*
- Менеджер плагинов: жизненный цикл, инициализация, шаблоны
- Scheduler: фоновые задачи с интервалами
- PluginPage.svelte: контейнер для iframe-панелей плагинов
- Calendar plugin: миграция, категории CRUD, события CRUD
- Calendar: расширенный рекарренс (daily/weekly/monthly/yearly)
- Calendar: связь с узлами Верстака, напоминания, HTTP-праздники
- Calendar: Lua-тест-сьют (15 тестов), Go-интеграционный тест
- fix: query_row использует реальные Column() вместо guessColumns
This commit is contained in:
2026-06-07 14:59:46 +08:00
parent 8cbc87cdad
commit b80941f908
40 changed files with 4366 additions and 233 deletions
+2 -2
View File
@@ -65,10 +65,10 @@ type SyncSettings struct {
// BridgeConfig holds local HTTP bridge settings for browser extension.
type BridgeConfig struct {
Enabled bool `json:"enabled,omitempty"` // enable/disable bridge server
Enabled bool `json:"enabled"` // enable/disable bridge server
Port int `json:"port"` // listen port (default 9786)
Secret string `json:"secret,omitempty"` // shared secret for extension auth
AutoGenPort bool `json:"auto_gen_port,omitempty"` // pick random port if port taken
AutoGenPort bool `json:"auto_gen_port"` // pick random port if port taken
}
func DefaultAppConfig() *AppConfig {