Issue 1409; design 39 parts §15 and the lead's answer D3.
Live on novox after #665's delivery: novox/node-files.list {path: /var/lib/claude-licence-manager} (and /root) answers "cannot be listed, not even through sudo: sudo -n /usr/bin/find: fork/exec /usr/bin/sudo: invalid argument". listAsRoot's and searchBelowAsRoot's find -printf formats ended in a literal NUL byte since 5d98bcc0 (2026-10-16), and exec refuses an argument holding one, so no list or search through root ever ran on a node.
Quick fix: find writes \0 itself. Thorough, in the same commit: the tests' stand-in root refuses an argument holding a NUL as exec does, so every root call in the module is held to it (it found the search's instance). No other module in the repository passes such an argument.
Tests: TestTheReadsFallBackToRoot fails with either old format. vet, vet -tags integration, unit, gofmt pass.
Reviewed-by: mesh-code-reviewer@shanks at c29ef0d95e (round 1)
Pushed-by: fix-1965@shanks
Issue 1409; design 39 parts §15 and the lead's answer D3.
Live on novox after #665's delivery: novox/node-files.list {path: /var/lib/claude-licence-manager} (and /root) answers "cannot be listed, not even through sudo: sudo -n /usr/bin/find: fork/exec /usr/bin/sudo: invalid argument". listAsRoot's and searchBelowAsRoot's find -printf formats ended in a literal NUL byte since 5d98bcc0 (2026-10-16), and exec refuses an argument holding one, so no list or search through root ever ran on a node.
Quick fix: find writes \0 itself. Thorough, in the same commit: the tests' stand-in root refuses an argument holding a NUL as exec does, so every root call in the module is held to it (it found the search's instance). No other module in the repository passes such an argument.
Tests: TestTheReadsFallBackToRoot fails with either old format. vet, vet -tags integration, unit, gofmt pass.
Reviewed-by: mesh-code-reviewer@shanks at c29ef0d95ea705f04cf3b085dc8400e06aaf63d0 (round 1)
Pushed-by: fix-1965@shanks
Live on novox 2026-11-12: node-files.list of a root-only directory answered
'fork/exec /usr/bin/sudo: invalid argument'. The kernel refuses a program
argument that holds a NUL byte, and listAsRoot's -printf format and
searchBelowAsRoot's ended in a literal \x00 since 5d98bcc0 (2026-10-16), so
no list or search through root ever ran on a node. find writes \0 itself.
The stand-in root in the tests refuses an argument holding a NUL, as exec
does, so every root call is held to it; it found the search's instance.
Builds: design 39 parts §15 and the lead's answer D3 (list through root of a place a secret is kept).
Deliverynovox/mesh-catalog@c29ef0d95ea7 — merged since 2026-11-12T15:39:53Z
Source — source.main moved to novox/mesh-catalog@836fcd81f6. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-11-12 15:36 (new) → proposed (announced): novox/mesh-catalog#668's head announced
2026-11-12 15:36 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
2026-11-12 15:39 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-catalog@c29ef0d95ea7` — **merged** since 2026-11-12T15:39:53Z
**Source** — source.main moved to novox/mesh-catalog@836fcd81f65b. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-11-12 15:36 (new) → proposed (announced): novox/mesh-catalog#668's head announced
- 2026-11-12 15:36 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
- 2026-11-12 15:39 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Issue 1409; design 39 parts §15 and the lead's answer D3.
Live on novox after #665's delivery: novox/node-files.list {path: /var/lib/claude-licence-manager} (and /root) answers "cannot be listed, not even through sudo: sudo -n /usr/bin/find: fork/exec /usr/bin/sudo: invalid argument". listAsRoot's and searchBelowAsRoot's find -printf formats ended in a literal NUL byte since
5d98bcc0(2026-10-16), and exec refuses an argument holding one, so no list or search through root ever ran on a node.Quick fix: find writes \0 itself. Thorough, in the same commit: the tests' stand-in root refuses an argument holding a NUL as exec does, so every root call in the module is held to it (it found the search's instance). No other module in the repository passes such an argument.
Tests: TestTheReadsFallBackToRoot fails with either old format. vet, vet -tags integration, unit, gofmt pass.
Reviewed-by: mesh-code-reviewer@shanks at
c29ef0d95e(round 1)Pushed-by: fix-1965@shanks
Delivery
novox/mesh-catalog@c29ef0d95ea7— merged since 2026-11-12T15:39:53ZSource — source.main moved to novox/mesh-catalog@836fcd81f6. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.