Skip to content

feat(deep): prepare compatible readers for durable scan recovery - #919

Draft
mldangelo-oai wants to merge 130 commits into
mainfrom
mdangelo/codex/deep-compatible-reader
Draft

feat(deep): prepare compatible readers for durable scan recovery#919
mldangelo-oai wants to merge 130 commits into
mainfrom
mdangelo/codex/deep-compatible-reader

Conversation

@mldangelo-oai

@mldangelo-oai mldangelo-oai commented Sep 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

Prepare compatible readers for saved Deep execution and publication state before enabling the corresponding writers. Recovery can retain accepted evidence, original worker settings, unresolved coverage and the existing result conversation across an interrupted scan.

Changes

  • Share managed execution and audit admission while preserving existing permission differences and artifact acceptance owners.
  • Read saved attempts, accepted checkpoint references, ordered merge inputs and selected finalization state. Reject unsupported versions before recovery or completion writes.
  • Restore original execution selections through the existing worker launcher, with refreshed authentication and preserved explicit restrictions.
  • Reconcile recorded worker usage, copied rollouts and known cost bounds while keeping unavailable totals unknown.
  • Complete supported saved results through the existing publisher and public SDK recovery path, including sealed-budget replay and continuation ownership checks.
  • Preserve helper CLI behavior through linked plugin directories and collect original test-worker PIDs after shutdown before checking resumed-worker settings.
  • Add compatible schema and consumer support while keeping new scans on the existing workflow and leaving new attempt, frozen-checkpoint and finalization writers disabled. The README describes recovery when a saved aggregate exists.

No new public command, flag, environment variable or result field is introduced. This reader is the rollout prerequisite for the integration draft #907.

Testing

Current head: d3f8cd8cf549b7cd17f87b788c5833bbd18e7312.

  • Full composed MCP suite: 70 passed / 0 failed, with SDK dependencies absent. All five required portable checks pass afterward on this exact head.
  • Deterministic lifecycle scheduling reproduces the same PID attribution failure as the duplicate CI run on e05e19cb. Moving the original PID snapshot after shutdown passes with all 116 assertion lines unchanged. That original commit had one green hosted run and one failed duplicate; neither result is discarded.
  • The original installed and detached helper each fail 2 of 4 unchanged alias cases. The corrected normal reader package passes all 4 in both layouts, all 7 bundled-plugin build tests, and the unchanged installed/standalone lifecycle checker.
  • Exactly one of 511 archive members changes: the compressed helper. All 510 other members, including every SDK dist file and the previous completion implementation, match the earlier reader. The package was built at 8bd2dc4c; its differences from this composed head are test-only. Targeted macOS helper checks pass all 4 unchanged cases in each installed/detached layout, with original archive bytes preserved. Current-head hosted CI completed 42 successful jobs / 2 skips.
  • The first composed local MCP run passed 68 cases and failed 2 because generated plugin assets were absent. Restoring the exact normal package assets produced the 70/0 result without changing source or assertions.

Previously packaged reader source dc8edae1b436e082945dd1817054f52500d0382c retains this separately recorded evidence:

  • Five required portable checks pass.
  • Relevant complete Python files: 202 passed.
  • Original installed SDK and physically standalone plugin lifecycle: passed on Linux and macOS.
  • Packaged completion compatibility and ownership: 17 cases passed in each layout on both Linux and macOS, using actual packaged workbench child processes. All installed and detached file hashes match the original archive afterward.
  • Independent source review verifies future-version rejection, supported legacy replay, sealed process-loss recovery and unchanged read APIs. The final reader-to-writer delta reconstructs the exact integration tree.
  • The unchanged original Mac source probe passes on runtime parent b45b980b; dc8edae1 changes only reader documentation. Final original Mac package checks and all packaged completion guards pass.
  • The original reader CI reproduced a test-only dependency-resolution failure with an MCP-only install. The one-line existing nodePaths correction preserves all assertions: 3 settings cases and full MCP 70/0 pass, with SDK dependencies absent. Required portable checks pass on committed e05e19cb; its first hosted run passed; the later duplicate and PID attribution correction are described above.

The original failed parent cases remain recorded. Earlier broader SDK/platform and native follow-up evidence belongs to its recorded source; it is not relabeled as execution of this reader. Comparative scans remain incomplete. One earlier local macOS full-MCP startup timeout and two strict native arrival assertions remain unresolved. Existing tolerated dependency-audit failures remain explicit.

Risk and rollout

Publish this reader as an available rollback release before enabling any new durable writers, including writers affecting historical workflows. Defaulting new scans to the old workflow alone does not provide this ordering guarantee.

This cumulative reader includes shared execution and result repairs also reviewed separately in #900, #905, #916, #917 and #920. Coordinate those prerequisites and the additional writer changes in #907 before landing. Existing open migration changes require coordinated numbering; this draft does not authorize overwriting an already published migration. Missing historical settings and usage remain unknown.

The reader and writer remain separate, unmerged drafts. Current-head hosted CI is green. Coordinated rollout and the remaining evaluation work are still required before release.

Public disclosure review

  • No customer, partner, prospect, or user identities, data, or identifying details are included.
  • No credentials, personal data, private source, scan findings, or nonpublic links or tickets are included.
  • I reviewed the branch name, title, description, commits, changes, comments, logs, screenshots, attachments, and links for public disclosure.

@github-actions github-actions Bot added the enhancement New feature or request label Sep 12, 2026
}


_CRASH_STOPPED_PUBLICATION = """
from typing import Any

import pytest
import workbench_test_support
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant