Indexer: index a module registered from its own repository, so the grants part composes its grants (issue 1945) #63

Merged
mesh-tools merged 4 commits from fix/indexer-registered-modules into main 2026-10-26 11:33:41 +00:00
Member

Issue 1945 (notes 81-82): modules registered in the catalogue from their own repositories (txt-game, f1-circuits, de-spiegel, link2pay, photos, and wherever a successful trunk build record exists: amqp-email-forwarder, novox.be, mesh-tools-go) had no manifest in the indexer, because it learned a repository only from a forge merge; the grants part (mesh-grants) left them out, so its shadow user list differs from the loaded one for node-tools on ace and novox, which blocks the take-over (ADR 0547 clause 8).

The indexer now indexes an unheld module from the newest non-failed trunk build record in mesh-controller_builds (which it already watches): at start and on each new build record, it reads that module's directory only (one commit_trees, up to three get_file: module.json and lock files) at the head the gate's source names for the repository, or at the registration's commit, and writes the same keys a merge writes. A module the indexer holds is never rewritten; a module a merge removed is absent at the head and left; refs main, master, trunk are accepted. Manifest gains invoke gitea.gitea_get_file. snake and car-hunter are not on the forge and stay out (the operator decides).

Tests: TestARegisteredModuleIsIndexedFromItsRepository (table) and TestReadViaReadsManifestsAndLocks; fail on main. Try try-1793011310410562969 passed. Reviewed in three rounds (cost of reading every directory; a skip that would have left txt-game out; master refs).

After delivery: the indexer's modules state holds txt-game, f1-circuits, de-spiegel, link2pay, photos; mesh-grants.grants_user_list's gaps drop them.

Reviewed-by: review-reg@shanks at 646f83642a

Issue 1945 (notes 81-82): modules registered in the catalogue from their own repositories (txt-game, f1-circuits, de-spiegel, link2pay, photos, and wherever a successful trunk build record exists: amqp-email-forwarder, novox.be, mesh-tools-go) had no manifest in the indexer, because it learned a repository only from a forge merge; the grants part (mesh-grants) left them out, so its shadow user list differs from the loaded one for node-tools on ace and novox, which blocks the take-over (ADR 0547 clause 8). The indexer now indexes an unheld module from the newest non-failed trunk build record in mesh-controller_builds (which it already watches): at start and on each new build record, it reads that module's directory only (one commit_trees, up to three get_file: module.json and lock files) at the head the gate's source names for the repository, or at the registration's commit, and writes the same keys a merge writes. A module the indexer holds is never rewritten; a module a merge removed is absent at the head and left; refs main, master, trunk are accepted. Manifest gains invoke gitea.gitea_get_file. snake and car-hunter are not on the forge and stay out (the operator decides). Tests: TestARegisteredModuleIsIndexedFromItsRepository (table) and TestReadViaReadsManifestsAndLocks; fail on main. Try try-1793011310410562969 passed. Reviewed in three rounds (cost of reading every directory; a skip that would have left txt-game out; master refs). After delivery: the indexer's modules state holds txt-game, f1-circuits, de-spiegel, link2pay, photos; mesh-grants.grants_user_list's gaps drop them. Reviewed-by: review-reg@shanks at 646f83642a01f65fe9890ff37fd8bd37038d39c1
mesh-tools added 4 commits 2026-10-26 10:44:35 +00:00
Author
Member

Delivery novox/mesh-delivery@646f83642a01 — merged since 2026-10-26T11:33:46Z

Source — source.main moved to novox/mesh-delivery@11d3678984. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-10-26 10:44 (new) → proposed (announced): novox/mesh-delivery#63's head announced
  • 2026-10-26 10:44 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-10-26 11:33 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@646f83642a01` — **merged** since 2026-10-26T11:33:46Z **Source** — source.main moved to novox/mesh-delivery@11d3678984af. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-10-26 10:44 (new) → proposed (announced): novox/mesh-delivery#63's head announced - 2026-10-26 10:44 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-10-26 11:33 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-tools merged commit 11d3678984 into main 2026-10-26 11:33:41 +00:00
mesh-tools deleted branch fix/indexer-registered-modules 2026-10-26 11:33:42 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-delivery#63