Repository navigation
✨ feat(dashboard): in-place Spek recheck on v6 (revision bump, single lease) - #10807
Conversation
… lease) Implements the ADR 0020 v6 addendum (R1-R4): a recheck rewinds the existing run to a new generation (same campaign ID and run key, Revision N+1, stage reset to spec) via InceptionEngine.RewindExternalCampaign, appends one generation-log entry, admits the spec stage on the run's own lease key with a gen past every prior gen, and drops the second spek-recheck-* lease. In-flight is now 'revise lease held OR Drift set and not completed'; Drift clears when the rewound generation completes. Removes spekRecheckDisabledOnV6 / errRecheckUnavailable and the 501 path. Closes #10800 Part of #10734 Signed-off-by: scanner <scanner@hive.kubestellar.io>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Changelog: this PR changes code but carries no changelog entry If it is user-visible — a feature, a fix an operator would notice, a This is a reminder, not a gate; it never blocks a merge. |
|
hive/awaiting-ci: CI pending — sweep will merge when green. 🐝 Hive Agent: — hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88 |
Open PR overlap checkBase branch: Conflicts are checked with every PR merged onto the current tip of
|
Generated by changelog-fragment-guard from the PR title (#5675). Edit the wording freely, or replace this file with the no-changelog label if the change is not user-visible. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: hivecommons-hive[bot] <280983584+hivecommons-hive[bot]@users.noreply.github.com>
|
Thank you for your contribution! Your PR has been merged. We'd love to hear how your experience was: share feedback |
Top up v6 with origin/v5 after #10738. Keep the v6 in-place Spek recheck and proxy-only discovery implementation from #10807/#10809; #10734 is closed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Andy Anderson <andy@clubanderson.com>
Top up v6 with origin/v5 after #10738. Keep the v6 in-place Spek recheck and proxy-only discovery implementation from #10807/#10809; #10734 is closed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Andy Anderson <andy@clubanderson.com>
The helpers were not dropped by the merge: v6 removed v5's separate-revision recheck design (taskHashFromTitle, taskContentHash, priorTaskHashes, deltaTaskList, importRecheckDelta) in #10807, and #10828 kept v6's in-place rewind. v5's #10908 then added campaign_recheck_test.go (new on v5) covering that v5-only path; it auto-merged into v6 and no longer compiled. Drop the v5-design tests (delta import x3, revision-minting trigger and cadence tests, task-hash assertions) - v6 covers trigger/conflict/cadence in api_campaigns_test.go - and adapt the decorate test to v6's campaignRecheckInFlight predicate. Shared-helper tests are kept. Signed-off-by: scanner <scanner@hive.kubestellar.io>
Closes #10800
Part of #10734
Implements the ADR 0020 v6 addendum (run-rewind semantics, #10799) and turns Spek recheck back on for v6.
R1 – rewind in place
InceptionEngine.RewindExternalCampaign(one locked write): same archive ID,RevisionN+1, newDrift(withPriorRevision= closed revision as a decimal string), recheck state, revise lease. It appends exactly oneCampaignRevisionHistorygeneration-log entry with newomitemptyfieldsreason,actor,rewound_at,last_gen,drift.last_gen).R2 – in-flight
decorateCampaignRechecks: in-flight = revise lease held OR (Drift != niland not completed/shipped). TheRevisionOfmap is removed.R3 – lease model
<repo>!<runKey>:spec/run-admit-<runKey>with a gen past every gen already used. Thespek-recheck-*lease andrecheckTaskPrefixare removed.spekRecheckDisabledOnV6,errRecheckUnavailableand the 501 branch are removed.R4 – API
revision_ofis kept but deprecated and never written. Campaign JSON now exposeshistory(the generation log).Tests
TestCampaignRecheckManualForceAndConflict: 200 → same ID, revision N+1,current_stage=spec, nospek-recheck-*lease; a second recheck → 409.TickCampaignRecheckswith an injectednow(notime.Sleep), including Drift clearing and a second generation.RewindExternalCampaign.recheck_discovery_test.gonow point at [scanner] v6: port v5 proxy-only outward discovery (campaign_discovery.go + config ValidateDiscovery) and re-enable recheck discovery tests #10801, which un-skips them. No Port Spek continuous convergence (recheck + outward discovery) onto v6's in-place campaign revision model #10734 references remain.Docs (
spektacular.md,api-reference.md) and a changelog fragment are updated.— hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88 requested_by=@clubanderson