Skip to content

fix(tasks): recover timed-out verification without rerunning coding - #109

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

klioen merged 1 commit into
mainfrom
codex/task-verification-recovery

Conversation

@klioen

@klioen klioen commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Summary

Fix verification timeouts that permanently recorded inconclusive while the independent verifier continued running. A later structured pass was rejected as already reported, leaving the Task without a PR even though its verification chat claimed success.

  • Persist bounded verification deadlines (60 minutes by default), stop timed-out/cancelled/shutdown verifiers, and fence reports by active coding Run, latest verification attempt, session identity, and exact clean commit.
  • Add verification-only retry and narrowly scoped legacy late-report recovery. Reuse the completed coding Run and prepared commit; preserve previous verdicts and record recovery provenance rather than overwriting history.
  • Recover unfinished verifier sessions and eligible durable reports without reopening the coding agent; restore restricted verifier tool/resource policy on every create/open/rebind path.
  • Resume the existing idempotent delivery saga after an accepted pass. Final chat prose cannot acknowledge an unaccepted report. No automatic Task acceptance, merge, or release.
  • Add schema v8 attempt/deadline storage and update both packaged Task smoke checks, including bounded readiness waiting, integrity and foreign-key assertions.

Validation

  • pnpm check on the rebased branch: 104 Vitest files / 869 tests and 35 release tests passed, including timeout/report races, cancellation, retry history, unsafe report rejection, restart replay, shutdown, migration, IPC, UI, and restricted-tool regressions.
  • pnpm build on the rebased branch.
  • Read-only online snapshot of current populated schema v8 data reopened using the rebased implementation: all 21 Tasks, 32 Runs, 4 verification records, events and archive rows preserved; PRAGMA quick_check = ok and no foreign-key violations.
  • Before rebase, macOS production build, signed app and mounted-DMG smoke, installation/hash validation, populated v7-to-v8 compatibility checks, and a real allowlisted recovery invocation passed. The original failing Task was recovered into Ready PR 优化 Chat/Task Session 的折叠式工作过程展示 #108 at its unchanged commit, with its old inconclusive attempt retained. Duplicate recovery was rejected without another PR or Task mutation. The temporary local debugging endpoint was closed afterwards.

Compatibility / scope

This advances the Task database schema from v7 to v8 with preserved historical rows and a migration backup. Do not downgrade or replace existing application data to run an older baseline. No dependencies or lockfile changes.

Rebased onto current main, retaining its quick-create/AI-rewrite removal and collapsed work-process UI changes. The repair PR is separate from Task result PR #108. No application reinstall or live-data mutation was performed during this rebase/PR submission.

@klioen
klioen merged commit 907124b into main Oct 24, 2026
3 checks passed
@klioen
klioen deleted the codex/task-verification-recovery branch October 24, 2026 10:53
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