Skip to content

fix(runner): retire stale state-loss replays - #11909

Merged
chubes4 merged 3 commits into
mainfrom
fix/11899-stale-state-loss-replay
Aug 8, 2026
Merged

fix(runner): retire stale state-loss replays#11909
chubes4 merged 3 commits into
mainfrom
fix/11899-stale-state-loss-replay

Conversation

@chubes4

@chubes4 chubes4 commented Aug 7, 2026

Copy link
Copy Markdown
Member

Summary

  • revalidate state-loss replay operations against current remote daemon facts before replaying them
  • retire disproven replay intent with typed durable evidence and a successor operation token
  • preserve active-job protection while allowing exact live lease/PID adoption to proceed

Verification

  • cargo fmt --check
  • cargo check -p homeboy-lab-runner
  • cargo test -p homeboy-lab-runner connection::tests::recovery --lib

AI assistance

OpenAI GPT-5.6 Terra (gpt-5.6-terra) via OpenCode investigated the replay boundary, implemented the reconciliation, and added deterministic coverage. Chris Huber remains responsible for every line.

AI assistance: OpenAI GPT-5.6 Terra (gpt-5.6-terra) via OpenCode investigated the replay boundary, implemented the reconciliation, and added deterministic coverage. Chris Huber remains responsible for every line.
@homeboy-ci

homeboy-ci Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Homeboy Results — homeboy

Lint

review lint — passed

ℹ️ Full options: homeboy self docs commands/lint
ℹ️ Save lint baseline: homeboy review lint homeboy --baseline
Deep dive: homeboy review lint homeboy --changed-since 9d0dd2a

Artifacts and drill-down
  • CI results artifact: homeboy-ci-results-homeboy-review-lint-homeboy-fast-Linux contains immediate command JSON for this action invocation.
  • Observation artifact: homeboy-observations-homeboy-review-lint-homeboy-fast-Linux contains exported Homeboy run history for deeper queries.
  • Drill-down: download the observation artifact, then run homeboy runs import <dir>, homeboy runs list, and homeboy runs findings <run-id>.
  • Artifacts are attached to the workflow run: https://github.com/Extra-Chill/homeboy/actions/runs/31248649004

Audit

⚠️ review audit — no measurement

Deep dive: homeboy review audit homeboy --changed-since 9d0dd2a

Artifacts and drill-down
  • CI results artifact: homeboy-ci-results-homeboy-review-audit-homeboy-fast-Linux contains immediate command JSON for this action invocation.
  • Observation artifact: homeboy-observations-homeboy-review-audit-homeboy-fast-Linux contains exported Homeboy run history for deeper queries.
  • Drill-down: download the observation artifact, then run homeboy runs import <dir>, homeboy runs list, and homeboy runs findings <run-id>.
  • Artifacts are attached to the workflow run: https://github.com/Extra-Chill/homeboy/actions/runs/31248649004
Tooling versions
  • Homeboy CLI: homeboy 0.334.0+4b53a934b6e7-dirty
  • Extension: rust from https://github.com/Extra-Chill/homeboy-extensions
  • Extension revision: 14fe68af
  • Action: unknown@unknown

AI assistance: OpenAI gpt-5.6-terra via OpenCode. Used to reproduce the fixture timeout under the integration candidate, extend its bounded server lifetime, and run focused verification. Chris Huber remains responsible for every line.
@chubes4

chubes4 commented Aug 7, 2026

Copy link
Copy Markdown
Member Author

Pushed 15567adf2c51f85dfe054c1245e4bd893fd1b4d4 to this PR: the deterministic endpoint fixture now remains available for 60s rather than 10s. The prior bound expired during the fixture's first adoption before the normal-connect assertion.

Verified: cargo test -p homeboy-lab-runner stale_state_loss_replay_is_retired_before_exact_live_lease_adoption --lib (passed).

Integration ordering note: #11908 must add retired_replay: None to its retire_rejected_state_loss_replacement() ReplacementOperation initializer once this PR's field is present; otherwise the combined build fails with E0063. Evidence is recorded on #11908.

AI assistance: OpenAI gpt-5.6-sol via OpenCode reproduced the fixture timeout, applied the focused test fix, and ran verification. Chris Huber remains responsible for this comment.

AI assistance: OpenAI GPT-5.6 Terra (gpt-5.6-terra) via OpenCode inspected CI artifacts, resolved the runner replay conflict to the upstream owning fix, and verified focused suites. Chris Huber remains responsible for every line.
@chubes4

chubes4 commented Aug 8, 2026

Copy link
Copy Markdown
Member Author

Merged current main without rewriting history. The runner replay conflict now uses the owning evidence-backed terminal-refusal retirement path, avoiding the superseded extra pre-replay status probe.

Verification:

  • cargo test -p homeboy-lab-runner connection::tests::recovery --lib: 70 passed
  • cargo test -p homeboy-cli commands::runner::tests::status --lib: 20 passed
  • Full cargo test -p homeboy-lab-runner exceeded the 10-minute local budget; its independently rerun failure is baseline: cargo test -p homeboy-lab-runner parsed_provider_availability_accepts_unique_extension_alias -- --nocapture fails identically on clean origin/main at 9d0dd2a99.

AI assistance: OpenAI GPT-5.6 Terra (gpt-5.6-terra) via OpenCode inspected CI artifacts, resolved the merge conflict to the owning upstream fix, and reproduced the unrelated baseline failure. Chris Huber remains responsible for every line.

@chubes4
chubes4 merged commit 7586c81 into main Aug 8, 2026
15 of 32 checks passed
@chubes4
chubes4 deleted the fix/11899-stale-state-loss-replay branch August 8, 2026 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant