Every records sync has failed since 2026-10-04: the module ran in a container as root until it moved into the runtime, and left the checkout root's (2 598 entries); the runtime runs it as the operator account, and git refuses the checkout as "dubious ownership". records_search has answered from a stale copy since.
Ported to Go (operator's rule), behaviour kept: search (wrapped lines, emphasis ignored, nearest heading, commit named), read (paths kept inside), list, status, sync; sync on every gitea.pull.merged for its repository and every 10 minutes.
The checkout lives in repository/ under the given directory, a directory the module makes and owns. The old layout is removed where it is the module's; what it cannot remove is named in records_status (leftBehind) with the one command that deletes it.
Drops the container-runtime capability left over from the container.
Tests: the TypeScript module's tests ported (a real git repository: search, wrapped phrase, emphasis, read, list, standing, a merge pulled; refusals; a failed sync said), plus the new layout and the refusal to guess the repository. go vet, gofmt clean; module check ok, 5 tools.
Every records sync has failed since 2026-10-04: the module ran in a container as root until it moved into the runtime, and left the checkout root's (2 598 entries); the runtime runs it as the operator account, and git refuses the checkout as "dubious ownership". `records_search` has answered from a stale copy since.
- Ported to Go (operator's rule), behaviour kept: search (wrapped lines, emphasis ignored, nearest heading, commit named), read (paths kept inside), list, status, sync; sync on every `gitea.pull.merged` for its repository and every 10 minutes.
- The checkout lives in `repository/` under the given directory, a directory the module makes and owns. The old layout is removed where it is the module's; what it cannot remove is named in `records_status` (`leftBehind`) with the one command that deletes it.
- Drops the `container-runtime` capability left over from the container.
Tests: the TypeScript module's tests ported (a real git repository: search, wrapped phrase, emphasis, read, list, standing, a merge pulled; refusals; a failed sync said), plus the new layout and the refusal to guess the repository. `go vet`, gofmt clean; `module check` ok, 5 tools.
Every sync had failed since a container that ran as root left the checkout
root's: git refused it as dubious ownership, and records answered from a
stale copy. The Go bundle clones into repository/ under its directory, clears
the old layout where it can and names what it cannot. Drops the container-
runtime capability the move into the runtime left behind. hq issue 251.
Deliverynovox/mesh-catalog@6a42bafb1cac — held since 2026-10-06T23:05:28Z
Held for a person: merged without a passing check: only a person decides that it goes on — mesh-delivery.release with why lets it go on.
Delivery plan — builds records → novox; no bus step
tier 0: records
novox: receives records
records keeps data (ADR 0233): what it holds is backed up before it moves
Transitions
2026-10-06 23:05 (new) → proposed (announced): novox/mesh-catalog#64 merged; its head was not heard by this owner, so it is made from the forge's word
2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-catalog@6a42bafb1cac` — **held** since 2026-10-06T23:05:28Z
Held for a person: merged without a passing check: only a person decides that it goes on — `mesh-delivery.release` with why lets it go on.
**Delivery plan** — builds records → novox; no bus step
- tier 0: records
- novox: receives records
- records keeps data (ADR 0233): what it holds is backed up before it moves
**Transitions**
- 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-catalog#64 merged; its head was not heard by this owner, so it is made from the forge's word
- 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
The commit's note under `refs/notes/mesh-plan` keeps every transition: `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.
Every records sync has failed since 2026-10-04: the module ran in a container as root until it moved into the runtime, and left the checkout root's (2 598 entries); the runtime runs it as the operator account, and git refuses the checkout as "dubious ownership".
records_searchhas answered from a stale copy since.gitea.pull.mergedfor its repository and every 10 minutes.repository/under the given directory, a directory the module makes and owns. The old layout is removed where it is the module's; what it cannot remove is named inrecords_status(leftBehind) with the one command that deletes it.container-runtimecapability left over from the container.Tests: the TypeScript module's tests ported (a real git repository: search, wrapped phrase, emphasis, read, list, standing, a merge pulled; refusals; a failed sync said), plus the new layout and the refusal to guess the repository.
go vet, gofmt clean;module checkok, 5 tools.Delivery
novox/mesh-catalog@6a42bafb1cac— held since 2026-10-06T23:05:28ZHeld for a person: merged without a passing check: only a person decides that it goes on —
mesh-delivery.releasewith why lets it go on.Delivery plan — builds records → novox; no bus step
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.