Skip to content

✨ feat(dashboard): in-place Spek recheck on v6 (revision bump, single lease) - #10807

Merged
hivecommons-hive[bot] merged 3 commits into
v6from
scanner/fix-10800
Oct 6, 2026
Merged

hivecommons-hive[bot] merged 3 commits into
v6from
scanner/fix-10800

Conversation

@hivecommons-hive

Copy link
Copy Markdown
Contributor

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

  • New InceptionEngine.RewindExternalCampaign (one locked write): same archive ID, Revision N+1, new Drift (with PriorRevision = closed revision as a decimal string), recheck state, revise lease. It appends exactly one CampaignRevisionHistory generation-log entry with new omitempty fields reason, actor, rewound_at, last_gen, drift.
  • A prior generation's completion never completes the rewound one. Drift is cleared once the current generation completes (run gen > closed generation's last_gen).

R2 – in-flight

  • decorateCampaignRechecks: in-flight = revise lease held OR (Drift != nil and not completed/shipped). The RevisionOf map is removed.

R3 – lease model

  • The spec stage is admitted on the run's own key <repo>!<runKey>:spec / run-admit-<runKey> with a gen past every gen already used. The spek-recheck-* lease and recheckTaskPrefix are removed.
  • A rewind is refused (409, archive unchanged) while a stage lease for the run is live, while a recheck is in flight, or while another owner holds the revise lease.
  • spekRecheckDisabledOnV6, errRecheckUnavailable and the 501 branch are removed.

R4 – API

  • revision_of is kept but deprecated and never written. Campaign JSON now exposes history (the generation log).

Tests

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

scanner and others added 2 commits October 6, 2026 02:03
… 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>
@kubestellar-prow kubestellar-prow Bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Oct 6, 2026
@kubestellar-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign kellyaa for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Changelog: this PR changes code but carries no changelog entry
(no changelog.d/ fragment and no CHANGELOG.md edit).

If it is user-visible — a feature, a fix an operator would notice, a
security change, a migration, a deprecation, or anything breaking —
please add a fragment file changelog.d/<category>-<pr-or-slug>.md
containing exactly your entry (see changelog.d/README.md; the
category is one of added/changed/deprecated/fixed/security). Please
do not append to CHANGELOG.md's ## Unreleased directly — that
shared section is the merge-conflict generator fragments replaced
(#5675). If it is a refactor, a test-only change, or dependency
churn, no entry is needed and you can ignore this.

This is a reminder, not a gate; it never blocks a merge.

@kubestellar-prow kubestellar-prow Bot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Oct 6, 2026
@hivecommons-hive

Copy link
Copy Markdown
Contributor Author

hive/awaiting-ci: CI pending — sweep will merge when green.


🐝 Hive Agent: scanner | Instance: hosted-available-oke-11-placeholder-r05x | SHA: unknown

— hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Open PR overlap check

Base branch: v6

Conflicts are checked with every PR merged onto the current tip of v6, so a PR that only needs a rebase is not reported as conflicting with its siblings.

PR Title Relation Files
#10802 🌱 sync: forward-merge v5 into v6 (top-up), renumber planning-engine ADR to 0022 CONFLICT src/pkg/dashboard/campaign_recheck.go

@github-actions github-actions Bot added the conflicts-with-open-pr Open PR has a merge conflict with another open PR label Oct 6, 2026
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>
@hivecommons-hive
hivecommons-hive Bot merged commit 1a7cf9a into v6 Oct 6, 2026
52 of 53 checks passed
@kubestellar-prow
kubestellar-prow Bot deleted the scanner/fix-10800 branch October 6, 2026 06:11
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Thank you for your contribution! Your PR has been merged.

We'd love to hear how your experience was: share feedback

clubanderson added a commit that referenced this pull request Oct 6, 2026
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>
clubanderson added a commit that referenced this pull request Oct 6, 2026
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>
hivecommons-hive Bot pushed a commit that referenced this pull request Oct 7, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conflicts-with-open-pr Open PR has a merge conflict with another open PR copilot dco-signoff: yes Indicates the PR's author has signed the DCO. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants