repo: render the lanes that advance the channel pointer #48

Merged
PerishFire merged 1 commit from land/repo/pointer-repair into main 2026-08-19 07:14:36 +00:00
Owner

Why

sidecar v0.8.0 published every object, rewrote both managers, reported
activation, and left v1/channels/stable.json naming v0.7.0. All four smokes
then failed with expected sidecar v0.8.0, got sidecar v0.7.0, because they
install through the manager and the manager resolves the pointer.

Plumb v0.27.0 names the cause: shifting the managers and advancing the pointer
are two deeds, and a lane rendered by v0.26.0 ran only the first. Reported as
PerishLab/plumb#346; its migration notes say rendering again is the repair,
since publish is create-only and self-verifying, so re-dispatching the same
stable version advances the pointer and nothing else.

What

The rendered ship.yml gains a step this repository never had:

- name: Point the channel at what this run published
  run: plumb release activate
  • plumb lane --write for ship.yml and exact.release.yml.
  • plumb 0.26.0 -> 0.27.0. The workspace requirement moves off "0" to the
    exact version, so a bump becomes a decision rather than whatever the lock
    happened to resolve.
  • AGENTS.md fits the budget, which in v0.27.0 measures its source rather than
    a flat 320. The Pre-PR command list went first: guard.yml is rendered, so
    restating its commands in prose was a second truth that could drift from the
    lane that actually runs. The Release section also carried two facts this
    release disproved — that non-stable has no pointer, and that three
    commit-status contexts gate publication.

Tests

cargo fmt --check, clippy -D warnings, cargo check --release,
cargo test --workspace, pnpm biome ci, pnpm -r exec tsc --noEmit,
pnpm -r test, ectropy ., plumb doctor . — all clean.

Compatibility

None for consumers. v0.8.0's exact objects are already published; the next
stable dispatch completes what this repair makes possible.

## Why `sidecar v0.8.0` published every object, rewrote both managers, reported activation, and left `v1/channels/stable.json` naming v0.7.0. All four smokes then failed with `expected sidecar v0.8.0, got sidecar v0.7.0`, because they install through the manager and the manager resolves the pointer. Plumb v0.27.0 names the cause: shifting the managers and advancing the pointer are two deeds, and a lane rendered by v0.26.0 ran only the first. Reported as PerishLab/plumb#346; its migration notes say rendering again is the repair, since publish is create-only and self-verifying, so re-dispatching the same stable version advances the pointer and nothing else. ## What The rendered `ship.yml` gains a step this repository never had: ```yaml - name: Point the channel at what this run published run: plumb release activate ``` - `plumb lane --write` for `ship.yml` and `exact.release.yml`. - `plumb` 0.26.0 -> 0.27.0. The workspace requirement moves off `"0"` to the exact version, so a bump becomes a decision rather than whatever the lock happened to resolve. - `AGENTS.md` fits the budget, which in v0.27.0 measures its source rather than a flat 320. The Pre-PR command list went first: `guard.yml` is rendered, so restating its commands in prose was a second truth that could drift from the lane that actually runs. The Release section also carried two facts this release disproved — that non-stable has no pointer, and that three commit-status contexts gate publication. ## Tests `cargo fmt --check`, `clippy -D warnings`, `cargo check --release`, `cargo test --workspace`, `pnpm biome ci`, `pnpm -r exec tsc --noEmit`, `pnpm -r test`, `ectropy .`, `plumb doctor .` — all clean. ## Compatibility None for consumers. `v0.8.0`'s exact objects are already published; the next stable dispatch completes what this repair makes possible.
repo: render the lanes that advance the channel pointer
All checks were successful
guard / guard (pull_request) Successful in 1m38s
db207c1592
## Why

`sidecar v0.8.0` published every object, rewrote both managers, reported
activation, and left `v1/channels/stable.json` naming v0.7.0. All four smokes
then failed with `expected sidecar v0.8.0, got sidecar v0.7.0`, because they
install through the manager and the manager resolves the pointer.

Plumb v0.27.0 names the cause: shifting the managers and advancing the pointer
are two deeds, and a lane rendered by v0.26.0 ran only the first. Reported as
PerishLab/plumb#346; its migration notes say rendering again is the repair,
since publish is create-only and self-verifying, so re-dispatching the same
stable version advances the pointer and nothing else.

## What

The rendered `ship.yml` gains a step this repository never had:

```yaml
- name: Point the channel at what this run published
  run: plumb release activate
```

- `plumb lane --write` for `ship.yml` and `exact.release.yml`.
- `plumb` 0.26.0 -> 0.27.0. The workspace requirement moves off `"0"` to the
  exact version, so a bump becomes a decision rather than whatever the lock
  happened to resolve.
- `AGENTS.md` fits the budget, which in v0.27.0 measures its source rather than
  a flat 320. The Pre-PR command list went first: `guard.yml` is rendered, so
  restating its commands in prose was a second truth that could drift from the
  lane that actually runs. The Release section also carried two facts this
  release disproved — that non-stable has no pointer, and that three
  commit-status contexts gate publication.

## Tests

`cargo fmt --check`, `clippy -D warnings`, `cargo check --release`,
`cargo test --workspace`, `pnpm biome ci`, `pnpm -r exec tsc --noEmit`,
`pnpm -r test`, `ectropy .`, `plumb doctor .` — all clean.

## Compatibility

None for consumers. `v0.8.0`'s exact objects are already published; the next
stable dispatch completes what this repair makes possible.

Land-Source: repo/pointer-repair@37ae503d3b
PerishFire force-pushed land/repo/pointer-repair from db207c1592
All checks were successful
guard / guard (pull_request) Successful in 1m38s
to 34b51028f4
All checks were successful
guard / guard (pull_request) Successful in 1m30s
guard / guard (push) Successful in 1m28s
2026-08-19 07:12:49 +00:00
Compare
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
PerishFire/sidecar!48
No description provided.