Go to file
Levi Neely 6e1fc063fa Remove event stream and pubsub bus; add file rename on metadata change
The pubsub event endpoint was only used for physical file sync, which is
no longer needed now that reads/writes go directly through 9P. Removed
the /event file, pubsub message bus, and all Publish calls.

Added renameNote helper that renames the physical file and updates
note.Path whenever title, keywords, signature, or body frontmatter
changes, keeping the denote filename in sync with in-memory metadata.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 22:10:37 +01:00
internal Remove event stream and pubsub bus; add file rename on metadata change 2026-03-21 22:10:37 +01:00
pkg Initial commit: denotesrv 9P server for denote notes 2026-03-20 16:46:47 +01:00
.gitignore Initial commit: denotesrv 9P server for denote notes 2026-03-20 16:46:47 +01:00
LICENSE Initial commit: denotesrv 9P server for denote notes 2026-03-20 16:46:47 +01:00
README.md Update plan9port branch name 2026-03-20 17:37:10 +01:00
go.mod Remove event stream and pubsub bus; add file rename on metadata change 2026-03-21 22:10:37 +01:00
go.sum Remove event stream and pubsub bus; add file rename on metadata change 2026-03-21 22:10:37 +01:00
main.go Add DENOTE_9MOUNT env var for mount path 2026-03-20 17:18:14 +01:00
mkfile Initial commit: denotesrv 9P server for denote notes 2026-03-20 16:46:47 +01:00

README.md

denotesrv

9P server for denote notes.

Dependencies

  • plan9port (wayland-9pfuse-truncate branch required for 9pfuse truncate fix)

Installation

mk install

Usage

denotesrv start       # background
denotesrv fgstart     # foreground
denotesrv status
denotesrv stop

On startup, the server automatically mounts at ~/mnt/denote via 9pfuse. Use -mount /path to override the mount location.

Environment

Variable Default Description
DENOTE_DIR ~/Documents/notes Notes directory
NAMESPACE /tmp/ns.$USER.:0 9P namespace

9P Filesystem

denote/
  ctl         (write) filter <query>, cd <path>, refresh
  event       (read)  Event stream
  index       (read)  Note metadata (respects filter)
  new         (write) Create note: "'title' tag1,tag2"
  n/
    <id>/
      backlinks (read)  Notes linking to this note
      body      (rw)    File content
      ctl       (write) 'd' to delete
      keywords  (rw)    Tags
      path      (rw)    Filesystem path
      signature (rw)    Note signature
      title     (rw)    Note title

See Also