feat: ШАГ 1 — Bridge HTTP-сервер для браузерного расширения

- internal/core/bridge/ — лёгкий HTTP-сервер на 127.0.0.1
  - POST /api/events — приём батча событий от расширения
  - GET /api/ping — healthcheck для расширения
  - X-Verstak-Secret — аутентификация по shared-secret
  - AutoGenPort — случайный порт если 9786 занят
- config.BridgeConfig — порт, секрет, auto_gen_port
- App: интеграция startBridge/stopBridge при open/close vault
- bindings_bridge.go — BridgeInfo(), startBridge(), saveBridgeConfig()
- Тесты: ping, auth, success, empty batch, secret gen, auto-port
This commit is contained in:
2026-06-06 18:23:47 +08:00
parent f88376264d
commit 358c649b42
20 changed files with 1676 additions and 21 deletions
@@ -0,0 +1,16 @@
package storage
// migration017 — watcher tracking table.
const migration017 = `
CREATE TABLE IF NOT EXISTS watcher_state (
id INTEGER PRIMARY KEY AUTOINCREMENT,
fs_path TEXT NOT NULL,
size INTEGER NOT NULL DEFAULT 0,
mod_time TEXT NOT NULL DEFAULT '',
sha256 TEXT NOT NULL DEFAULT '',
last_checked TEXT NOT NULL,
UNIQUE(fs_path)
);
CREATE INDEX IF NOT EXISTS idx_watcher_state_path ON watcher_state(fs_path);
`
+1
View File
@@ -73,6 +73,7 @@ var migrationFiles = map[int]string{
14: migration014,
15: migration015,
16: migration016,
17: migration017,
}
func (db *DB) runInitialSchema() error {