Skip to content

veltro: migrate git service mount /n/git -> /mnt/git (INFR-401) - #520

Merged
pdfinn merged 1 commit into
masterfrom
ns/git-mnt
Aug 21, 2026
Merged

pdfinn merged 1 commit into
masterfrom
ns/git-mnt

Conversation

@pdfinn

@pdfinn pdfinn commented Aug 21, 2026

Copy link
Copy Markdown
Member

Summary

First of the four placement migrations (INFR-400–403), chosen first because the path is entirely tool-internal — no external consumers, so no compatibility bind needed.

  • appl/veltro/tools/git.b: git/fs now mounts at /mnt/git; all reads follow.
  • appl/veltro/nsconstruct.b: the grant moves from the /n allowlist block to the /mnt fixed-function block with identical gating (derived only from the git tool capability + stat, never from generic path grants); the manifest table emits git under the /mnt group; fixedservicecontrolpath adds /mnt/git and retains /n/git as a legacy control-path entry, following the existing /mnt/web+/n/web precedent. tools9p.b's parallel predicate updated in lockstep (the two copies remain a shared-predicate consolidation candidate).
  • lib/veltro/nsaudit/authorities/git, lib/veltro/tools/git.txt, lib/veltro/meta.txt, appl/veltro/SECURITY.md, and the three architecture docs that describe the live path — all updated in the same change, per the corpus rule that docs follow interface changes.
  • Bonus from the sweep: appl/cmd/webfs.b's stale default mountpt := "/n/web"/mnt/web (the tree already treats /mnt/web as canonical everywhere else).
  • Tests: veltro_security_test's git fixed-tree pair migrated (git tool sees /mnt/git without a raw grant; generic tools cannot); nsaudit rule fixture gains /mnt/git + /mnt/git/ctl.

Testing

Full veltro_security_test suite run in emu against this tree: 33 passed, 1 skipped, PASS — including RestrictNsGitToolDerived against the migrated path. All five touched modules recompiled via mk; verify-dis-paths green.

Note for merge ordering with #519 (docs sweep): no file conflicts; after both land, DESIGN-PRINCIPLES' legacy list still names /n/git among tracked migrations — accurate wording either way, tiny follow-up to trim it once INFR-400/402/403 complete.

Refs: INFR-401

🤖 Generated with Claude Code

https://claude.ai/code/session_017Eo29oZp7mPig1XekwRPsq

Placement convention (docs/NAMESPACE-LAYOUT.md): git/fs is an
app-authored tree the git tool mounts during trusted init, so it
belongs under /mnt. The tool's mount and all its reads move; the
nsconstruct grant moves from the /n allowlist block to the /mnt
fixed-function block (same gating: derived only from the git tool,
never from generic path grants); fixedservicecontrolpath in both
nsconstruct and tools9p carries /mnt/git with /n/git retained as a
belt-and-braces legacy entry, following the /mnt/web + /n/web
precedent; the namespace manifest emits git under the /mnt group.
Also fixes webfs.b's stale default mountpt (/n/web -> /mnt/web),
found in the placement sweep.

Tests: veltro_security_test's git fixed-tree pair migrated (tool
sees /mnt/git without a raw grant; generic tools do not) — full
suite run in emu: 33 passed, 1 skipped, PASS. nsaudit rule fixture
gains /mnt/git control paths. Docs and tool text describing the
live path updated in the same change.

Refs: INFR-401

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Eo29oZp7mPig1XekwRPsq
@pdfinn
pdfinn merged commit df5ea9e into master Aug 21, 2026
20 checks passed
@pdfinn
pdfinn deleted the ns/git-mnt branch August 21, 2026 21:20
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.

1 participant