Commit Graph
12 Commits
Author SHA1 Message Date
eezd 0ce509a0fe Finish shortcut dispatch and verify file operation safeguards 2026-10-21 16:34:29 +08:00
eezd ffc95d6dbc Add tree multiselection, batch actions and Markdown export 2026-10-21 16:10:49 +08:00
eezd d253536009 Add image listing and asset management
Show images in asset directories with preview, rename, replacement, and trash recovery. Update local Markdown references when images move and restore original files if related metadata cannot be committed.

Refresh image previews after replacement and compare actual contents when deduplicating subsequent uploads.
2026-10-21 15:14:07 +08:00
eezd 34d2acbbd5 Add Markdown and ZIP notebook import 2026-10-21 12:56:38 +08:00
eezd fcd0fdd7a4 Recognize sibling ordered list items when rewriting asset links 2026-10-21 11:32:48 +08:00
eezd 2df1ab87df Preserve code samples and watcher state during file updates 2026-10-20 18:59:41 +08:00
eezd 84e89c8fe4 Support live recursive folder shares and follow subject moves 2026-10-20 17:20:23 +08:00
eezd df064155c7 Preserve vault state on failed file operations 2026-10-20 12:46:55 +08:00
eezd 5ac01894e6 Add read-only sharing, API tokens and OpenAPI spec
- Share a note as a live read-only page at /s/{token} with optional password and expiry
- Share page renders with the shared parser (TOC, footnotes, math, Mermaid, code highlighting)
  and only serves images from the note's own .assets directory
- Shares follow renames made through the API or externally
- Manage shares and API tokens from the command palette and file tree
- Accept read/write API tokens as Bearer credentials; management endpoints require a session
- Serve a hand-written openapi.json, checked against the route table in tests
2026-10-17 15:21:47 +08:00
eezd 3c98a6bbd9 Revert "Add encrypted note storage and keyring endpoints"
This reverts commit 35d3138c7d.
2026-10-17 14:56:23 +08:00
eezd 35d3138c7d Add encrypted note storage and keyring endpoints
- Treat name.md.enc as encrypted notes; forbid coexisting twins sharing assets
- Convert between plain and encrypted notes via PUT ?convertFrom
- Store keyring at .rawmark/keyring.json with versioned writes
- Allow permanent deletion of single asset files
- Exclude encrypted notes from the search index
2026-10-17 14:24:55 +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