I3070 — release.currency measures the landed work past the last release, and the brief and doctor say when it waits
Declare release.currency with capability! in the release module. It answers the last release (the release record the layer holds, or the newest v* tag the trunk contains when that tag is newer), the landed commits on the trunk past it (release commits and merges left out), when the oldest of them landed, and the version the public contract requires for them (release::version::select), decided only from a recorded release in a checkout at the trunk. The stance is current when nothing has landed past the release, owed when work has, and overdue once the oldest of it has waited longer than six hours, the threshold stated beside its declaration. The brief shows a release line and section, doctor warns on owed and on overdue, and project.land-and-publish names case 3470 as its proof. It is a runtime read only and never enters committed site data.
PŘIPRAVENO vlna 0 · p1 · profil implementation · běží samostatně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3070 bude přijato.
Cíl
Declare release.currency with capability! in the release module. It answers the last release (the release record the layer holds, or the newest v* tag the trunk contains when that tag is newer), the landed commits on the trunk past it (release commits and merges left out), when the oldest of them landed, and the version the public contract requires for them (release::version::select), decided only from a recorded release in a checkout at the trunk. The stance is current when nothing has landed past the release, owed when work has, and overdue once the oldest of it has waited longer than six hours, the threshold stated beside its declaration. The brief shows a release line and section, doctor warns on owed and on overdue, and project.land-and-publish names case 3470 as its proof. It is a runtime read only and never enters committed site data.
Proč
The owner wants a new measured version after every session and milestone, enforced. The cooperation model's rule that the release seat releases whenever master holds landed work past the last tag is measured nowhere. Master held landed work past v0.30.0 for hours while every surface stayed green.
Aktuální stav
release.version reports the last release and the commits since it as evidence, and says nothing about how long they have waited. Nothing in the brief, doctor or finish asks.
Cílový stav
A session's brief and doctor say how much landed work waits for a release, since when and at which version. The release seat can see the debt without reading git.
Rozsah
- apps/majordomus-cli/src/release/currency.rs
- apps/majordomus-cli/src/release/compat.rs
- apps/majordomus-cli/src/cockpit/pages.rs
- docs/BRIEF.md
- .ai/repo/project/intents/a-version-follows-every-session.yaml
- apps/majordomus-cli/src/release/mod.rs
- apps/majordomus-cli/src/capability/builtin/release.rs
- apps/majordomus-cli/src/capability/builtin/brief.rs
- lib/doctor.sh
- .ai/repo/rules/project/land-and-publish.v1.md
- docs/RELEASE.md
- test/cases/3470_the_release_follows_the_work.sh
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
- I3071BLOCKED /ui/delivery shows how much landed work waits for a release, and since when
- I3072BLOCKED A task holding the release seat does not finish completed while landed work has waited past the threshold
- I3076BLOCKED The landing clock's first source is measured, a fresh clone's wait is a labelled bound, and case 3470 shows a decided version
Kritéria přijetí
- In a repository with a release record and commits landed after it, release.currency names the release, the landed commits past it without the bump and record commits, the oldest one's landing time and the required version; with nothing landed past it, it says current
- The brief has a release line saying owed or overdue with the count and the age, and doctor warns accordingly
- A pushed v* tag newer than the last record counts as the last release
- The oldest landing is dated by when this clone's remote-tracking trunk first held it, from that ref's reflog, so a top composed hours before it landed waits from its landing; where the reflog does not show it arrive, its commit time bounds the wait from above, the answer says so, and that bound alone never makes the stance overdue (the plan critique of 2026-10-19)
Validace
- bin/majordomus plan validate
- bash test/run.sh 3470_the_release_follows_the_work
Požadované důkazy
- case_release_follows_the_work
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3070.yaml. Read it back with majordomus plan show I3070.