Repository navigation
T-16-B SL-3229: openapi.dag WireContractFacts composition with coordination.dag — bind OpenApiOperationWireContractFacts to coordination WireContract + ExchangePattern authority (substrate, no emit) - #3869
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
… Http fail-closed projection, SG-0 pairing - Restore v4_extdeps_coordination_dag_smoke_test.rs (T-4.8 ratchet; was blanked). - Remove wire_contract_*_from_obligation steps:0 coercion from coordination.dag. - Route openapi settlement/consistency through Http obligation with fail-closed Rejected on bounded required arms; Outcome<WireContractFacts> composition. - Add EXPECTED_HAND_AUTHORED_TEST + INVARIANTS §P5 row for openapi smoke test. Co-authored-by: Cursor <cursoragent@cursor.com>
CI sg0-net-shrink gate requires column-0 SG-0 pairing for the openapi smoke census line; mirror coordination.dag append pattern (P5 (c)). Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
f7a99b03· Trigger:schedule - Thinking:
164s wall
BLOCKING (1)
Root Cause
src/v4/extdeps/formats/openapi.dagOpenAPI derives facts from coordination_effect_obligation(Http) but leaves bind.effect supplied by the caller → make the constructor take BindRef and call openapi_http_coordination_bind, or introduce an Http-specific bind carrier so the effect has one authority.
ROADMAP — Verified
- T-PB-B: The new hand-authored OpenAPI smoke test has the same-PR SG-0 census entry, INVARIANTS_OPS receipt, and PR-body append pairing.
|
|
||
| fn openapi_operation_wire_contract( | ||
| facts: OpenApiOperationWireContractFacts, | ||
| bind: CoordinationBind |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Review metadata
1. Story of the diffThis PR finishes the OpenAPI operation wire-contract composition that had been left gated in 2. Invariant categories
2.5. Top-down PM intent reviewCompliant. The PM-level intent here is to make OpenAPI operation wire-contract facts compose with the coordination substrate rather than carry a local exchange shortcut. The diff does that directly: it removes the local 3. VerdictAPPROVE I found no blocking invariant violations. The substrate change moves authority in the right direction—coordination owns exchange/settlement/consistency facts, OpenAPI projects Http-specific admissibility fail-closed—and the temporary hand-authored Rust ratchet is properly bounded and paired with SG-0 dissolution receipts. |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
98627250· Trigger:schedule - Thinking:
209s wall
BLOCKING (1)
Root Cause
src/v4/extdeps/formats/openapi.dagOpenAPI exposes the post-projection coordination facts as the generic carrier instead of an Http-specific carrier or constructor-only Outcome boundary → make the operation contract derive WireContractFacts inside the only exported constructor path, or introduce an OpenAPI/Http fact carrier with no non-Http degrees of freedom.
ROADMAP — Verified
- T-PB-B: The new hand-authored OpenAPI smoke test is paired in the diff with the SG-0 census entry, INVARIANTS_OPS receipt, and PR-body append file.
| data openapi_operation_exchange_request_reply: ExchangePattern = RequestReply | ||
|
|
||
| type OpenApiOperationWireContractFacts { | ||
| coordination: WireContractFacts, |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
35d31e17· Trigger:schedule - Thinking:
273s wall
ROADMAP — Verified
- T-PB-B: The new hand-authored OpenAPI smoke test is paired with the SG-0 census entry, INVARIANTS_OPS receipt, and PR-body append deferral citing pb_rust_tests_outside_residual_zero.
✅ The PR resolves the prior substrate authority issues and the added P5 receipt is checkable.
|
Investigated ci failure on Not a substrate/code RC on this PR.
This matches the post-#3833 wasm.dag emit regression on No further openapi.dag changes planned for this failure mode. — sent from valiant-bat-324 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
e226932d· Trigger:schedule - Thinking:
260s wall
ROADMAP — Verified
- T-PB-B / pb_rust_tests_outside_residual_zero: The new OpenAPI smoke test has the same-PR SG-0 census entry, INVARIANTS_OPS receipt, and PR-body append deferral.
✅ No blocking concerns in the changed substrate composition or its P5 receipt surface.
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
44278926· Trigger:schedule - Thinking:
254s wall
BLOCKING (1)
Root Cause
src/v4/extdeps/formats/openapi.dagOpenApiHttpWireContractFacts records only forgeable empty witness tags after the obligation check → make the coordination projection fail-closed, or carry checked guarantee facts that the final WireContract constructor must consume.
ROADMAP — Verified
- T-PB-B / pb_rust_tests_outside_residual_zero: The new OpenAPI smoke test has the same-PR SG-0 census entry, INVARIANTS_OPS receipt row, and PR-body append deferral.
| } | ||
| } | ||
|
|
||
| fn openapi_http_wire_contract_facts_to_coordination( |
There was a problem hiding this comment.
BLOCKING: openapi_http_wire_contract_facts_to_coordination returns WireContractFacts directly and hard-codes accepted settlement/consistency, so callers can bypass the Outcome checks and fabricate a successful contract when the Http obligation row requires bounded guarantees, violating INVARIANTS P3 fail-closed and P2 API-level enforcement.
|
Review metadata
1. Story of the diffThis PR closes the OpenAPI wire-contract coordination gate by replacing the previous standalone 2. Invariant categories
2.5. Top-down PM intent reviewFinding. The PR’s own receipt/brief line establishes the PM intent: OpenAPI 3. VerdictREQUEST_CHANGES. The PR is directionally correct and has the right SG-0 receipt shape, but the final OpenAPI→coordination projection still re-authors settlement and consistency facts instead of making coordination’s obligation row the single authority. Because this is substrate modeling and can admit valid-looking |
Summary
OpenApiOperationWireContractFactswithcoordination.dagWireContractFacts(operation carriescoordination: WireContractFactsplus OAS-specificadmitted_method/path_template).coordination_effect_obligation(Http).required_exchangeinstead of a parallelRequestReplydata witness; addopenapi_http_wire_contract_facts,openapi_operation_wire_contract_facts,openapi_operation_wire_contract, andopenapi_http_coordination_bindmorphisms.Test plan
cargo test -p v3-compiler v4_extdeps_openapi— parse smoke + composition field receipts (v4_extdeps_openapi_dag_smoke_test.rs)