Recovery fix. By the operator's 2026-11-09 answer "Through the gate", it merges through the gate on the operator's Approve.
Cause
LOG_mesh-delivery-builder_build-log held 1002193339 of 1073741824 bytes (93%) on 2026-11-09 and grows about 3 MiB an hour (951.9 MiB at 07:47 UTC, 954.9 at 08:42). That leaves about 22 hours before the full log refuses new entries and builds stop. ADR 0571 §1 keeps the log 30 days, so its age stays and its cap rises. But the grants part left a held stream's limits as they are (the operator's 2026-11-05 ruling), so a raised cap in a manifest never reached the bus.
Decision
The operator, 2026-11-09 09:07 UTC on Telegram, "Yes, raise only": a held stream's declared cap is applied when it is larger, never smaller, said in its event.
Change
mesh-delivery-builder: build-log gets max-mib: 3072 beside max-age-days: 30, through builds.BuilderLogMiB, asserted in manifest_test.go.
mesh-grants:
The assert of a held stream raises its MaxBytes to the manifest's when that is larger. It never lowers, and no other limit changes. The raise is once per manifest digest.
It is said in the asserted event (raised) and a journal line.
grants_assert always writes its ask, so a raise can be asked by hand, and its description says raise only.
Quick or thorough
Quick: shorten the age to 7 days. Not taken: it contradicts ADR 0571 §1 and loses history.
Thorough, chosen: every held stream, log, bucket or object store gets its declared larger cap, by one rule in the grants part.
Evidence
Rows in existing tests: a raise, and a lower that is refused. The existing integration subtest raises and then refuses to lower against an embedded bus.
go vet, go vet -tags integration and go test pass in mesh-grants and mesh-delivery-builder.
Storage: the bus reserves about 46.5 GiB of caps, about 48.5 GiB after this, with 878 GiB free on the bus node.
The manifest validator gives identical verdicts on trunk and change.
Live check
After delivery, the first pass of the grants part (or grants_assert for mesh-delivery-builder) raises LOG_mesh-delivery-builder_build-log to 3221225472 bytes, said in its asserted event.
Undo
Revert this merge. A raised cap stays raised, because nothing lowers it.
Reviewed-by: mesh-code-reviewer@shanks (for fix-1965) at 1591831886, two rounds.
Recovery fix. By the operator's 2026-11-09 answer "Through the gate", it merges through the gate on the operator's Approve.
## Cause
LOG_mesh-delivery-builder_build-log held 1002193339 of 1073741824 bytes (93%) on 2026-11-09 and grows about 3 MiB an hour (951.9 MiB at 07:47 UTC, 954.9 at 08:42). That leaves about 22 hours before the full log refuses new entries and builds stop. ADR 0571 §1 keeps the log 30 days, so its age stays and its cap rises. But the grants part left a held stream's limits as they are (the operator's 2026-11-05 ruling), so a raised cap in a manifest never reached the bus.
## Decision
The operator, 2026-11-09 09:07 UTC on Telegram, "Yes, raise only": a held stream's declared cap is applied when it is larger, never smaller, said in its event.
## Change
- mesh-delivery-builder: build-log gets `max-mib: 3072` beside `max-age-days: 30`, through builds.BuilderLogMiB, asserted in manifest_test.go.
- mesh-grants:
- The assert of a held stream raises its MaxBytes to the manifest's when that is larger. It never lowers, and no other limit changes. The raise is once per manifest digest.
- It is said in the `asserted` event (`raised`) and a journal line.
- grants_assert always writes its ask, so a raise can be asked by hand, and its description says raise only.
## Quick or thorough
- Quick: shorten the age to 7 days. Not taken: it contradicts ADR 0571 §1 and loses history.
- Thorough, chosen: every held stream, log, bucket or object store gets its declared larger cap, by one rule in the grants part.
## Evidence
- Rows in existing tests: a raise, and a lower that is refused. The existing integration subtest raises and then refuses to lower against an embedded bus.
- go vet, go vet -tags integration and go test pass in mesh-grants and mesh-delivery-builder.
- Storage: the bus reserves about 46.5 GiB of caps, about 48.5 GiB after this, with 878 GiB free on the bus node.
- The manifest validator gives identical verdicts on trunk and change.
## Live check
After delivery, the first pass of the grants part (or grants_assert for mesh-delivery-builder) raises LOG_mesh-delivery-builder_build-log to 3221225472 bytes, said in its asserted event.
## Undo
Revert this merge. A raised cap stays raised, because nothing lowers it.
Reviewed-by: mesh-code-reviewer@shanks (for fix-1965) at 15918318862217fbe14f6a40f8e15fb40711aab7, two rounds.
https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The log grew about 3 MiB an hour on 2026-11-09 (951.9 MiB at 07:47 UTC, 954.9 at 08:42)
against the bus's default cap of 1 GiB, about 23 hours before builds stop. ADR 0571 §1
keeps it 30 days, so the cap rises to 3072 MiB instead of the age falling.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The operator, 2026-11-09 09:07: raise only. The grants part's assert raises it, says it in its asserted event and the
journal with the old and new cap, and grants_assert asks it by hand.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Deliverynovox/mesh-delivery@159183188622 — merged since 2026-11-09T09:14:18Z
Source — source.main moved to novox/mesh-delivery@58520d3435. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-11-09 09:13 (new) → proposed (announced): novox/mesh-delivery#186's head announced
2026-11-09 09:13 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-09 09:14 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-delivery@159183188622` — **merged** since 2026-11-09T09:14:18Z
**Source** — source.main moved to novox/mesh-delivery@58520d343537. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-11-09 09:13 (new) → proposed (announced): novox/mesh-delivery#186's head announced
- 2026-11-09 09:13 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-09 09:14 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.
Recovery fix. By the operator's 2026-11-09 answer "Through the gate", it merges through the gate on the operator's Approve.
Cause
LOG_mesh-delivery-builder_build-log held 1002193339 of 1073741824 bytes (93%) on 2026-11-09 and grows about 3 MiB an hour (951.9 MiB at 07:47 UTC, 954.9 at 08:42). That leaves about 22 hours before the full log refuses new entries and builds stop. ADR 0571 §1 keeps the log 30 days, so its age stays and its cap rises. But the grants part left a held stream's limits as they are (the operator's 2026-11-05 ruling), so a raised cap in a manifest never reached the bus.
Decision
The operator, 2026-11-09 09:07 UTC on Telegram, "Yes, raise only": a held stream's declared cap is applied when it is larger, never smaller, said in its event.
Change
max-mib: 3072besidemax-age-days: 30, through builds.BuilderLogMiB, asserted in manifest_test.go.assertedevent (raised) and a journal line.Quick or thorough
Evidence
Live check
After delivery, the first pass of the grants part (or grants_assert for mesh-delivery-builder) raises LOG_mesh-delivery-builder_build-log to 3221225472 bytes, said in its asserted event.
Undo
Revert this merge. A raised cap stays raised, because nothing lowers it.
Reviewed-by: mesh-code-reviewer@shanks (for fix-1965) at
1591831886, two rounds.https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Delivery
novox/mesh-delivery@159183188622— merged since 2026-11-09T09:14:18ZSource — source.main moved to novox/mesh-delivery@58520d3435. 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.