Issue 1585, a blocking fault met live at the registry group's take-in (note 76): the revision m.3282 waits 'no build: no published version of the package .../mesh-delivery-builder/builds, .../mesh-delivery-checker/checkermsg'.
Cause: publish() asks the forge for every module of the repository published before in one call (packagesAt); the published state holds mesh-delivery-indexer/seatfiles at 6bc232eb, which 8ad2bf69 no longer holds, so the call fails ErrNotInTree, the error is only logged, and nothing is published.
Change: packagesAt, on ErrNotInTree with two or more directories asked, reads each module alone; a missing one is said and left out (its old key stays, naming a commit that held it); all missing returns the original error; any other error fails as before.
Quick against thorough: the thorough fix for this kind, chosen: packagesAt is the one place both the take-in (publish) and a check (candidatePublished) pick a revision's packages. The quick one (skip stale modules in publish only) would leave the check's path. Left for milestone 47/G (notes on 1585): a removed module's packages key stays forever; the import walk (packages.go:131-135) keeps the same all-or-nothing call; no tool runs FillPackages by hand or drops a packages key.
Tests: row P1 in TestTakeIn (no new test function); it fails without the change with the live wait line. Local: go vet with and without the integration tag and go test ./... in the indexer module pass.
The live case does not clear by itself (the running indexer has the old code): it needs indexer_take_in_pending on m.3282 and an indexer restart, asked of the operator.
Reviewed-by: fix-1965@shanks at 3422e1a6f8
Reviewed-by: mesh-code-reviewer@shanks at 3422e1a6f8
Issue 1585, a blocking fault met live at the registry group's take-in (note 76): the revision m.3282 waits 'no build: no published version of the package .../mesh-delivery-builder/builds, .../mesh-delivery-checker/checkermsg'.
Cause: publish() asks the forge for every module of the repository published before in one call (packagesAt); the published state holds mesh-delivery-indexer/seatfiles at 6bc232eb, which 8ad2bf69 no longer holds, so the call fails ErrNotInTree, the error is only logged, and nothing is published.
Change: packagesAt, on ErrNotInTree with two or more directories asked, reads each module alone; a missing one is said and left out (its old key stays, naming a commit that held it); all missing returns the original error; any other error fails as before.
Quick against thorough: the thorough fix for this kind, chosen: packagesAt is the one place both the take-in (publish) and a check (candidatePublished) pick a revision's packages. The quick one (skip stale modules in publish only) would leave the check's path. Left for milestone 47/G (notes on 1585): a removed module's packages key stays forever; the import walk (packages.go:131-135) keeps the same all-or-nothing call; no tool runs FillPackages by hand or drops a packages key.
Tests: row P1 in TestTakeIn (no new test function); it fails without the change with the live wait line. Local: go vet with and without the integration tag and go test ./... in the indexer module pass.
The live case does not clear by itself (the running indexer has the old code): it needs indexer_take_in_pending on m.3282 and an indexer restart, asked of the operator.
Reviewed-by: fix-1965@shanks at 3422e1a6f8fdc8a011ecb002eb2ebdcde8369982
Reviewed-by: mesh-code-reviewer@shanks at 3422e1a6f8fdc8a011ecb002eb2ebdcde8369982
publish asked the forge for every published module of the repository in one call; when the merge removed one (seatfiles), the whole call failed and a revision's own new Go modules stayed unpublished, so the take-in waited for a version only its own take-in would publish. packagesAt now reads the modules one by one when the tree lacks a directory and leaves the missing one out, said.
Deliverynovox/mesh-delivery@3422e1a6f8fd — merged since 2026-11-07T15:06:13Z
Source — source.main moved to novox/mesh-delivery@2e43922827. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-11-07 14:57 (new) → proposed (announced): novox/mesh-delivery#165's head announced
2026-11-07 14:57 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-07 15:06 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@3422e1a6f8fd` — **merged** since 2026-11-07T15:06:13Z
**Source** — source.main moved to novox/mesh-delivery@2e439228275a. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-11-07 14:57 (new) → proposed (announced): novox/mesh-delivery#165's head announced
- 2026-11-07 14:57 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-07 15:06 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 1585, a blocking fault met live at the registry group's take-in (note 76): the revision m.3282 waits 'no build: no published version of the package .../mesh-delivery-builder/builds, .../mesh-delivery-checker/checkermsg'.
Cause: publish() asks the forge for every module of the repository published before in one call (packagesAt); the published state holds mesh-delivery-indexer/seatfiles at
6bc232eb, which8ad2bf69no longer holds, so the call fails ErrNotInTree, the error is only logged, and nothing is published.Change: packagesAt, on ErrNotInTree with two or more directories asked, reads each module alone; a missing one is said and left out (its old key stays, naming a commit that held it); all missing returns the original error; any other error fails as before.
Quick against thorough: the thorough fix for this kind, chosen: packagesAt is the one place both the take-in (publish) and a check (candidatePublished) pick a revision's packages. The quick one (skip stale modules in publish only) would leave the check's path. Left for milestone 47/G (notes on 1585): a removed module's packages key stays forever; the import walk (packages.go:131-135) keeps the same all-or-nothing call; no tool runs FillPackages by hand or drops a packages key.
Tests: row P1 in TestTakeIn (no new test function); it fails without the change with the live wait line. Local: go vet with and without the integration tag and go test ./... in the indexer module pass.
The live case does not clear by itself (the running indexer has the old code): it needs indexer_take_in_pending on m.3282 and an indexer restart, asked of the operator.
Reviewed-by: fix-1965@shanks at
3422e1a6f8Reviewed-by: mesh-code-reviewer@shanks at
3422e1a6f8Delivery
novox/mesh-delivery@3422e1a6f8fd— merged since 2026-11-07T15:06:13ZSource — source.main moved to novox/mesh-delivery@2e43922827. 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.