All checks were successful
CI/CD / detect-changes (pull_request) Successful in 18s
CI/CD / test-frontend (pull_request) Successful in 5s
CI/CD / test-go-pg (pull_request) Successful in 2m42s
CI/CD / test-sqlite (pull_request) Successful in 2m59s
CI/CD / build-and-deploy (pull_request) Successful in 1m24s
Add realtime pub/sub: Starlark realtime.publish() module gated by new realtime.publish permission, WS room protocol (room.subscribe/ room.unsubscribe intercepted in readPump with 100-room cap), and SDK sw.realtime.subscribe() with auto room join/leave and reconnect recovery. Migrate 5 bare confirm() calls to sw.confirm() with destructive styling in tasks, schedules, notes (×2), and editor packages. Add admin permissions UI: per-permission grant/revoke drawer, Grant All bulk action, pending_review/suspended status badges, disabled enable toggle when pending. Closes v0.4.7 permissions UI gap. 8 new Go tests, all passing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Notes
Markdown notes surface with sidebar navigation, live preview, and search.
Status: v0.1.0
Core CRUD with markdown textarea and inline preview.
Features
- Create, edit, archive notes
- Markdown editing with live preview toggle
- Auto-save with debounce (1s)
- Pin important notes to top
- Full-text search across title and body
- Light/dark theme support
Planned
- v0.4.1: Folders + navigation tree
- v0.4.2: Tags + enhanced search
- v0.4.3: Backlinks +
[[wikilinks]] - v0.4.4: Rich editor (CodeMirror 6) + import/export
- v0.4.5: Editor modes (rendered/edit/split) + document outline
Data
Single notes table in ext_data:
| Column | Type | Description |
|---|---|---|
| title | text | Note title |
| body | text | Markdown content |
| folder_id | text | Folder reference (v0.4.1) |
| pinned | int | 0 or 1 |
| archived | int | Soft delete flag |
API
| Method | Path | Description |
|---|---|---|
| GET | /notes | List notes (lightweight, no body) |
| POST | /notes | Create note |
| GET | /notes/:id | Get note with full body |
| PUT | /notes/:id | Update note |
| DELETE | /notes/:id | Archive (or hard delete with ?hard=1) |
| GET | /search?q=term | Search title and body |
| GET | /stats | Note counts |
Keyboard Shortcuts
Ctrl/Cmd+S— Force saveTab— Insert two spaces