Skip to content

docs: state the mkfifo mechanism, and close the grant and AI-wrap gaps - #62

Merged
bukershok merged 1 commit into
mainfrom
docs-mechanism-and-coverage-gaps
Aug 16, 2026
Merged

docs: state the mkfifo mechanism, and close the grant and AI-wrap gaps#62
bukershok merged 1 commit into
mainfrom
docs-mechanism-and-coverage-gaps

Conversation

@menitasa

Copy link
Copy Markdown
Contributor

Docs-only. Two drivers: a staleness audit against the shipped CLI, and the questions the HN thread kept asking that the docs did not answer.

The mechanism people could not find

Readers asked how a file read reaches the vault and could not find it: the docs said "local encrypted store" in many places and never named the mechanism. README, how-it-works.md and run/mounts.md now state it plainly, a POSIX FIFO at mode 0600, open(2) blocking until the service connects O_WRONLY, bytes moving from memory into the kernel pipe buffer, and the re-open loop that lets it be read more than once. No kernel extension, no filesystem driver. Checked against internal/mount before writing.

Coverage gaps

  • jit grant shipped in v0.80.0-era and reached none of the onboarding pages. It lived only in service/grants.md, the README and the generated reference, so a reader walking quickstart to run to tools never met it. Now a quickstart step, a run-guide section and a tools row.
  • The five AI wrappers from v0.84.0 (cursor-agent, copilot, cline, opencode, kiro-cli) had their own pages but appeared in neither tool list.
  • PR vault orphans/rm: a deleted project must not brick the cleanup #57's stale mount registrations and group-aware vault rm, and PR doctor: route the vault hygiene sweeps in as advisory findings #58's doctor hygiene routing, reached the generated reference but no prose page.

Corrections found by checking claims

  • security/brief.md claimed "no network calls, no auto-update", untrue since jit upgrade landed. It now describes the one outbound request and what it verifies before installing.
  • Quickstart still called scan "audit", stale since the rename.
  • A broken anchor in environment-variables.md (two hyphens, needs three).

Install ordering

The tarball sat beside brew as an equal alternative with the signing rationale ten lines below, which read as recommending the weaker path. The caveat now sits with the command, and the tarball carries its own shasum and codesign verification lines.

New answers

Full-disk encryption solving a different problem, memory being explicitly out of scope, what the crypto actually is (stdlib AES-256-GCM, with Argon2id from x/crypto for export passphrases only), and an honest comparison against age, SOPS, dotenvx, 1Password and systemd-creds.

Verification

  • Generated command reference regenerated: no drift
  • All relative links and heading anchors across README and docs/ resolve
  • go build ./... clean, no code touched

Not included

The em dash in jit scan output (internal/audit/triage.go) breaks the voice guide's hard rule, but changing it is a terminal-output change and wants a preview script first. Prose em dashes on the entry and security pages are fixed here; sample output blocks keep theirs because they accurately reproduce what the CLI prints.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HU9CJPZU9B5JydjLqr4js4

Readers kept asking how a file read reaches the vault and could not find
the answer: the docs said "local encrypted store" in many places and never
named the mechanism. The README, how-it-works and mounts now state it
plainly - a POSIX FIFO at mode 0600, open(2) blocking until the service
connects O_WRONLY, bytes going from memory into the kernel pipe buffer, and
the re-open loop that lets it be read more than once. No kernel extension,
no filesystem driver. Verified against internal/mount before writing.

jit grant shipped in v0.86.0 and reached none of the onboarding pages: it
lived only in service/grants.md, the README and the generated reference,
so a reader walking quickstart -> run -> tools never met it. It is now a
quickstart step, a run-guide section and a tools row. Same story for the
five AI wrappers added in v0.84.0 (cursor-agent, copilot, cline, opencode,
kiro-cli), which had their own pages but appeared in neither tool list.

The install section put the tarball beside brew as an equal alternative
with the signing rationale ten lines below, which read as recommending the
weaker path. The caveat now sits with the command, and the tarball carries
its own shasum and codesign verification lines.

Corrections found while checking claims rather than trusting them:

- security/brief claimed "no network calls, no auto-update", untrue since
  jit upgrade landed in v0.41.0. It now describes the one outbound request
  and what it verifies before installing.
- quickstart still called scan "audit", stale since the v0.33.0 rename.
- PR #57's stale mount registrations and group-aware vault rm, and PR #58's
  doctor hygiene routing, reached the generated reference but no prose.
- a broken anchor in environment-variables.md (two hyphens, needs three).

Also answers the questions the docs were repeatedly asked but never
addressed: full-disk encryption solving a different problem, memory being
explicitly out of scope, what the crypto actually is (stdlib AES-256-GCM,
with Argon2id from x/crypto for export passphrases only), and an honest
comparison against age, SOPS, dotenvx, 1Password and systemd-creds.

Prose em dashes removed from the entry and security pages per the voice
guide. Sample output blocks keep theirs, because the CLI really prints one
(internal/audit/triage.go); changing that is a terminal-output change and
wants a preview first.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HU9CJPZU9B5JydjLqr4js4
@bukershok
bukershok merged commit 696ead4 into main Aug 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants