Issue 1940 (note 5): at 20:56 assigning the build modules to ace brought ace's toolchain report of 2026-10-23 (typescript v26.12.0) into the builders' agreement; every recompute then went to "builders disagree" and the controller's take-in held a dozen modules until ace was unassigned again.
standing.go (identical in the indexer, builder and checker): a node's toolchain report counts only while it has an open assignment of the build module and the report was written at or after that assignment's start (assigned, or the revision that opened the value). Until it reports again it is left out, said once.
indexer toolchains.gostillComputed: while a language has no agreement, a module keeps the fingerprint it holds when recomputing from its stored inputs and recorded toolchains gives the same fingerprint, also across a merge; a moved tree, base or agreed toolchain still waits.
ace's real toolchain (pacman): nodejs 26.12.1, go 1.27.3, the same as g14, novox and shanks.
Tests: tables reworked, no new top-level tests; go test -race ./... and go vet -tags integration ./... in indexer, builder, checker. A trial merge with fix/indexer-writes-on-change merges cleanly; this one goes first.
Not blocking (noted for issue 1940): a lasting disagreement is now silent on unchanged modules; a log line or condition on the disagreement itself keeps it loud.
Recovery mode: the operator merges by hand.
Reviewed-by: reviewer-toolchain@shanks at 3e7f852472
Issue 1940 (note 5): at 20:56 assigning the build modules to ace brought ace's toolchain report of 2026-10-23 (typescript v26.12.0) into the builders' agreement; every recompute then went to "builders disagree" and the controller's take-in held a dozen modules until ace was unassigned again.
- `standing.go` (identical in the indexer, builder and checker): a node's toolchain report counts only while it has an open assignment of the build module and the report was written at or after that assignment's start (`assigned`, or the revision that opened the value). Until it reports again it is left out, said once.
- indexer `toolchains.go` `stillComputed`: while a language has no agreement, a module keeps the fingerprint it holds when recomputing from its stored inputs and recorded toolchains gives the same fingerprint, also across a merge; a moved tree, base or agreed toolchain still waits.
ace's real toolchain (pacman): nodejs 26.12.1, go 1.27.3, the same as g14, novox and shanks.
Tests: tables reworked, no new top-level tests; `go test -race ./...` and `go vet -tags integration ./...` in indexer, builder, checker. A trial merge with fix/indexer-writes-on-change merges cleanly; this one goes first.
Not blocking (noted for issue 1940): a lasting disagreement is now silent on unchanged modules; a log line or condition on the disagreement itself keeps it loud.
Recovery mode: the operator merges by hand.
Reviewed-by: reviewer-toolchain@shanks at 3e7f85247289bf95f4244f54bdc7e4cbc4f2b2b7
mesh/check failed: integration: mesh-delivery-indexer/cmd/mesh-delivery-indexer.TestIndexerCountsOnlyTheAssignedBuildNodesToolchains: within 5 s of n2…
On 2026-10-25 20:56 assigning mesh-build-node to ace again brought ace's report of 2026-10-23 (v26.12.0) back into the
agreement before the module ran there; the indexer blanked every module's fingerprint to "builders disagree" and the
controller's take-in refused modules already computed and built.
- The toolchain gate (indexer, builder, checker; still one file in three) leaves a report out, said once, until its node
writes it since its current assignment: the assignment's own time, or the revision that opened it.
- The indexer keeps a module's held fingerprint while a language has no agreed toolchain, when its kept inputs with the
toolchains it was computed with give it again; only a new fingerprint (a merge, a base, an agreed toolchain moved)
needs the agreement.
Deliverynovox/mesh-delivery@3e7f85247289 — held since 2026-10-25T20:09:28Z
Held for a person: merged without a passing check: only a person decides what follows — the merge reached the trunk without a passing check.
Source — source.main moved to novox/mesh-delivery@4efe6cfb26. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-10-25 20:07 (new) → proposed (announced): novox/mesh-delivery#47's head announced
2026-10-25 20:08 proposed → rejected (refused): a verdict names this commit and the trunk's head as its trunk commit, and the gate failed or could not run, or the repository's own check failed
2026-10-25 20:09 rejected → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides what follows
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@3e7f85247289` — **held** since 2026-10-25T20:09:28Z
Held for a person: merged without a passing check: only a person decides what follows — the merge reached the trunk without a passing check.
**Source** — source.main moved to novox/mesh-delivery@4efe6cfb261d. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-10-25 20:07 (new) → proposed (announced): novox/mesh-delivery#47's head announced
- 2026-10-25 20:08 proposed → rejected (refused): a verdict names this commit and the trunk's head as its trunk commit, and the gate failed or could not run, or the repository's own check failed
- 2026-10-25 20:09 rejected → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides what follows
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 1940 (note 5): at 20:56 assigning the build modules to ace brought ace's toolchain report of 2026-10-23 (typescript v26.12.0) into the builders' agreement; every recompute then went to "builders disagree" and the controller's take-in held a dozen modules until ace was unassigned again.
standing.go(identical in the indexer, builder and checker): a node's toolchain report counts only while it has an open assignment of the build module and the report was written at or after that assignment's start (assigned, or the revision that opened the value). Until it reports again it is left out, said once.toolchains.gostillComputed: while a language has no agreement, a module keeps the fingerprint it holds when recomputing from its stored inputs and recorded toolchains gives the same fingerprint, also across a merge; a moved tree, base or agreed toolchain still waits.ace's real toolchain (pacman): nodejs 26.12.1, go 1.27.3, the same as g14, novox and shanks.
Tests: tables reworked, no new top-level tests;
go test -race ./...andgo vet -tags integration ./...in indexer, builder, checker. A trial merge with fix/indexer-writes-on-change merges cleanly; this one goes first.Not blocking (noted for issue 1940): a lasting disagreement is now silent on unchanged modules; a log line or condition on the disagreement itself keeps it loud.
Recovery mode: the operator merges by hand.
Reviewed-by: reviewer-toolchain@shanks at
3e7f852472Delivery
novox/mesh-delivery@3e7f85247289— held since 2026-10-25T20:09:28ZHeld for a person: merged without a passing check: only a person decides what follows — the merge reached the trunk without a passing check.
Source — source.main moved to novox/mesh-delivery@4efe6cfb26. 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.