Skip to content

Compile typed finite Targets into Program Sessions - #451

Closed
lemone112 wants to merge 1 commit into
agent/pair-taxonomy-hard-deletefrom
agent/f1-finite-target-program
Closed

Compile typed finite Targets into Program Sessions#451
lemone112 wants to merge 1 commit into
agent/pair-taxonomy-hard-deletefrom
agent/f1-finite-target-program

Conversation

@lemone112

@lemone112 lemone112 commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Stack

Draft stacked on #450. Review this Core slice only after #450.

Exact base: e84d07ef1c0d7d8b897fd50185fbd32dae14f41b.
Exact head: f832a534e246b56cab27add1cc3b1543d24f0c7a.

This is the F1 Core slice for #419, not yet the terminal Core → WASM → controller cut.

What changed

  • Replaces the authored Program colour-input/finite-target split with typed Source, Target, and Paint algebra. Sources are immutable data; fixed or finite Targets own solver freedom; Paint references Targets only.
  • Requires an explicit, complete total order over every state in the finite product domain. Core never derives selection policy from opaque IDs, candidate bytes, or declaration order.
  • Rejects duplicate IDs, empty/missing domains, duplicate physical candidate signals, malformed/incomplete joint states, unassessed outputs, unconstrained finite Targets, and disconnected finite Target components with typed compile errors.
  • Prebinds canonical colour-input slots so repeated candidate application performs no ID lookup and no allocation.
  • Evaluates every declared physical observation case for every candidate. Search writes no report cells; the selected state is applied again and receives a fresh full terminal recheck before commit.
  • Emits either a verified output/report or a full exhaustive ProgramConflictV1; conflicts contain no outputs and record the exact considered-state count and case × constraint matrix.
  • Preflights checked case × constraint × state cardinality and reserves selected cells, exhaustive conflict cells, and outputs before the first compositor/evaluator call. Successful certificates do not retain worst-case conflict capacity.
  • Builds one canonical dependency index and reuses bounded scratch storage for hard + report-only assessment cones.

The delta is 2,970 additions / 195 deletions across 10 paths.

Hard boundary

There is no Pair/UI role taxonomy, compatibility adapter, legacy parser, synthetic ID policy, arbitrary resource cap, packed WASM wire, controller code, or P3 work in this commit. Added-line leakage search is zero for Pair|Glow|Material|Ladder|RoleRecipe|NamedRoleTable|program_wire|program-controller|DisplayP3.

This slice intentionally does not claim terminal #419 completion. Mixed evaluator-family dispatch, generation-bound weak Session ownership/expiry, packed Core → WASM transport, atomic controller integration, and deletion of the remaining pre-existing recipe facade are subsequent stacked cuts.

constraints/exact.rs and constraints/wcag22.rs remain byte-identical to #450.

Validation

  • cargo test -p labcolors-core --lib --offline: 716 passed, 0 failed, 6 ignored (722 total).
  • cargo clippy -p labcolors-core --all-targets --offline -- -D warnings: passed.
  • Joint preflight failure injection: 3/3 fallible reservations return typed ResourceExhausted before any evaluator call and retain Waiting.
  • Fixed/no-joint preflight failure injection: 2/2 with the same fail-before-work guarantee.
  • Program-level non-order-preserving alpha-renaming of SourceId, TargetId, and TargetCandidateId: passed with one rejected state before the same selected physical state/evidence.
  • Independent point-support verifier: passed with 43 negative controls.
  • Source-binding tests: 5/5 passed.
  • Exact Rust 1.96 formatter diff from the first remote attempt was applied byte-for-byte and independently audited; it changes no semantics.
  • Source closure: 6b81edc2d56bdca78a4d7c579c79e2791dc59e9bf2626fd22ddc7aa164dfa5c8.
  • Proof payload: 16f1efb88a9224b4507264f2a560eaa6b174a24020a208266c07a2f47309312a.
  • Proof artifact bytes: 527f7b943baf8cdc627e700134dd75c2ca4211aa18c881227dccd3ad2867d294.
  • Verifier bytes: e70ce1fadbb64b044772d9f18f7c16ee76cf6aa33b1d1c0e642e0437fd5ed4a3.
  • Full local release wrapper reaches git rev-parse HEAD and cannot continue because this scratch checkout intentionally has no usable Git metadata; exact-head remote CI is the authoritative full wrapper gate.
  • Exact-head remote CI run 29959150768: success — Rust 1.96 fmt/clippy, MSRV, full tests and proof gates, docs, audit, WASM/headless/zero-headroom size, npm artifact, and Node 22 consumer floor.
  • Native conformance run 29959150566: success on Linux Swift 6.1.3; macOS arm64 is policy-skipped because paid runners are disabled.
  • CodeRabbit status check: success; review was skipped on this draft, with no submitted reviews or inline threads.

Refs #419.

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: ac322225-6776-4bd6-bbc3-f69188b4dfb0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/f1-finite-target-program

Comment @coderabbitai help to get the list of available commands.

@lemone112

Copy link
Copy Markdown
Collaborator Author

Superseded by the reviewed cumulative squash merge #465 (24fd1f4). The lower stacked branch was intentionally not merged on its own because its intermediate head was not the safe terminal public boundary.

@lemone112 lemone112 closed this Jul 26, 2026
@lemone112
lemone112 deleted the agent/f1-finite-target-program branch July 27, 2026 00:13
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