Fixes issue 1900: the indexer kept 14 modules that no longer exist in the catalogue (removed modules, testdata, the retired delivery module), so the builder had nothing to build for them and R4e's acceptance census read them as missing.
At a merge: applyMerged drops held keys of the merged repository that the merge's manifests no longer name (the forge bridge's merged message carries every module.json at the merge commit, or fails whole). Nothing is dropped when a message carries no manifests.
At start: Reconcile lists the trunk's module directories (gitea_commit_trees over the bus) and deletes a key only when its module is absent there AND the commit it was written at is the head read or contained in it (gitea_contains), so a merge applied ahead of the source's head is never undone. A failed or empty read, a key with no path, and other repositories' keys are kept.
The indexer's manifest now invokes gitea.gitea_contains, with a unit test that fails when a forge tool the program calls is missing from invokes.
After delivery the lead reads the indexer's modules keys: the 14 named in the issue must be gone, the 141 catalogue modules kept.
Reviewed-by: review-1900@shanks at 24753bfc2c
Pushed-by: fix-1900@shanks
Fixes issue 1900: the indexer kept 14 modules that no longer exist in the catalogue (removed modules, testdata, the retired delivery module), so the builder had nothing to build for them and R4e's acceptance census read them as missing.
- At a merge: applyMerged drops held keys of the merged repository that the merge's manifests no longer name (the forge bridge's merged message carries every module.json at the merge commit, or fails whole). Nothing is dropped when a message carries no manifests.
- At start: Reconcile lists the trunk's module directories (gitea_commit_trees over the bus) and deletes a key only when its module is absent there AND the commit it was written at is the head read or contained in it (gitea_contains), so a merge applied ahead of the source's head is never undone. A failed or empty read, a key with no path, and other repositories' keys are kept.
- The indexer's manifest now invokes gitea.gitea_contains, with a unit test that fails when a forge tool the program calls is missing from invokes.
Tests that failed first: TestAMergeThatRemovesAModuleDeletesItsKey, TestStartingDeletesTheKeysTheTrunkDoesNotHold, TestAKeyWrittenAheadOfTheSourceHeadStaysAndOneWithoutAPathIsSkipped, TestEveryGiteaToolTheCodeCallsIsInInvokes. Try try-1792759727372740409 passed (476 integration tests).
After delivery the lead reads the indexer's modules keys: the 14 named in the issue must be gone, the 141 catalogue modules kept.
Reviewed-by: review-1900@shanks at 24753bfc2c029965acf941ff6e89ca3c7461c7b9
Pushed-by: fix-1900@shanks
mesh/delivery covered after its stop: a later walk that contains it was delivered: plan-1792794967663205383 (novox/mesh-delivery at 55f486e0 into main, d…
Deliverynovox/mesh-delivery@24753bfc2c02 — stopped since 2026-10-23T13:16:40Z
Covered: covered after its stop: a later walk that contains it was delivered: plan-1792794967663205383 (novox/mesh-delivery at 55f486e0 into main, done, contains its merge db5d88f8)
Delivery plan — builds mesh-delivery-indexer → novox; no bus step
tier 0: mesh-delivery-indexer
novox: receives mesh-delivery-indexer
Transitions
2026-10-23 12:51 (new) → proposed (announced): novox/mesh-delivery#26's head announced
2026-10-23 12:54 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-23 12:54 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-23 12:56 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-23 12:56 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
2026-10-23 13:16 delivering → stopped (stop): its walk plan-1792760194384319460 was stopped by a person (mesh-controller): stuck on issue 1902 (the catalogue's repository not found in the take-in from a builder key) since 14:57; it holds every check; the operator asked to deliver by hand (15:15)
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-delivery@24753bfc2c02` — **stopped** since 2026-10-23T13:16:40Z
**Covered**: covered after its stop: a later walk that contains it was delivered: plan-1792794967663205383 (novox/mesh-delivery at 55f486e0 into main, done, contains its merge db5d88f8)
**Delivery plan** — builds mesh-delivery-indexer → novox; no bus step
- tier 0: mesh-delivery-indexer
- novox: receives mesh-delivery-indexer
**Transitions**
- 2026-10-23 12:51 (new) → proposed (announced): novox/mesh-delivery#26's head announced
- 2026-10-23 12:54 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-23 12:54 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-23 12:56 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-23 12:56 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
- 2026-10-23 13:16 delivering → stopped (stop): its walk plan-1792760194384319460 was stopped by a person (mesh-controller): stuck on issue 1902 (the catalogue's repository not found in the take-in from a builder key) since 14:57; it holds every check; the operator asked to deliver by hand (15:15)
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.
Fixes issue 1900: the indexer kept 14 modules that no longer exist in the catalogue (removed modules, testdata, the retired delivery module), so the builder had nothing to build for them and R4e's acceptance census read them as missing.
Tests that failed first: TestAMergeThatRemovesAModuleDeletesItsKey, TestStartingDeletesTheKeysTheTrunkDoesNotHold, TestAKeyWrittenAheadOfTheSourceHeadStaysAndOneWithoutAPathIsSkipped, TestEveryGiteaToolTheCodeCallsIsInInvokes. Try try-1792759727372740409 passed (476 integration tests).
After delivery the lead reads the indexer's modules keys: the 14 named in the issue must be gone, the 141 catalogue modules kept.
Reviewed-by: review-1900@shanks at
24753bfc2cPushed-by: fix-1900@shanks
Delivery
novox/mesh-delivery@24753bfc2c02— stopped since 2026-10-23T13:16:40ZCovered: covered after its stop: a later walk that contains it was delivered: plan-1792794967663205383 (novox/mesh-delivery at
55f486e0into main, done, contains its mergedb5d88f8)Delivery plan — builds mesh-delivery-indexer → novox; no bus step
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.