68 lines
9.0 KiB
Markdown
68 lines
9.0 KiB
Markdown
# AUTONOMOUS-ROADMAP-01 acceptance — 29 October 2026
|
|
|
|
**Controller implementation and synthetic qualification: delivered. Real backlog execution: disabled. Phase 10 implementation: NO-GO.** No production or main-merge authority is granted.
|
|
|
|
Source branch: `codex/autonomous-roadmap-01`, isolated managed worktree based on the actual local `5032ccb`. The queue/source checkpoint is `4da3939547a327fe27572b081a893fdf6cb1638c`, pushed and independently read back from origin. The final controller checkpoint is identified by Git history and the final handoff; tested source hashes are in the machine-readable results below. Publishing this branch does not publish or accept the pending pre-Phase-10 ref.
|
|
|
|
## Final decision matrix
|
|
|
|
| Required area | Decision | Evidence and boundary |
|
|
|---|---|---|
|
|
| Queue configuration | **PASS** | Seven actual source workstreams in requested order; full byte-preserved master/detail packs; 49 bounded checkpoints; manifest/source hash validation; source gaps resolved by owner-supplied folders |
|
|
| Codex non-interactive runner | **PASS for implemented synthetic protocol** | Installed 0.163.0 help and official docs verified; actual subprocess fake-CLI tests exercise full prompt delivery, JSONL completion, structured result, independent test process/report and captured session ID. **Real model/native-sandbox worker NOT RUN / BLOCKED** |
|
|
| Resume/recovery | **PASS in synthetic/local process scope** | Durable state/backup/OS lock, interruption, pending-publication resume, corrupt-state recovery, unsigned-recovery rejection, actual killed controller/child/grandchild and suspended-launch tests |
|
|
| Acceptance gate enforcement | **PASS in synthetic scope** | Dependency/order gates; fresh report membership/failure/skip/retry rules; artifact tamper detection; unknown/missing sources and unqualified adapters block; conditional advancement requires declared deferral plus signature |
|
|
| Owner approval enforcement | **PASS in synthetic/cryptographic scope** | Actual .NET verifier exercised end-to-end with signed queue/stage approvals; six separate valid/replay/forgery/expiry/wrong-owner/plain-JSON cases; design revision/selection text persists |
|
|
| Git safety | **PASS in disposable repositories and scoped feature publication** | Explicit feature refs; no force/merge/rebase/deploy path; baseline/publication verification, unavailable remote, push failure/mismatch and integration fast-forward tests; real own-branch publication read back |
|
|
| Isolation/security | **CONDITIONAL** | Windows suspended launch and Job process-tree behavior tested locally. Native Codex sandbox failed CryptUnprotectData; dedicated account/VM, ACL/read/egress/tool/secret/CPU qualification and actual test adapters are not provisioned or certified |
|
|
| Synthetic orchestration tests | **PASS** | **48 controller tests**, zero failures/errors/skips; source hashes stable throughout full run. **6 separate signature cases**, exit 0. These are disjoint lanes, not additions to Jobjakt's application counts |
|
|
| Ready to run Phase 10 | **NO-GO** | Existing acceptance withholds implementation; unpublished pre-Phase-10 baseline, owner scope/entry, qualified runtime and adapter gates remain |
|
|
|
|
This is a qualified development handoff, not a claim that the real CLI can safely run the roadmap on the current desktop. A direct model-backed execution was deliberately not attempted as a workaround for failed isolation. The shipped real-stage composite test adapter is unconfigured and fails closed until actual provider/browser/Python/PDF/security/preservation lanes and test membership are installed and approved. Static `dry-run` configuration PASS means the queue/source structure is valid, not that the runner identity, certificate, credentials or application runtime are ready.
|
|
|
|
## Reproducible evidence
|
|
|
|
- `automation/reports/synthetic-results.json`: final test totals, zero failure/error/skip lists, before/after source-stability assertion and exact controller/manifest/test/PowerShell hashes.
|
|
- `automation/reports/synthetic-tests.txt`: full final 48-case test output.
|
|
- `automation/reports/signature-results.json` and `signature-tests.txt`: six separate .NET cryptographic cases using temporary keys/certificates only.
|
|
- `automation/reports/disabled-dry-run.json`: static queue validation, zero source gaps, 49 checkpoints, unqualified adapter explicitly listed, execution disabled and **zero real sessions** independently asserted from durable state.
|
|
- `automation/SOURCE_INVENTORY.json` and `automation/backlog.json`: actual prompt names/sizes/SHA256 and immutable workstream/checkpoint policy. `.gitattributes` prevents prompt newline normalization.
|
|
|
|
The final full run supersedes earlier focused runs and deliberately failing regression runs; those are not added to the final 48. The six signature cases are reported separately. No historical application suite counts were rerun, combined or promoted by this task.
|
|
|
|
## Requested failure scenarios
|
|
|
|
| Scenario | Synthetic evidence |
|
|
|---|---|
|
|
| Queue ordering and dependencies | `test_success_orders_stages_and_verifies_remote`, `test_dependency_cannot_be_bypassed`, forward/cyclic dependency rejection |
|
|
| Successful and failed stages | actual two-stage fake-worker Git flow; bounded failed model/check flow |
|
|
| Conditional acceptance | no-declared-deferral stop; declared deferral still waits for signed approval |
|
|
| Missing approval / bypass | missing signature launches no model; worker JSON cannot approve; actual signed resume E2E; six crypto cases |
|
|
| CLI interruption / network-style failure | fake CLI exit 17 and interrupted runner never accept; bounded retry with stored failure context |
|
|
| Restart/resume | persistent RUNNING with/without marker blocks; unsigned recovery cannot clear guard; actual killed parent kills contained child/grandchild |
|
|
| Missing/changed prompt | source absence/hash change blocks before model execution |
|
|
| Unavailable remote / push failure / wrong remote HEAD | baseline check prevents work, tested local commit retained, publication-only resume, mismatch blocks |
|
|
| Repeated failure limit | retry budget exhaustion stops; resetting requires a signed explicit request; total session budget remains finite |
|
|
| Duplicate start | OS-held common-Git-directory lock rejects second controller, including a different ControlRoot |
|
|
| Corrupt state | checksum/last-good recovery marked for reconciliation; double corruption fails closed |
|
|
| Accidental main operation | main/master/production/detached initial checkout and unsafe branch policies rejected; no merge/deploy implementation |
|
|
| Source/evidence falsification | modified artifact blocks approval; structured reports reject empty/failing/skipped/retried or wrong-membership output |
|
|
| Resource and shutdown faults | stalled stdin timeout, huge no-newline log limit, PID-marker disk failure cleanup, suspended pre-assignment launch, Job kill-on-parent-death |
|
|
| Human design loop | signed Revise returns to same checkpoint, persists element choices; later signed Approve advances without another copied prompt |
|
|
|
|
This simulates reboot/restart conditions and tests actual process termination; it does not claim a physical PC reboot occurred. Windows Job memory/process limit configuration is implemented; adversarial memory-exhaustion/load qualification of the actual Codex/native sandbox remains operator work.
|
|
|
|
## Review and graph evidence
|
|
|
|
A read-only independent code review identified blocking stdin delivery, marker-write cleanup, unbounded log allocation, unsigned-recovery state mutation and pre-assignment process execution. Each was corrected and covered by regression tests. Credential redaction now preserves valid JSONL event structure; its regression was observed failing before the fix. Review is supporting evidence, not proof of real-host isolation.
|
|
|
|
`graphify update .` rebuilt the separate worktree's AST graph without LLM/API cost. It reports unsupported/no-symbol files and missing SQL/PDF extraction dependencies; graph orientation does not establish runtime routing, security, test completeness or acceptance. The primary checkout's graph was not modified.
|
|
|
|
The inspected Gitea deployment workflow triggers on pushes to main (plus PR testing), and the MariaDB workflow lists other explicit qualification branches. This task published only its development branch and created no PR, workflow dispatch, production operation or scheduled runner.
|
|
|
|
## Owner handoff
|
|
|
|
Use [README](README.md) for exact installation/start/status/pause/resume/approval commands. **First complete Pre-Phase-10 acceptance, publish and verify its final branch, and explicitly approve Phase 10 development entry on a named baseline and exact candidate scope.** Preserve the separate human, S01/PDF, model, CI/security and production conditions in [GATES](GATES.md). Then qualify the isolated runner/test adapters and sign the enabled manifest/environment/roadmap/entry requests. This task intentionally grants none of those decisions.
|
|
|
|
No Jobjakt application code, existing tests, schema, local application stack, real CV, production database, Docker service, Ollama/model cache, main branch or production filesystem was changed by this implementation branch.
|