readDir was slicing the serialized dir entry bytes at the raw byte boundary, splitting entries mid-stream. The plan9 client's dirUnpack stops on a truncated entry, so 9pfuse received nothing usable. Fix readDir to return only complete entries per read, as required by the 9P spec. Also warn-and-skip on ExtractMetadata errors in LoadAll instead of aborting the entire directory walk. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| internal | ||
| pkg | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| mkfile | ||
README.md
denotesrv
9P server for denote notes.
Dependencies
- plan9port (wayland-9pfuse-truncate branch required for
9pfusetruncate 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
- acme-denote — Acme frontend