Skip to content

P02: complete RunManifestV1 selection and diagnostic contracts - #28

Closed
ajhcs wants to merge 4 commits into
mainfrom
codex/r1-p02-final-reconstruct-lead-20260822
Closed

P02: complete RunManifestV1 selection and diagnostic contracts#28
ajhcs wants to merge 4 commits into
mainfrom
codex/r1-p02-final-reconstruct-lead-20260822

Conversation

@ajhcs

@ajhcs ajhcs commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Scope

Completes the bounded P02 manifest and selection contract repair for the 3.3.0 R1 candidate.

  • authorizes explicitly requested diagnostic partial candidates without making them release-ready
  • binds optional root profiles and omittable lane execution deterministically
  • aggregates unresolved selection and fails closed before prompt compilation
  • normalizes absent and false diagnostic identity while preserving true as distinct
  • hardens direct-JavaScript, proxy, accessor, and hostile selection inputs

Commit and size bounds

  • exact base: d88a398
  • exact head: 9a37eba
  • four linear commits
  • 234 production additions, approximately 123 added logical code lines after comments and blanks; within the 150 to 450 logical production/tool envelope when accounting for the full repaired P02 unit

Acceptance evidence

Independent Ox Alpha exact-head review: ACCEPT.

  • diagnostic tests: 9 of 9
  • selection tests: 20 of 20
  • identity, envelope, and golden tests: 39 of 39
  • complete product suite: 392 of 392
  • Cursor control suite: 122 of 122
  • release validation: pass
  • first-release contract: pass
  • git diff check: pass

Verified invariants include absent versus false diagnostic normalization, true diagnostic distinction, root profiles resolving no assignments, omitted execution remaining unresolved, failure before compilation, one shared selection grammar, and hostile direct-JavaScript handling.

Integration policy

This PR intentionally remains unmerged. Its exact reviewed commits are composed only into the isolated combined candidate. Default-branch integration is permitted after the functional Gate A passes and final Codex review approves the exact candidate.

ajhcs added 4 commits August 22, 2026 12:58
Add return_contract.allow_diagnostic_partial_candidate, the sole optional
RunManifestV1 return-contract key: an exact primitive boolean with no
aliases, defaults, or coercion. Absent and false keep complete-only
behavior; true only permits a later P35A diagnostic incomplete_candidate
and never obligates one. The submitted frozen form is preserved, so an
explicit false remains an own key and carries its own raw RunManifestV1
digest distinct from absence. The flag is resolution-inert: it never
enters assignment prompts, ChildEnvelopeV1 bytes, or child-envelope
digests; P35A/P36 alone own any later candidate status or disposition.
P05 reachability prerequisite, bounded to P02 validation only. A run may
bind one optional root profile NAME (profile) validated with the exact
already-owned assignment execution.profile grammar; no P04 catalog import
or lookup happens here. Assignment execution may now be truly absent: the
lane becomes selection_resolution_required for the later P05 resolver,
the same classification a named-profile lane already carries, while every
present hostile form (null, {}, own undefined, partial pairs, unknown
grammars) keeps failing closed exactly as before and explicit
provider/model lanes stay dispatch-resolved. The frozen envelope summary
gains bound_root_profile plus selection_resolution_required(_assignment_
ids); legacy profile fields keep their semantics. Parsing still returns
detached deeply frozen graphs with submitted presence preserved, so
existing manifests and all canonical/run/child digests remain
byte-identical. No role/access/duration/starting_ref/repository field
becomes optional.
Compiling a child envelope for a lane whose execution was omitted now
raises the typed RunContractV1Error selection_resolution_required at
assignments[<i>].execution before any routing field is read. The compiler
guesses no provider/model, renders no unresolved worker prompt, and
emits no partial batch; named-profile and explicit lanes keep compiling
byte-identically, and identity digests stay computable for runs the
compiler correctly refuses to render.
@ajhcs

ajhcs commented Aug 25, 2026

Copy link
Copy Markdown
Owner Author

Closing as rejected and superseded evidence. Exact head 9a37eba62dd35a6b54d96e11105ea9deadec0a10 is outside the accepted R1 ancestry and must never merge. The accepted replacement foundation is 9400d0ce9c87bdf709c793e36b30af8608d6fdd4 (tree 5f7f09a279350d394bb208d13691eeb5ca2a2b5a). The branch is retained as historical evidence; no acceptance or release authority transfers to it.

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