4 Commits
Author SHA1 Message Date
eezd e239fff253 fix(platform): support Windows storage and native filesystem boundaries 2026-10-27 14:47:25 +08:00
eezd 1b2b2b12ff feat(api): require bearer authentication and unify response contracts 2026-10-25 20:42:20 +08:00
eezd a923c2dfb9 feat(knowledge): index note relationships and maintain moved links 2026-10-22 14:52:37 +08:00
eezd c4d2bd4636 feat(server): add Go backend with vault, auth, events and REST API
- vault: path validation (no traversal, hidden segments or symlink
  escape), atomic writes with If-Match/If-None-Match revisions, moves
  that carry the note's .assets folder and rewrite its image links,
  trash with restore, content-addressed asset uploads
- auth: single-user Argon2id password, sliding sessions in SQLite,
  login rate limiting, first-run setup gated by a one-time code written
  to the data directory
- watch: fsnotify plus periodic rescans diffed against a snapshot, so
  both RawMark and external edits are broadcast as tree/changed/moved/
  deleted events over WebSocket
- api: stdlib router, SameSite=Strict cookies plus Origin checks,
  sandboxed raw file serving, embedded SPA with gzip and CSP
2026-10-16 18:23:23 +08:00