Outcome
Every task uses one persisted absolute mission deadline and actual remaining time; an explicit stage policy protects implementation/finalization time without extending the mission or fabricating a completed parent.
Observed behavior
All 45 R4 team task contracts had deadline_at=null. Synthesis started a median 495.185 seconds after launch and had only 295.319–794.291 seconds remaining. Median ready-to-start delay was 0.754 seconds; scheduler latency does not explain the minutes consumed by serial research.
Expected behavior
Queueing, parent delay, restart/resume and verifier work never reset the shared deadline. Stage expiry records the actual failed/cancelled/incomplete state; a hard stop cannot become accepted success.
Reproduction and evidence
Use a core-only fake-clock mission with delayed parents and a dependent child. Full findings: #296 (comment); overview: #296. R4's prompt/timer helpers are diagnostic evidence, not a source prerequisite for this core fix.
Acceptance criteria
Dependencies
Blocked by #297.
Aligned with #164, #53 and #166. Preserve their distinct scope and existing recovery/authority contracts. Review PR #294 before touching verifier behavior.
Governed delivery contract
- Source repository:
All-The-Vibes/ecorp.
- Source base: original
b2523964e7576cafc00e84a51e1044f55826dea7, then the explicit FX-01 parent/landed commit; revalidate main before dispatch.
- Write scope: deadline contract in
crates/crony-domain/src/lib.rs; crates/crony-server/src/planning.rs; deadline persistence/dispatch/prompt boundary in crates/crony-store/src/lib.rs; native stop/dispatch in crates/crony-runner/src/main.rs; module tests and proposed tools/e2e_mission_deadline.mjs. New migrations/protocol widening require reviewed scope amendment.
- Provider/strategy: Codex native adapter, gpt-6-astra, ultra, configured Portkey/copilot_proxy route; single strategy and one initial task attempt. Read back exact runtime/configuration at dispatch.
- Budgets: unlimited tokens (
-1), using the qualified native runtime, 10,000,000 microusd ($10) per implementation mission, subject to existing requester/Corp limits, no inherited 20-minute benchmark cutoff; one initial task attempt, scoped work and native cost/loop/stop controls; report insufficient authority rather than extend it must be explicit before dispatch.
- Tools/authority: scoped isolated worktree and owned fixtures; no R4 changes, cancelled-run reopening, broad cleanup or provider retries.
- Persisted verifier: native fake-clock and full-stack acceptance checks plus independent review.
- Publication: one verified review PR; no merge, auto-merge or deployment.
Harness-native-first and boundaries
Start with the existing TaskContract.deadline_at, store formatting and native stop/dispatch/resume behavior. Verify the selected harness before adding a thin missing adapter. A prompt alone is not deadline enforcement. Do not introduce a second execution loop or prescribe an unvalidated optimal stage split.
Validation
Attach fake-clock traces and an owned full-stack deadline/stop/late-completion fixture. Run the contributor migration/fmt/Clippy/workspace-test/web-build/web-lint gates where affected. Record source hashes, exact commands/counts and preserved failure evidence; historical R4 attempts remain terminal; this issue authorizes scoped implementation and its acceptance checks, not an unregistered R4 rerun.
Findings attachment
The full sanitized investigation, controls, quantitative findings, source-provenance hashes and TF-01–16 acceptance matrix are attached inline in #296. This issue includes its relevant observations above. No private local path is required to read the findings.
Outcome
Every task uses one persisted absolute mission deadline and actual remaining time; an explicit stage policy protects implementation/finalization time without extending the mission or fabricating a completed parent.
Observed behavior
All 45 R4 team task contracts had
deadline_at=null. Synthesis started a median 495.185 seconds after launch and had only 295.319–794.291 seconds remaining. Median ready-to-start delay was 0.754 seconds; scheduler latency does not explain the minutes consumed by serial research.Expected behavior
Queueing, parent delay, restart/resume and verifier work never reset the shared deadline. Stage expiry records the actual failed/cancelled/incomplete state; a hard stop cannot become accepted success.
Reproduction and evidence
Use a core-only fake-clock mission with delayed parents and a dependent child. Full findings: #296 (comment); overview: #296. R4's prompt/timer helpers are diagnostic evidence, not a source prerequisite for this core fix.
Acceptance criteria
Dependencies
Blocked by #297.
Aligned with #164, #53 and #166. Preserve their distinct scope and existing recovery/authority contracts. Review PR #294 before touching verifier behavior.
Governed delivery contract
All-The-Vibes/ecorp.b2523964e7576cafc00e84a51e1044f55826dea7, then the explicit FX-01 parent/landed commit; revalidate main before dispatch.crates/crony-domain/src/lib.rs;crates/crony-server/src/planning.rs; deadline persistence/dispatch/prompt boundary incrates/crony-store/src/lib.rs; native stop/dispatch incrates/crony-runner/src/main.rs; module tests and proposedtools/e2e_mission_deadline.mjs. New migrations/protocol widening require reviewed scope amendment.-1), using the qualified native runtime, 10,000,000 microusd ($10) per implementation mission, subject to existing requester/Corp limits, no inherited 20-minute benchmark cutoff; one initial task attempt, scoped work and native cost/loop/stop controls; report insufficient authority rather than extend it must be explicit before dispatch.Harness-native-first and boundaries
Start with the existing
TaskContract.deadline_at, store formatting and native stop/dispatch/resume behavior. Verify the selected harness before adding a thin missing adapter. A prompt alone is not deadline enforcement. Do not introduce a second execution loop or prescribe an unvalidated optimal stage split.Validation
Attach fake-clock traces and an owned full-stack deadline/stop/late-completion fixture. Run the contributor migration/fmt/Clippy/workspace-test/web-build/web-lint gates where affected. Record source hashes, exact commands/counts and preserved failure evidence; historical R4 attempts remain terminal; this issue authorizes scoped implementation and its acceptance checks, not an unregistered R4 rerun.
Findings attachment
The full sanitized investigation, controls, quantitative findings, source-provenance hashes and TF-01–16 acceptance matrix are attached inline in #296. This issue includes its relevant observations above. No private local path is required to read the findings.