Skip to content

cr150 L17a: selected latches and anchor E - #432

Merged
luisleo526 merged 38 commits into
core/cr150-p00-contractsfrom
core/cr150-l17a
Oct 19, 2026
Merged

luisleo526 merged 38 commits into
core/cr150-p00-contractsfrom
core/cr150-l17a

Conversation

@luisleo526

Copy link
Copy Markdown
Collaborator

CR-150 lane L17A, per DESIGN rev 6 (the section 3.6 anchor E record) and its PARALLEL-PLAN row; the lane's REPORT.md has the file:line detail. It's built on L6b-1 (#431). The base is the integration branch core/cr150-p00-contracts.

Lab: rj-20261018t204704-c09d52 green on every stage except preflight doc-reverts, the known L6b-1-lineage class. The squash message must name 4c78f39. The sink format of DESIGN 3.7 version 1 is fixed. The gating read by CORE-TOP comes before merge.

🤖 Generated with Claude Code

Add the P00-only runtime witness, 1,000,000 checked-in Python repr samples and all 2,098 binary64 powers of two, UTF-8 cases, writer artifacts and strict-reader refusals. Expected red on a6abb14: undefined report_sink formatting and LineWriter implementations; pf_sink is also absent. Compilation and execution are reserved for CORE-TOP lab per the lane brief; no observed red diagnostic is claimed.
Implement the FIPS 180-4 block schedule, streaming updates, copy-on-finalize digest and lowercase hex encoding. Extend the already-red format unit with NIST vectors and every two-part split of the short messages. Lab compilation and execution remain pending per the executor brief.
Add Python repr-compatible binary64 rendering, byte-validating UTF-8 escaping, the seven fixed descriptors, E/T serialization and SHA-counted trailers. Buffer checked writes in 64 KiB and latch validation or I/O failure before publication. Keep P00 declarations unchanged. S2 uses internal WriterError and cached repeated finalization, with runtime error-code mapping reserved for L6b-1. No build or tests were run on this machine.
Validate fixed ordered v1 descriptors, typed records, exact Python f64 lexemes, bounded UTF-8 JSON lines and the final counts/SHA receipt. Yield immutable typed rows in one pass and expose completion only after EOF. Extend the format witness with an exact 1 MiB boundary, zero/nonzero descriptor shapes, finalization lifecycle and malformed-stream cases. Execution is deferred to CORE-TOP lab as required.
Keep Python assertions enabled regardless of PYTHONOPTIMIZE, suppress bytecode artifacts and retry an interrupted child wait. This only strengthens the pending lab witness; no build or test was executed here.
Apply CORE-TOP wave1 and the Fable gating read: add report_sink_writer.cpp and sha256.cpp to PINEFORGE_KERNEL_SOURCES, one per line, and append the format unit inventory/registration after the pinned test lines.

Mechanically re-anchor only shifted top-level CMake citations. Preserve the prose and claims recorded by 47184e5 and 868aa65; no sentence is reworded. Keep all C++/Python bodies, P00 declarations, fixture evidence and other lines unchanged.

No configuration, compilation, tests or guards run in this fix round per the executor brief. Commit hooks are disabled for this invocation to honor that instruction; lab proof remains with CORE-TOP.
No local build or execution, per CORE-TOP. Generated run-failure enum and catalog-diff companions remain an explicit scope handoff; this head is not a verification claim.
Merge 0faaf06 without rebasing. Keep the L17A capture state, the L15a view API, and all L6a/L6b-1/L17A/L15a/L8a test registrations after the private-fixture line pins. Reconcile documentation anchors with the merged CMake and consumer source; retain the 83-symbol report-sink runtime inventory.

Doc-revert attribution: explicitly retain the replacement in README.md and docs/pages/index.md of the sentence introduced by 4c78f39: "The counts below include recorded outputs and describe the released 1.5.0 API." The current count paragraphs describe the current API including the report sink. This attribution is explicit; no history or guard is rewritten.
Derive the index inventory from scripts/check_c_abi_runtime.py: EXPECTED_RUNTIME_IMPLEMENTATIONS is 83 and EXPECTED_NATIVE_C_API_DECLARATIONS/IMPLEMENTATIONS is 43. Describe the two disjoint inventories separately instead of calling their combined 126 symbols runtime symbols. Keep per-strategy exports separate.

Doc-revert attribution for README.md and docs/pages/index.md: explicitly name the replacement of the sentence introduced by 4c78f39, "The counts below include recorded outputs and describe the released 1.5.0 API." The replacement in 102db33 deliberately describes the current API, including the report sink. This commit records that attribution without rewriting the inherited commit or changing the guard.
Merge refs/heads/pf/cr150-p00-contracts at 0faaf06 without rewriting lane history. Keep both sides of the appended CMake registrations and resolve doc citations against the merged CMake and consumer source; retain the sink export inventory.

Explicit acknowledgement of the 4c78f39 sentence replacement in 102db33: README.md and docs/pages/index.md changed "The counts below include recorded outputs and describe the released 1.5.0 API." to current-API wording because CR-150 adds the report sink. The old sentence replacement was unnamed in that historical commit; record its intent here without changing that commit or the doc-revert guard.
The old negative fixture issued Pine strategy_entry calls before the selected window. Pine captures those calls as pre-roll intents, so the setup was valid and produced a complete receipt. Preserve every incomplete-receipt, empty-digest, failure-status and no-trailer assertion; submit a real native-host carry-in instead, require the exact selected capture failure, add the valid Pine pre-roll as a sink-off/on positive control, and print the failing case and error when a receipt contradicts the contract. No production receipt behavior or check is changed.

Separate the documented 83 compiled-strategy runtime symbols from the 43 native-host symbols instead of labelling their sum as the former inventory. This explicitly replaces that inventory sentence from 102db33.

Named documentation replacement acknowledgement for 4c78f39 and 102db33: README.md and docs/pages/index.md replaced "The counts below include recorded outputs and describe the released 1.5.0 API." with a current-API sentence because CR-150 adds the report sink. The replacement is intentional and is named here without rewriting the old commit. The unmodified per-commit doc-reverts checker still requires a CORE-TOP ruling on its existing retrospective --message-from audit input for the old 102db33 omission; no checker or CI invocation is weakened or changed.
CR150-CX fix round 3: the requested full ref resolves to 23834ff, beyond 0faaf06. Preserve the L6B1 sink changes and API inventories alongside the incoming L1, L6a and L16 work. Carry the conflicting documentation citations to the merged source, retain the pinned CMake line 3267, and register the shared format test once while keeping every test from both parents. No build, test, generator or guard was run locally.
Restore "The counts below include recorded outputs and describe the released 1.5.0 API." verbatim in README.md and docs/pages/index.md. Commit 102db33 removed that sentence from 4c78f39 without naming it. This new commit explicitly replaces its alternative sentence, "The counts below describe the current API, including recorded outputs and the report sink.", and preserves the numeric inventories. CR150-CX fix round 3; no history rewrite and no local build, test, generator or guard execution.
The requested ref now resolves to 52b414b, including the requested 075648f carry-in fixture repair and integration 23834ff. Preserve both parents, the L17A test registration, the shared format registration once, and the incoming merged-code citations; refresh the spec digest range for the retained L17A helper block. No rebase or local build, test, generator or guard run.

Retain the explicit inherited documentation attribution for 4c78f39 and 102db33: README.md and docs/pages/index.md intentionally replaced "The counts below include recorded outputs and describe the released 1.5.0 API." with current-API/report-sink wording. The historical doc-reverts issue remains owned by the L6b-1 lineage; no guard or history is rewritten.
The L17A lab row stopped at check 18 because the fixture queried broker_state_hash after run returned and the selected generation had sealed. Keep hash equality by capturing both terminal hashes in the existing presentation callback before the seal. Require actual capture and add exact post-seal SelectedWindowQueryAfterSeal controls for both engines. Preserve all selected E/anchor, metric, receipt, digest, repetition and refusal assertions; do not relax the production fence.

Also make the HostRecorded trade-precedence setup produce the trade it claims to test: submit a real Flatten before T, require acceptance, and retain the exact carry-in-trade refusal over the malformed account/count facts. HostRecorded deliberately creates no open-position range-end row. No local build, compiler, test, generator or guard execution.
The requested full ref resolves to 9464717, including L8b. Preserve the report-sink state and the protected trade-percent prefix, both reasoned hash waivers, and both sets of test registrations. Keep the shared format target registered once and append the prefix unit after the pinned CMake region. Existing cited header lines retain their coordinates; the new prefix declarations are appended at the class tail. No build, test, generator or guard ran locally; no rebase or history rewrite.
CR150-CX fix round 4: the requested full ref now resolves to 9464717 and imports the L8b percentage-prefix slice. Keep both the report-sink and percentage-prefix state and their existing hash waivers. Preserve all test registrations after pinned line 3267 and register the shared format test once. No builds, tests, generators or guards ran on this machine.
The lab showed five cascading L17A failures because the observer-faulted host was reconfigured as if its failure were recoverable. Keep that host failed: require Failed/WrongPhase/None on reconfiguration, an empty report and no completed sink or trailer. Exercise the successful higher-generation reuse on a separate host that first completes a nonempty selected run, then reuse that same host for M=0.

Preserve the Applied setup checks, Completed checks, count_e == 1 and completed-receipt assertions on the legal reuse path. Add the exact new-T anchor value and a four-point prior generation so stale points and counts cannot masquerade as reuse. DESIGN 3.6 anchor, window and refusal assertions remain unchanged; no production lifecycle, guard or selected capture code is altered. No local build, test, generator or verification command ran.
CarryInFixture leaves its accepted entry open. NativeRunSpec defaults report_open_position_at_end to false, so selected capture has no trade row and reaches the open-lot refusal instead of the expected trade-row refusal. Opt this fixture into the existing KernelRecorded range-end row, preserving the exact engine_invariant and trade-message assertions and all incomplete-receipt/no-trailer checks. Print the actual selected error code and text before those assertions. Red evidence is the release and debug CTest abort at line 454 in lab rj-20261018t193610-327bb6. No local build, test, generator or guard execution.
Keep the integration CMake scaffold from 5be8c54. Copy tests/cr150.d/core-cr150-l6b1.cmake and its core-cr150-l6b1 fenced module block byte for byte from b595ce5 on core/cr150-l6b1, using the explicitly allowed temporary-copy exception. Move the shared format pair out of the root to avoid duplicate registration.

Preserve the accepted L17A if(UNIX) block byte for byte in the required l17a footer fence after the inherited module block. Dropping UNIX would create a POSIX-only test on non-UNIX configurations, so use the brief conditional-block exception and do not create an empty lane file. Preserve every registration, platform condition, target property and accepted source byte.

OPEN for CORE-TOP: check_cr150_cmake_d.py at the supplied integration revision still requires the include loop to be last, conflicting with the binding 09:36 fenced-footer ruling. Keep the checker unchanged. No build, test, generator, repository Python or verification guard was run locally.
Combine L4's ScriptBucketCursor, subscription lookahead and borrowed batch
input release with the accepted L17A selected report sink. Preserve both
independent tail additions and refresh the merged consumer citations.
Import CMKD2 and the integration lane implementations without local edits.

Name the integration prose replaced by the inherited 83-symbol inventory:
docs/design/native-feature-parity.md OT6: "disjoint inventory beside the 80
runtime exports (and eight generated per-strategy exports)";
row 8: "80 runtime PF_API symbols: native configure, the 12-symbol stream
family, pending-order views, broker-state hash, security feeds, FX curve,
reports" and "The 80 compiled-strategy runtime symbols in c_abi.cpp are
distinct from the native C host API in native_c_host.cpp";
docs/adr/0001-kernel-adapter-boundary.md: "src/c_abi.cpp implements the 80
codegen-facing runtime PF_API symbols that scripts/check_c_abi_runtime.py
pins by name". These become 83, matching the inherited checker inventory.
No row or behavior is dropped. Retain the integration C-ABI content pins;
their source ranges were read and their SHA-256 values confirmed statically.

Local builds, tests, generators, repository Python and guards were not run;
the complete lab proof remains required. CMake relocation follows separately.
Create tests/cr150.d/core-cr150-l17a.cmake and preserve the original UNIX
condition around the inventory append and unit-test registration. Remove
that pair from the root footer so the test remains registered exactly once.
Normalize the EOF fence to the full lane-file stem; no non-plain target or
test settings remain, so its comments point to the lane file.

Keep the integration scaffold and the explicitly authorized L6b-1 copy.
The L6b-1 lane file and module fence are byte-identical to da0d434, its
current M14 head, and remain identical to the original b595ce5 copy.
CMKD2, its controls and all other lanes' registrations are unchanged.

Only static Git/source comparisons were used. Local builds, tests,
generators, repository Python and guards were not run; lab proof is pending.
Adopt L6b-1's accepted squash on integration and retain only one canonical
core-cr150-l6b1 CMake fence. Before resolving, the carried L6b-1 block was
compared byte for byte with integration and found identical. Keep that
integration block untouched, followed by L17A's existing comment-only fence;
the UNIX-only plain registration remains unchanged in its own lane file.

Take integration's native-feature-parity OT6 text and native-engine rich-run
citation through line 10611. The consumer auto-merge is byte-identical to
the accepted L17A source, retaining both L6b-1's sink lifecycle and L17A's
selected capture/anchor/read behavior. No integration documentation sentence
is removed; the remaining digest re-anchor reflects the existing L17A tail.

No behavior, test, checker, generated file or schema was changed locally.
No local build, test, generator, repository Python or guard ran. The lab's
preflight, Release, Debug and docs proof remains required on this tree.
@luisleo526
luisleo526 marked this pull request as ready for review October 19, 2026 08:55
@luisleo526
luisleo526 merged commit 4d168c0 into core/cr150-p00-contracts Oct 19, 2026
1 check passed
luisleo526 added a commit that referenced this pull request Oct 19, 2026
…sign/cr150-contracts.md resolved (both lanes' rows kept; native_run_spec_digest coordinates from L17a's side); code unchanged

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
luisleo526 added a commit that referenced this pull request Oct 19, 2026
CR-150 BATCH2: L19e + L19h + L15b (proof 0c9fa8fc9 on 4d168c0: preflight + docs; full code proof rj-20261019t075150-df09fd on 39a718b).

Lab proof commit, never pushed. Its tree equals the batch merge commit; its single parent is the integration head 4d168c0 (L17a #432 merged), as the GitHub squash will write it. The batch's code was proved with all four steps as lab job rj-20261019t075150-df09fd on 39a718b (squash proof 0b79b501d); this round only merges L17a and resolves docs/design/cr150-contracts.md (both lanes' rows kept, native_run_spec_digest coordinates from L17a's side), so this proof runs preflight and docs only.

Lanes in this squash (each lane's own code is unchanged; shared documentation pages were resolved once; three scripts combine both sides: scripts/broker_state_hash_waivers.txt, scripts/check_c_abi_runtime.py, scripts/test_ci_verify.py, public C ABI declarations 104 and runtime implementations 84):
- L19e: physical admission-journal retirement, test_admission_journal_window; removes the lane-authored cadence assertion under CORE-TOP's F0a ruling of 09:48.
- L19h: exit_cancel_bracket never-issued incarnation for non-working members; transcript pins re-harvested under CORE-TOP's fixture authority of 07:49 (lab job rj-20261019t010941-4bc9d7).
- L15b: native bar views.

Documentation sentences this squash removes on purpose, named for check_doc_reverts:
- docs/pages/native-engine.md: the sentence "No epoch bump or reordering occurs: the borrowed symbol-feed setter is an additive compiled-strategy runtime symbol" introduced by 0d8b203 is replaced by the L15b wording.
- docs/pages/native-engine.md: the sentence "No new virtual, no epoch bump, and nothing about the established C ABI moves: the compiled-strategy runtime symbols and their counts are untouched" introduced by 70ddaa3 is replaced by the L15b wording.
- README.md and docs/pages/index.md: the sentence "The counts below include recorded outputs and describe the released 1.5.0 API." introduced by 4c78f39 stays replaced by the released-1.6 counts wording that the integration side carries.
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