Issue 1966 (notes 132-133). Recovery fix (recovery-fixes-merge-and-tell): the gate has no recovery merge yet, so this waits the operator's Approve.
What broke. The indexer 586b6fac started on novox at 14:58 CET while JetStream was down; its read of the published packages answered nothing, and formOf took the version line for ~130 Go modules, over go.sum's older mesh-sdk (node-tools ca80811d -> 1d2642e5). Builds then fail on symbols merged today. The import-form shortcut kept those fingerprints through any later recompute.
The change.
A pass whose published-packages read fails, or answers nothing while a held module carries an import form, writes no fingerprint and leaves the merge for redelivery (publishedRead, publishedForPass, recomputeLocked).
The version line clears kept.ImportForm (form.go).
indexer_fingerprints_again {module|all, why}: clears the import form and runs a merge's recompute (modules, candidates, pending); acts before it records the hand act, and says a failed record (mesh-hand-acts answers nothing today).
The assigner's integration test TestAProposalIsAnsweredApprovedAndWritten answers the indexer first-view asks from the indexer's buckets: its controller stand-in answered {ok:true} since 0c4660ee, so it failed on main.
Quick vs thorough. Quick: clear the import form on the version line. Thorough (chosen): the failed read writes nothing (as mesh-grants' grantsReadFailed) and a hand tool recovers what is stuck; the kind can recur at every bus restart.
Tests. No new test function (budget): subtests of TestImportsReportedMoveTheFingerprintOnlyWithAnImportedPackage and a case of TestTakeIn; each fails without its part. go vet (both tags) and go test pass in mesh-delivery-indexer and mesh-delivery-assigner; manifest judged locally, 0 problems before and after.
Expected check. The composition step will fail on the checker's 256 KB compositions cap (lead-47's group #189/#640 fixes it and waits on this one).
After merge.indexer_fingerprints_again {all}; then node-tools ca80811d and mesh-grants ff686916 reach novox, the hand placements end; lead-47 rechecks #189/#640; #190 rebases.
Undo. Revert the merge commit.
Reviewed-by: mesh-code-reviewer@shanks at 3a63813b3d
Issue 1966 (notes 132-133). Recovery fix (recovery-fixes-merge-and-tell): the gate has no recovery merge yet, so this waits the operator's Approve.
**What broke.** The indexer 586b6fac started on novox at 14:58 CET while JetStream was down; its read of the published packages answered nothing, and formOf took the version line for ~130 Go modules, over go.sum's older mesh-sdk (node-tools ca80811d -> 1d2642e5). Builds then fail on symbols merged today. The import-form shortcut kept those fingerprints through any later recompute.
**The change.**
- A pass whose published-packages read fails, or answers nothing while a held module carries an import form, writes no fingerprint and leaves the merge for redelivery (publishedRead, publishedForPass, recomputeLocked).
- The version line clears kept.ImportForm (form.go).
- `indexer_fingerprints_again {module|all, why}`: clears the import form and runs a merge's recompute (modules, candidates, pending); acts before it records the hand act, and says a failed record (mesh-hand-acts answers nothing today).
- The assigner's integration test TestAProposalIsAnsweredApprovedAndWritten answers the indexer first-view asks from the indexer's buckets: its controller stand-in answered {ok:true} since 0c4660ee, so it failed on main.
**Quick vs thorough.** Quick: clear the import form on the version line. Thorough (chosen): the failed read writes nothing (as mesh-grants' grantsReadFailed) and a hand tool recovers what is stuck; the kind can recur at every bus restart.
**Tests.** No new test function (budget): subtests of TestImportsReportedMoveTheFingerprintOnlyWithAnImportedPackage and a case of TestTakeIn; each fails without its part. go vet (both tags) and go test pass in mesh-delivery-indexer and mesh-delivery-assigner; manifest judged locally, 0 problems before and after.
**Expected check.** The composition step will fail on the checker's 256 KB compositions cap (lead-47's group #189/#640 fixes it and waits on this one).
**After merge.** `indexer_fingerprints_again {all}`; then node-tools ca80811d and mesh-grants ff686916 reach novox, the hand placements end; lead-47 rechecks #189/#640; #190 rebases.
**Undo.** Revert the merge commit.
Reviewed-by: mesh-code-reviewer@shanks at 3a63813b3d7595e78f3af647af4aa629f47f56a6
https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The verbs ask mesh-delivery-indexer.modules and .manifests through the tool runner
since the asks moved off the indexer's state, but the test's stand-in answered every
ask {ok:true}, which is no answer: propose failed on main with 'unexpected end of
JSON input'.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
An indexer that started while the bus's storage was down read no published package,
took every import for unpublished and wrote the version line over ~130 modules'
fingerprints, which a later pass kept through the build's shortcut. A failed or empty
read of the packages state, where held modules were computed from published ones,
now fails the pass and says why; a version line clears the import form it was
computed beside; indexer_fingerprints_again computes the import form again by hand,
acting first and recording the hand act after, with a bound.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
mesh/check failed (6): integration: mesh-delivery-indexer/cmd/mesh-delivery-indexer.TestIndexerWritesModule…; and 5 more | 3a63813b3d75 on fb69c8dee691
Deliverynovox/mesh-delivery@efdfe1f75518 — merged since 2026-11-09T14:48:22Z
Source — source.main moved to novox/mesh-delivery@a072d60cae. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-11-09 14:45 (new) → proposed (announced): novox/mesh-delivery#191's head announced
2026-11-09 14:45 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 14:48 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@efdfe1f75518` — **merged** since 2026-11-09T14:48:22Z
**Source** — source.main moved to novox/mesh-delivery@a072d60cae1d. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-11-09 14:45 (new) → proposed (announced): novox/mesh-delivery#191's head announced
- 2026-11-09 14:45 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 14:48 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: the operator's Approve of this pull request's merge into main is ended: its head 3a63813b3d is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 3a63813b3d75 is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
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 1966 (notes 132-133). Recovery fix (recovery-fixes-merge-and-tell): the gate has no recovery merge yet, so this waits the operator's Approve.
What broke. The indexer 586b6fac started on novox at 14:58 CET while JetStream was down; its read of the published packages answered nothing, and formOf took the version line for ~130 Go modules, over go.sum's older mesh-sdk (node-tools ca80811d -> 1d2642e5). Builds then fail on symbols merged today. The import-form shortcut kept those fingerprints through any later recompute.
The change.
indexer_fingerprints_again {module|all, why}: clears the import form and runs a merge's recompute (modules, candidates, pending); acts before it records the hand act, and says a failed record (mesh-hand-acts answers nothing today).0c4660ee, so it failed on main.Quick vs thorough. Quick: clear the import form on the version line. Thorough (chosen): the failed read writes nothing (as mesh-grants' grantsReadFailed) and a hand tool recovers what is stuck; the kind can recur at every bus restart.
Tests. No new test function (budget): subtests of TestImportsReportedMoveTheFingerprintOnlyWithAnImportedPackage and a case of TestTakeIn; each fails without its part. go vet (both tags) and go test pass in mesh-delivery-indexer and mesh-delivery-assigner; manifest judged locally, 0 problems before and after.
Expected check. The composition step will fail on the checker's 256 KB compositions cap (lead-47's group #189/#640 fixes it and waits on this one).
After merge.
indexer_fingerprints_again {all}; then node-tools ca80811d and mesh-grants ff686916 reach novox, the hand placements end; lead-47 rechecks #189/#640; #190 rebases.Undo. Revert the merge commit.
Reviewed-by: mesh-code-reviewer@shanks at
3a63813b3dhttps://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The verbs ask mesh-delivery-indexer.modules and .manifests through the tool runner since the asks moved off the indexer's state, but the test's stand-in answered every ask {ok:true}, which is no answer: propose failed on main with 'unexpected end of JSON input'. Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7iDelivery
novox/mesh-delivery@efdfe1f75518— merged since 2026-11-09T14:48:22ZSource — source.main moved to novox/mesh-delivery@a072d60cae. 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.mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head
3a63813b3dis no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.