Skip to content

fix: bound sprint QA follow-up completion - #2977

Merged
numnx merged 1 commit into
devfrom
fix/sprint-follow-up-completion
Jul 12, 2026
Merged

fix: bound sprint QA follow-up completion#2977
numnx merged 1 commit into
devfrom
fix/sprint-follow-up-completion

Conversation

@numnx

@numnx numnx commented Jul 12, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Make an exhausted sprint-QA review budget authoritative even when completed follow-up work changes the task snapshot.
  • Reserve the final configured sprint-QA cycle for verification and escalation instead of creating another automatic task batch that cannot be reviewed.
  • Open one deduplicated sprint-scoped human handoff for non-passing final reviews and persist why automatic follow-up was suppressed.
  • Add regression coverage for the exhausted-budget snapshot case, final-cycle task suppression, and handoff creation.
  • Update canonical and public QA/orchestration documentation, including the effect of disabling task-completion QA.

Why

The completion decision checked meaningful task changes before enforcing the sprint-QA cap, while handoff creation refused to run when meaningful changes existed. A sprint whose cap-reaching review created follow-up tasks could therefore complete all work but remain in a heartbeat loop with no review budget and no visible handoff. Earlier review cycles could also create an unrestricted final task batch with no remaining verification cycle.

Impact

Sprint completion remains fail-closed. At the configured cap, Code UX now surfaces an explicit operator decision instead of silently running forever, and the final review cannot expand the sprint with work that automation is not allowed to verify.

Validation

  • pnpm run lint
  • pnpm exec vitest run tests/backend/domain/qa-review/sprint-qa-snapshot.test.ts tests/backend/services/quality-assurance-service.test.ts — 62 passed
  • pnpm run test:backend — 5,334 passed, 7 skipped
  • pnpm run check:docs-web
  • pnpm run build
  • Runtime health check passed after restart; two affected persisted runs each produced one deduplicated QA-budget handoff without creating another task or QA review.

Risk and rollback

Risk is limited to sprint-completion QA exhaustion and final-cycle follow-up routing. Roll back this commit to restore the previous decision order; existing handoffs remain auditable and can be resolved through the normal operator flow.

@numnx
numnx marked this pull request as ready for review July 12, 2026 17:03
@numnx
numnx merged commit 217d4c4 into dev Jul 12, 2026
40 checks passed
@numnx
numnx deleted the fix/sprint-follow-up-completion branch July 12, 2026 17:03
@numnx numnx mentioned this pull request Jul 14, 2026
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