Issue 1890 (the checker lists build steps started days ago as still running). Delivery group fix/1890-left-running-steps with mesh-catalog (the three build modules pin this head).
go/buildstep/stale.go: EndStale ends this node's running step keys a previous process left: hand-started tool steps at once ("the build module restarted while it ran"); a pulled ask only once its start is older than delivery.StepBound ("past the step bound: its asker stopped waiting at ..."), so an ask the stream will run again is never failed under its asker. Writes are compare-and-set (Scan carries the revision; a changed key is skipped). It runs at start and in each module's existing round (EndStaleRound), no new timer. EndOne (the build_<lang>_step_end tool) ends one step by hand, refusing a step this process started (Boot), another node's step, a changed key and an empty why.
delivery.Step gains optional what (omitempty; old bytes unchanged), filled from AskWhat (check ask, delivery ask, compose).
delivery.StepBound (30 minutes): the one constant the other copies (builder, checker, watchman) should read, issue 1916.
Tests: TestEndStaleAndEndOne (ask under/over the bound, the race, a step after boot, another node's key) and AskWhat rows. Unit suites and go vet -tags integration ./... clean.
Rule bent (rules-are-weighed): this head has no try. The try of the first head passed (try-1793017837216790185); the reworked heads could not get a try place for 30 minutes (one place is held by a try stranded at the 13:26 bus reload, issue 734). The group's merge check is the gate.
Issue 1890 (the checker lists build steps started days ago as still running). Delivery group fix/1890-left-running-steps with mesh-catalog (the three build modules pin this head).
- `go/buildstep/stale.go`: `EndStale` ends this node's running step keys a previous process left: hand-started tool steps at once ("the build module restarted while it ran"); a pulled ask only once its start is older than `delivery.StepBound` ("past the step bound: its asker stopped waiting at ..."), so an ask the stream will run again is never failed under its asker. Writes are compare-and-set (`Scan` carries the revision; a changed key is skipped). It runs at start and in each module's existing round (`EndStaleRound`), no new timer. `EndOne` (the `build_<lang>_step_end` tool) ends one step by hand, refusing a step this process started (`Boot`), another node's step, a changed key and an empty why.
- `delivery.Step` gains optional `what` (omitempty; old bytes unchanged), filled from `AskWhat` (check ask, delivery ask, compose).
- `delivery.StepBound` (30 minutes): the one constant the other copies (builder, checker, watchman) should read, issue 1916.
Tests: `TestEndStaleAndEndOne` (ask under/over the bound, the race, a step after boot, another node's key) and AskWhat rows. Unit suites and `go vet -tags integration ./...` clean.
Rule bent (rules-are-weighed): this head has no try. The try of the first head passed (try-1793017837216790185); the reworked heads could not get a try place for 30 minutes (one place is held by a try stranded at the 13:26 bus reload, issue 734). The group's merge check is the gate.
Reviewed-by: review-1890@shanks at 6b8497314297b83d8db8249591b5bf8b32ecb930
Deliverynovox/mesh-sdk@6b8497314297 — merged since 2026-10-26T12:57:34Z
Source — source.main moved to novox/mesh-sdk@2aae6f5580. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
2026-10-26 12:54 (new) → proposed (announced): novox/mesh-sdk#90's head announced
2026-10-26 12:54 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 12:57 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-sdk@6b8497314297` — **merged** since 2026-10-26T12:57:34Z
**Source** — source.main moved to novox/mesh-sdk@2aae6f5580f2. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `fix/1890-left-running-steps`: novox/mesh-catalog@0134697f9739, novox/mesh-sdk@6b8497314297
**Transitions**
- 2026-10-26 12:54 (new) → proposed (announced): novox/mesh-sdk#90's head announced
- 2026-10-26 12:54 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 12:57 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: a head it covers moved on: the heads it covers are no longer the group's heads. 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: a head it covers moved on: the heads it covers are no longer the group's heads. 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 1890 (the checker lists build steps started days ago as still running). Delivery group fix/1890-left-running-steps with mesh-catalog (the three build modules pin this head).
go/buildstep/stale.go:EndStaleends this node's running step keys a previous process left: hand-started tool steps at once ("the build module restarted while it ran"); a pulled ask only once its start is older thandelivery.StepBound("past the step bound: its asker stopped waiting at ..."), so an ask the stream will run again is never failed under its asker. Writes are compare-and-set (Scancarries the revision; a changed key is skipped). It runs at start and in each module's existing round (EndStaleRound), no new timer.EndOne(thebuild_<lang>_step_endtool) ends one step by hand, refusing a step this process started (Boot), another node's step, a changed key and an empty why.delivery.Stepgains optionalwhat(omitempty; old bytes unchanged), filled fromAskWhat(check ask, delivery ask, compose).delivery.StepBound(30 minutes): the one constant the other copies (builder, checker, watchman) should read, issue 1916.Tests:
TestEndStaleAndEndOne(ask under/over the bound, the race, a step after boot, another node's key) and AskWhat rows. Unit suites andgo vet -tags integration ./...clean.Rule bent (rules-are-weighed): this head has no try. The try of the first head passed (try-1793017837216790185); the reworked heads could not get a try place for 30 minutes (one place is held by a try stranded at the 13:26 bus reload, issue 734). The group's merge check is the gate.
Reviewed-by: review-1890@shanks at
6b84973142Delivery
novox/mesh-sdk@6b8497314297— merged since 2026-10-26T12:57:34ZSource — source.main moved to novox/mesh-sdk@2aae6f5580. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/1890-left-running-steps: novox/mesh-catalog@0134697f97, novox/mesh-sdk@6b84973142Transitions
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: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.