Skip to content

Partial IR-550: typed unsupported direct requests - #372

Merged
kreneskyp merged 8 commits into
mainfrom
codex/ir-550-typed-unsupported
Oct 12, 2026
Merged

kreneskyp merged 8 commits into
mainfrom
codex/ir-550-typed-unsupported

Conversation

@kreneskyp

@kreneskyp kreneskyp commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Partial IR-550 implementation for typed refusals of direct unsupported scalar, equality, and function requests. This PR does not close IR-550.

Covered behavior

  • Direct scalar formula and case requests retain claim identity and return typed Unsupported.
  • A direct equality case request returns typed Unsupported, retains request identity, emits no code for that item, and leaves a healthy equality sibling byte-identical.
  • Direct function formula and case call-node requests retain call identity and return typed Unsupported.
  • A distinct call to a declared unsupported formula body retains call identity and reports the body's refusal; a healthy sibling function still generates.
  • The shared classifier recognizes temporal formula/fairness and expression case roots. Other FR-330 package refusals retain their exact PackageAccounting record and source occurrences. TC-029 node40 guards this boundary.
  • Temporal-clause refusal behavior and refused-item sibling isolation remain covered.

Known gap

No authentic admitted temporal/fairness package or direct AC-33 fairness test exists yet. The typed reader candidate was rejected with InvalidSemanticGraph at the formula node ID, including after correcting formula/fairness occurrence roles to expression. The exact candidate/refusal and FR-322 preimage hypothesis are recorded in /tmp/ir550-fairness-reader-refusal.txt. IR-774 owns reader admission. SR-8663 FND-003 is deferred for this explicitly partial slice, not resolved; IR-550 remains Coding/open until IR-774 supplies the admitted package and the direct fairness test is added.

Verification

  • Focused checks on code head 4b3be14: TC-029 node40 accounting regression, equality direct-case sibling, scalar direct formula, and function direct formula/case passed 1/1 each.
  • First full make -k ci on a8dd9cd: PASS; 247 unit, 507 integration, one doctest; 27 Kani-only tests ignored by ordinary CI. All configured stages passed. Log: /tmp/ir550-prepr-ci-a8dd9cd.log.
  • First make kani-gate on a8dd9cd: PASS, 27/27, Kani 0.68.0, clean tree. Log: /tmp/ir550-prepr-kani-a8dd9cd.log.
  • make kani-scope: required sources are src/oracle/equality/mod.rs, src/oracle/function/mod.rs, src/oracle/mod.rs, and src/oracle/scalar/mod.rs.
  • Quire matrix: FR-018-AC-32 tagged; FR-021-AC-33 tagged by declared-body-root and direct formula/case tests. The fairness subcase remains uncovered.
  • make spec, formatting, and diff checks passed on the reviewed source changes.
  • First full CI attempt on d3026cf exposed the node40 accounting regression; fixed in 4b3be14 and confirmed by the focused control above.

Review and gate state

Independent code and gap reviews found no new concern in the fix. FND-003 is explicitly deferred to IR-774 for this partial slice, while IR-550 stays open. The first CI/Kani pair passed on a8dd9cd. The second full CI/Kani pair passed on the final PR head 2ffa2cd: make -k ci exit 0 (247 unit, 507 integration, one doctest; 27 expected Kani-only ignores; all configured stages green), log /tmp/ir550-premerge-ci-2ffa2cd.log; make kani-gate exit 0 (27/27, Kani 0.68.0), log /tmp/ir550-premerge-kani-2ffa2cd.log. The tree remained clean.

This draft was opened before the first full CI/Kani pair; that cadence deviation was reported to the lane lead.

Refs IR-550; IR-774

@kreneskyp
kreneskyp marked this pull request as ready for review October 12, 2026 12:46
@kreneskyp
kreneskyp merged commit 824c56c into main Oct 12, 2026
3 checks passed
@kreneskyp
kreneskyp deleted the codex/ir-550-typed-unsupported branch October 12, 2026 12:47
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