Skip to content

fix(tasks): correct verifier reports and current-commit retries - #112

Merged
klioen merged 1 commit into
mainfrom
codex/task-verification-report-retry
Oct 24, 2026
Merged

klioen merged 1 commit into
mainfrom
codex/task-verification-report-retry

Conversation

@klioen

@klioen klioen commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Summary

Fix independent Task verification failures caused by report schema rejection and incorrect session routing, and provide an explicitly confirmed retry for a changed current commit without rerunning coding.

  • Use Main-owned chat, task-intake, and task-verification kinds rather than inferring intake from readOnly. Resolve restored tabs before rendering intake UI, including empty intake sessions, without sending presentation metadata to pi or widening tool permissions.
  • Accept bounded string-array issue evidence and normalize it to canonical newline-separated strings. Require one accepted report, not one tool invocation; permit up to two schema corrections and recover only one unambiguous valid report after positively identified SDK schema rejections.
  • Add task_retry_verification_current_commit(taskId, expectedRevision). Main reads the clean HEAD on the persisted Task branch; a transaction audits old/new pins, preserves historical reports, creates a fresh verifier, and reactivates the same coding Run. Attempt numbering is monotonic across commits.
  • Adopt an already-merged hosting receipt only when repository, source project, branch, target, SHA, and clean-worktree invariants match. Never push or create another PR on receipt adoption.

Safety and compatibility

  • Schema remains v8; no migration, live database replacement, downgrade, or historical verdict rewriting.
  • Preserve deadline, cancellation, supersession, duplicate-report, busy/dirty-workspace, stale-revision, and terminal-Task fences.
  • Renderer cannot supply filesystem paths, commit SHA, verification verdict, or evidence to the retry command.
  • No automatic Task acceptance, merge, or release.

Validation

  • pnpm check: 104 test files / 895 tests, plus 35 release tests, all passed.
  • Production build, macOS signing, packaged app smoke, mounted-DMG smoke, and installation passed.
  • Populated read-only online database snapshots: schema v8, quick_check=ok, no foreign-key errors; all existing 22 Tasks, 33 Runs, and 5 verification records and every historical table row remained unchanged across installation and restart.
  • Real installed application APIs returned task-verification for the historical verifier in both direct kind lookup and session history.
  • Regression coverage includes malformed-then-corrected reports, SDK wire schema, restored tab routing/navigation races, empty intakes, changed-HEAD opt-in, monotonic attempts, rollback, restart without coding, unsafe retry rejection, confirmed UI action, and exact merged receipt adoption without publication.

Live recovery boundary

The affected user's Task was already marked completed before installation. Live retry preflight refused to reopen it; its terminal status and original inconclusive verdict were preserved. Fresh current-commit re-verification and merged-receipt adoption were regression-tested, not executed on that completed live Task.

@klioen
klioen merged commit 3145cbe into main Oct 24, 2026
3 of 4 checks passed
@klioen
klioen deleted the codex/task-verification-report-retry branch October 24, 2026 13:08
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