Skip to content

fix(change): heal reopen closing-approval recovery (#445/#481) - #485

Merged
0xLeif merged 9 commits into
mainfrom
leif/fix-reopen-closing-approval
Aug 1, 2026
Merged

fix(change): heal reopen closing-approval recovery (#445/#481)#485
0xLeif merged 9 commits into
mainfrom
leif/fix-reopen-closing-approval

Conversation

@0xLeif

@0xLeif 0xLeif commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Bind change reopen to the historical verification attempt that authenticates the closing approval when verification.json has drifted
  • Persist a terminal finalization ledger approval on workflow-v2 same-PR finalize so reopen can supersede it
  • Always append the acceptance-bound verification to attempt history
  • Allow change approve while accepted when definition digest is stale (reopen recovery)
  • Refuse legacy-workflow finalize with clear accept + archive guidance

Closes #445 (reopen recovery dead-end for closing/definition). Addresses #481 reopen/archive deadlock class.

Test Plan

  • cargo clippy -- -D warnings
  • cargo test change::tests:: (291)
  • New unit tests: historical tip drift, v2 reopen after finalization, definition refresh, legacy finalize refusal
  • Integration: eight-workflow finalize fixture
  • CHG-0072 verified, reviewed, finalized/archived

0xLeif added 3 commits July 31, 2026 19:50
Bind reopen to the historical verification that authenticates the
closing approval when verification.json has drifted, persist a
finalization terminal approval for workflow v2, allow definition
re-approval while accepted when stale, and refuse legacy finalize
with accept/archive guidance.
@0xLeif
0xLeif requested a review from a team as a code owner August 1, 2026 02:17
@0xLeif
0xLeif requested review from 0xGaspar, Kyntrin and tofu-ux and removed request for a team August 1, 2026 02:17
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@0xLeif

0xLeif commented Aug 1, 2026

Copy link
Copy Markdown
Contributor Author

Lifecycle: CHG-0072 verified, reviewed, and archived on this tip.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❌ Corvin says...

      _
    <(;\  .oO(oh no...)
     |/(\
      \(\\
      " "\\

"Caw... validation failed..."

CI Summary

Check Status
Validate action.yml ✅ Passed
Packaged Action Consumer ✅ Passed
Dependency Audit ✅ Passed
Code Coverage ✅ Passed
Format Check ❌ failure
Docs Site ✅ Passed
Spec Validation ❌ failure
Tests (build, test, clippy) ❌ cancelled
VS Code Extension ✅ Passed
📋 Spec Validation Details

❌ SpecSync: Failed

Metric Value
Specs checked 62
Passed 62
Errors 2
Warnings 0
File coverage 100% (105/105)
LOC coverage 100% (124652/124652)

Errors

.specsync/sdd.json

  • CHG-0072-heal-reopen-closing-approval-recovery-for-stale-accepted-evidence: verification evidence is stale for the current commit or contract
  • meaningful changed paths are not covered by an active change: tests/integration/change.rs

Action Items

  • Review and fix -- CHG-0072-heal-reopen-closing-approval-recovery-for-stale-accepted-evidence: verification evidence is stale for the current commit or contract
  • Review and fix -- meaningful changed paths are not covered by an active change: tests/integration/change.rs

Generated by specsync · Run specsync check --format github to reproduce


Powered by corvid-pet

@0xLeif
0xLeif force-pushed the leif/fix-reopen-closing-approval branch from 10f3087 to 2efdc0c Compare August 1, 2026 03:21
@github-actions
github-actions Bot dismissed their stale review August 1, 2026 03:44

Superseded by updated review.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❌ Corvin says...

      _
    <(;\  .oO(oh no...)
     |/(\
      \(\\
      " "\\

"Caw... your imports are all over the place."

CI Summary

Check Status
Validate action.yml ✅ Passed
Packaged Action Consumer ✅ Passed
Dependency Audit ✅ Passed
Code Coverage ✅ Passed
Format Check ❌ failure
Docs Site ✅ Passed
Spec Validation ❌ failure
Tests (build, test, clippy) ❌ cancelled
VS Code Extension ✅ Passed
📋 Spec Validation Details

❌ SpecSync: Failed

Metric Value
Specs checked 62
Passed 62
Errors 2
Warnings 0
File coverage 100% (105/105)
LOC coverage 100% (124652/124652)

Errors

.specsync/sdd.json

  • CHG-0072-heal-reopen-closing-approval-recovery-for-stale-accepted-evidence: verification evidence is stale for the current commit or contract
  • meaningful changed paths are not covered by an active change: tests/integration/change.rs

Action Items

  • Review and fix -- CHG-0072-heal-reopen-closing-approval-recovery-for-stale-accepted-evidence: verification evidence is stale for the current commit or contract
  • Review and fix -- meaningful changed paths are not covered by an active change: tests/integration/change.rs

Generated by specsync · Run specsync check --format github to reproduce


Powered by corvid-pet

@github-actions
github-actions Bot dismissed their stale review August 1, 2026 04:13

Superseded by updated review.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❌ Corvin says...

      _
    <(;\  .oO(oh no...)
     |/(\
      \(\\
      " "\\

"Caw... validation failed..."

CI Summary

Check Status
Validate action.yml ✅ Passed
Packaged Action Consumer ✅ Passed
Dependency Audit ✅ Passed
Code Coverage ✅ Passed
Format Check ✅ Passed
Docs Site ✅ Passed
Spec Validation ❌ failure
Tests (build, test, clippy) ❌ cancelled
VS Code Extension ✅ Passed
📋 Spec Validation Details

❌ SpecSync: Failed

Metric Value
Specs checked 62
Passed 62
Errors 1
Warnings 0
File coverage 100% (105/105)
LOC coverage 100% (124650/124650)

Errors

.specsync/sdd.json

  • meaningful changed paths are not covered by an active change: tests/integration/change.rs

Action Items

  • Review and fix -- meaningful changed paths are not covered by an active change: tests/integration/change.rs

Generated by specsync · Run specsync check --format github to reproduce


Powered by corvid-pet

@github-actions
github-actions Bot dismissed their stale review August 1, 2026 04:31

Superseded by updated review.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❌ Corvin says...

      _
    <(;\  .oO(oh no...)
     |/(\
      \(\\
      " "\\

"Caw... validation failed..."

CI Summary

Check Status
Validate action.yml ✅ Passed
Packaged Action Consumer ✅ Passed
Dependency Audit ✅ Passed
Code Coverage ✅ Passed
Format Check ✅ Passed
Docs Site ✅ Passed
Spec Validation ❌ failure
Tests (build, test, clippy) ❌ cancelled
VS Code Extension ✅ Passed
📋 Spec Validation Details

❌ SpecSync: Failed

Metric Value
Specs checked 62
Passed 62
Errors 1
Warnings 0
File coverage 100% (105/105)
LOC coverage 100% (124650/124650)

Errors

.specsync/sdd.json

  • CHG-0072-heal-reopen-closing-approval-recovery-for-stale-accepted-evidence: verification evidence is stale for the current commit or contract

Action Items

  • Review and fix -- CHG-0072-heal-reopen-closing-approval-recovery-for-stale-accepted-evidence: verification evidence is stale for the current commit or contract

Generated by specsync · Run specsync check --format github to reproduce


Powered by corvid-pet

@0xLeif
0xLeif merged commit 6a4cd64 into main Aug 1, 2026
6 of 7 checks passed
@0xLeif
0xLeif deleted the leif/fix-reopen-closing-approval branch August 1, 2026 04:31
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.

Stale-evidence recovery dead-ends — reopen's approve suggestion is refused in accepted state; stale --threshold 0 off-by-one; warn mode exits 1

1 participant