Repository navigation
v0.7.0
Outlines are re-encoded as text rows addressed by minimal unique suffixes (ADR-0026), cutting the vault-wide outline payload to ~22% of the previous encoding.
Breaking changes
read_outlinesreturns a text block, not a heading array.NoteOutline.headingsis replaced byNoteOutline.outline: one<line> <#×level> <title>row per heading in document order, following theread_notescontent-string envelope pattern. The grammar is unambiguous by construction — titles cannot contain newlines, heading rows start with a digit, marker rows with↳. The response budget now measures rendered rows.- Heading addresses are minimal unique suffixes. Each heading carries the shortest ancestor-chain suffix that
resolve_headingmaps back to it, emitted as a↳ heading_path: [...]row only under headings whose bare title does not resolve.occurrencebecomes optional and is set only when even the full chain is duplicated; theambiguousfield is dropped — a multi-element address is the signal, and it answers the question agents actually have: does the bare title suffice?
Fixes
search_notesmatches CJK terms across spacing and inline style. Korean spaces words optionally, so전역지침and전역 지침are one term, but the query was split on whitespace and matched as literal substrings — the two directions disagreed, and**전역** 지침never matched전역지침. A second scan now runs over a shadow copy with CJK-adjacent gaps folded, unioned with the raw scan; snippets andmatch_countstill report original bytes.- The Windows build compiles again. The OAuth token store reached for unix-only file-permission APIs, so
x86_64-pc-windows-msvcfailed to compile and no Windows binary was attached; closes #10. - Ambiguity errors point at the outline's
↳address rows instead of a heading flag the outline no longer emits.
Notes
- Measured on a real vault (156 notes / 3107 headings): 99.2% of headings resolve by bare title, and every emitted address round-trips through
resolve_heading. - The
read_outlinesdescription now names the ~10 KB threshold (seesize_bytesinlist_notes) above which outline-first reads pay off, and states the small-note fast path explicitly. - The OAuth store stays owner-only (
0600) on unix; Windows has no mode bits, so it inherits the state directory's ACL — keepMD_STATE_DIRunder a per-user location. - The Windows release asset remains best-effort and does not block the Linux binary.