Skip to content

fix: lifecycle state machine hardening (closes #411, closes #412, closes #424, closes #426, closes #434, closes #443, closes #445, closes #432, closes #433, closes #423)#462

Draft
0xLeif wants to merge 10 commits into
mainfrom
fix/w3-lifecycle-hardening
Draft

fix: lifecycle state machine hardening (closes #411, closes #412, closes #424, closes #426, closes #434, closes #443, closes #445, closes #432, closes #433, closes #423)#462
0xLeif wants to merge 10 commits into
mainfrom
fix/w3-lifecycle-hardening

Conversation

@0xLeif

@0xLeif 0xLeif commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

⚠️ Status note

This PR currently contains 11 of 12 changed files. src/change.rs (860KB) could not be uploaded through the automation channel and must be added to this branch (expected git blob SHA 7252c4190a306683e3fdbba4116ae4f1312a652b; full file and a 71KB patch vs main are attached to the task report / available from the author). The branch will not compile until it lands. Everything else is byte-verified against the validated local commit.

Summary

Consolidated PR for the W3 lifecycle workstream — the fixes interleave inside the same lifecycle files (src/change.rs, src/commands/change.rs), so they land together. Validation at the full local HEAD: 1734 unit + 228 integration tests pass, cargo clippy -- -D warnings clean, only failure is the pre-existing root-only change::tests::non_git_walk_skips_volatile_trees_but_fails_on_relevant_walk_errors (fails on main too when run as root).

Issue → fix → tests

Deferred

Closes #411, closes #412, closes #424, closes #426, closes #434, closes #443, closes #445, closes #432, closes #433, closes #423

0xLeif added 8 commits July 24, 2026 13:14
 #424, closes #426, closes #434, closes #443, closes #445, closes #432, closes #433, closes #423)
 #424, closes #426, closes #434, closes #443, closes #445, closes #432, closes #433, closes #423)
 #424, closes #426, closes #434, closes #443, closes #445, closes #432, closes #433, closes #423)
 #424, closes #426, closes #434, closes #443, closes #445, closes #432, closes #433, closes #423)
 #424, closes #426, closes #434, closes #443, closes #445, closes #432, closes #433, closes #423)
 #424, closes #426, closes #434, closes #443, closes #445, closes #432, closes #433, closes #423)
 #424, closes #426, closes #434, closes #443, closes #445, closes #432, closes #433, closes #423)
 #424, closes #426, closes #434, closes #443, closes #445, closes #432, closes #433, closes #423)

@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...)
     |/(\
      \(\\
      " "\\

"Even the dumpster of code seems empty today."

CI Summary

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

Powered by corvid-pet

Comment thread src/change.rs
&signed,
)
.unwrap_err();
assert!(error.contains("does not match successor base"), "{error}");

@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 ❌ failure
Dependency Audit ✅ Passed
Code Coverage ✅ Passed
Format Check ✅ Passed
Docs Site ✅ Passed
Spec Validation ❌ failure
Tests (build, test, clippy) ✅ Passed
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% (87774/87774)

Errors

.specsync/sdd.json

  • meaningful changed paths are not covered by an active change: specs/change/change.spec.md, specs/change/context.md, specs/change/requirements.md, specs/change/tasks.md, specs/change/testing.md, specs/cli_args/cli_args.spec.md, specs/cli_args/context.md, specs/cli_args/requirements.md, specs/cli_args/tasks.md, specs/cli_args/testing.md, specs/cmd_change/cmd_change.spec.md, specs/cmd_change/context.md, specs/cmd_change/requirements.md, specs/cmd_change/tasks.md, specs/cmd_change/testing.md, specs/cmd_check/cmd_check.spec.md, specs/cmd_check/context.md, specs/cmd_check/requirements.md, specs/cmd_check/tasks.md, specs/cmd_check/testing.md, specs/cmd_stale/cmd_stale.spec.md, specs/cmd_stale/context.md, specs/cmd_stale/requirements.md, specs/cmd_stale/tasks.md, specs/cmd_stale/testing.md, specs/git_utils/context.md, specs/git_utils/git_utils.spec.md, specs/git_utils/requirements.md, specs/git_utils/tasks.md, specs/git_utils/testing.md, src/change.rs, src/cli.rs, src/commands/change.rs, src/commands/check.rs, src/commands/lifecycle.rs, src/commands/mod.rs, src/commands/report.rs, src/commands/stale.rs, src/git_utils.rs, src/main.rs, tests/integration/change.rs, tests/integration/check.rs, tests/integration/comment.rs

Action Items

  • Review and fix -- meaningful changed paths are not covered by an active change: specs/change/change.spec.md, specs/change/context.md, specs/change/requirements.md, specs/change/tasks.md, specs/change/testing.md, specs/cli_args/cli_args.spec.md, specs/cli_args/context.md, specs/cli_args/requirements.md, specs/cli_args/tasks.md, specs/cli_args/testing.md, specs/cmd_change/cmd_change.spec.md, specs/cmd_change/context.md, specs/cmd_change/requirements.md, specs/cmd_change/tasks.md, specs/cmd_change/testing.md, specs/cmd_check/cmd_check.spec.md, specs/cmd_check/context.md, specs/cmd_check/requirements.md, specs/cmd_check/tasks.md, specs/cmd_check/testing.md, specs/cmd_stale/cmd_stale.spec.md, specs/cmd_stale/context.md, specs/cmd_stale/requirements.md, specs/cmd_stale/tasks.md, specs/cmd_stale/testing.md, specs/git_utils/context.md, specs/git_utils/git_utils.spec.md, specs/git_utils/requirements.md, specs/git_utils/tasks.md, specs/git_utils/testing.md, src/change.rs, src/cli.rs, src/commands/change.rs, src/commands/check.rs, src/commands/lifecycle.rs, src/commands/mod.rs, src/commands/report.rs, src/commands/stale.rs, src/git_utils.rs, src/main.rs, tests/integration/change.rs, tests/integration/check.rs, tests/integration/comment.rs

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


Powered by corvid-pet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants