Skip to content

Phase 2 numbers: exact int64 and IEEE doubles (#1758) - #1776

Draft
InauguralPhysicist wants to merge 341 commits into
mainfrom
phase2-numbers
Draft

InauguralPhysicist wants to merge 341 commits into
mainfrom
phase2-numbers

Conversation

@InauguralPhysicist

@InauguralPhysicist InauguralPhysicist commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Integration branch for #1758, Phase 2 numbers: an exact int64 kind beside IEEE 754 doubles, while keeping the observer and deterministic replay. This is a draft; it lands when every round is done and the #1758 Done-when holds.

The plan is docs/design/phase2-numbers.md. Two blind critics reviewed it over three design rounds. Rounds:

Landed on this branch so far:

  • The design: docs/design/phase2-numbers.md; a 1,798-site inventory checked by tools/phase2_inventory.py; tests/phase2/MAP.md, with tier-witnessed rows per round.
  • R1.1, the slot layer.
    • The SMI tag 0xFFFA and its API exist; nothing produces an SMI yet.
    • slot_is_num, SLOT_NUM_RAW and slot_from_num are renamed, and slot_is_numeric and slot_as_double are deleted, so every old reader stopped compiling until given an explicit int decision.
    • New tools: the C slot test (section [0fk]), tools/phase2_check.sh --through <round>, the int-source check, and a corpus differential against main.
    • Local results: suite 4268/4268; differential 0 diffs over 441 programs; calibration 27/27; plant 1 killed.

Related: #1763 and #1774 (float-to-int casts that silently misbehave on large values, which N5 covers); ouroboros#301 (the AOT runtime follows the renames at its EIGS_REF bump).

Closes #1758
Closes #1638

🤖 Generated with Claude Code

https://claude.ai/code/session_01KC99CmwatKssQYggkBCgwF

Comment thread tools/phase2_check.py Fixed
Comment thread tools/phase2_check.py Fixed
Comment thread tools/phase2_check.py Fixed
Comment thread tools/phase2_check.py Fixed
Comment thread tools/phase2_check.py Fixed
Comment thread tools/phase2_check.py Fixed
Comment thread tools/phase2_check.py Fixed
Comment thread tools/phase2_check.py Fixed
Comment thread tools/phase2_check.py Fixed
Comment thread tools/phase2_check.py Fixed
@codspeed

codspeed Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Merging this PR will degrade performance by 37.79%

❌ 12 regressed benchmarks
✅ 1 untouched benchmark
🆕 7 new benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
❌ bench_idxset 37.3 ms 149.4 ms -75.05%
❌ bench_dmg_shape 533.7 ms 1,528.4 ms -65.08%
❌ unobserved armed loop 211.3 ms 427.3 ms -50.54%
❌ scalar_loop 12.2 ms 19.6 ms -37.52%
❌ dmg cpu_instrs 2M cycles 1.7 s 2.7 s -36.83%
❌ bench_dmg_shape (vm-tier) 1 s 1.5 s -32.8%
❌ dmg cpu_instrs 2M cycles (vm-tier) 1.9 s 2.7 s -28.69%
❌ bench_perf 99.2 ms 126.5 ms -21.59%
❌ scalar_loop (vm-tier) 18 ms 21.8 ms -17.68%
❌ observed_loop 16.4 ms 19.2 ms -14.15%
❌ unobserved_loop 16.4 ms 19.2 ms -14.14%
❌ string_build 23.2 ms 26.8 ms -13.42%
🆕 alloc_heavy N/A 596 ms N/A
🆕 bench_buf_mix N/A 511.3 ms N/A
🆕 bench_buf_resample N/A 522.3 ms N/A
🆕 bench_pcm_codec N/A 315.6 ms N/A
🆕 conservative_observed_loop N/A 29.8 ms N/A
🆕 conservative_unobserved_loop N/A 29 ms N/A
🆕 observer gate soft keyword N/A 19.2 ms N/A

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing phase2-numbers (5400842) with main (bc50968)

Open in CodSpeed

@InauguralPhysicist

Copy link
Copy Markdown
Member Author

Open by design: the integration draft for #1758 (Phase 2 numbers). R1.1, the slot layer, is in its critic fix round. Once #1785 lands, this branch takes main and gets a full-lane dispatch (ASan, TSan, macOS). It merges only when every round is done and #1758's Done-when holds.

Comment thread tools/phase2_check.py Fixed
Comment thread src/eigenscript.h
double fl = floor(f); /* in [-2^63, 2^63): the cast is exact */
int64_t il = (int64_t)fl;
if (i != il) return i < il ? -1 : 1;
return f != fl ? -1 : 0; /* i == floor(f) < f when f has a fraction */
Comment thread src/builtins.c Fixed
Comment thread src/builtins.c Fixed
Jon and others added 19 commits November 5, 2026 21:45
Register r319-stall-window-newest, scoped to the non-finite reader:
values_head - 1 - i becomes values_head - 2 - i. Leave the amplitude
reader unchanged. Move EXPECTED_STALL, --only and hosted pins to ten.

Validation: r9-newest-plant actual rc3 (restricted success), unplanted
measured=4 failures=0; mutant four own-name nan-newest FAIL lines, each
[105, 'stalled', 'improving', False] against the exact101 pin.
stall-plants=1 killed=1 survived=0 broken=0; stall-unplanted=1 expected=10.
Only this plant ran locally; full-family/selector execution stays hosted.

Refs #1758, RULING R31-9

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
Record the newest-prefix witness beside R31-8's oldest-prefix witness.
Move current counts to ten stall plants and 68 readings. List the four
reader degrees of freedom with the prescribed rows/plants and attribute
the wrap/count-source mutations to the prior critic. Keep both periodic
100..112 bands unchanged; no extra plants or equivalent-extent row.

Validation before checkpoint: independent text inventory and git diff
--check rc0. Final bounded build/contract/identity/inventory/changelog
gates follow; runtime code and pre-registration inputs are unchanged.

Refs #1758, RULING R31-9

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
Add O3.ocfg-no-hlow in off/default/osr/trace, plus count 3/0, extra text and noninteger window witnesses. The transcript pins each exit and first stderr line. The plant adapter reads this same MAP transcript and keeps a valid four-field control.

Tests-first calibration on 3eed5ca: 4 tiers examined, 4 RED as expected, 8 records per tier, no runtime source change; base release build rc 0, 0 warnings. base-red-proof.json and row-base-red-a1.log preserve the evidence.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
Write O <stream> cfg <dh_zero> <dh_small> <window> <scale>, keeping format 10. Count whitespace-delimited fields before parsing or storing configuration; refuse every other count with the named diagnostic. Preserve four-field value refusals and require whole numeric tokens, including the integer window.

Remove h_low from observer records and state. The nonnumeric entropy readers and get_observer_thresholds use OBSERVER_H_LOW_DEFAULT. Keep the writer, reader and struct deletions atomic so no intermediate ABI can misparse a record. No predicate test changes.

Local: release rc=0, 0 warnings; clang 6 C files, 0 diagnostics; O3 row 32 cases/4 tiers green after 4/4 tiers red on 3eed5ca; trace-mt 23/23 and replay 48/48; inventory examined=2205 classified=2205 unclassified=0; old grammar calibration red 5/6 and restored 6/6.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
Register separate legacy-five, at-least-four and at-most-four count faults. Each runs its named MAP case in all four tiers with a valid-four control, then removes its assertion while retaining a visible mismatch. Pin three ocfg plants and three unplanted controls alongside the existing families; run the new plants separately at acceptance.

Advance phase2 CI to --through R3.2 and register g_obs_h_low as a deleted token. One-time token calibration: R3.1 green on that token, R3.2 red, restored green. Bash syntax check rc=0; unplanted O3 adapter examined=32 mismatches=0 failures=0 controls=4 control_failures=0. Full plant-family and selector runs remain hosted under R31-7a.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
Document the four-field v10 record, exact-count refusal before parsing/installing, and the compiled entropy constant. Keep get_observer_thresholds as three floats. Correct the stale R3.2 cutoff in the windowed-stable test comment and clarify that O3 removes h_low from the tape only.

Inventory walk: all 25 R3.2 files reviewed deliberately (details in r3-2.report.md); historical and unchanged compatibility tests retained. No program or supported embed API moves observer configuration; no synthetic writer path added. docs/TRACE.md records this reachability boundary. No cost declarations, predicate rules or preregistration changes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
Add the seven R32-1 install witnesses under the existing O3 row. Each records the prescribed flat or slow program, splices at V/B, steps s 400, prints x, and pins the exact label and rc in all four tiers. Keep all eight original cases and their expectations byte-for-byte as the prefix.

Capture a reader child crash inside its case so the MAP adapter reports a named mismatch rather than a broken harness. The runtime source is unchanged.

Local witness gate: examined=60 mismatches=0 failures=0 controls=4 control_failures=0, rc=0. All seven prescribed labels agree in all four tiers. Full family and broad gates remain hosted under R32-1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
Add the four-field 0x4 window witness without changing the original eight cases. The correct decimal reader exits 3 with its existing truncated-record refusal in every tier.

Local all-case checker rc=0: examined=64 mismatches=0 failures=0 controls=4 control_failures=0. Raw four-tier transcripts retained; the release was force-built serially with zero warnings and reproduced sha256 4b39c6ff3b7cbd3070bb18b0f026dbb6150607af4d3554c9d851a68d11480720. Runtime source remains unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
Register the two critic survivors and four individual obs_cfg_install assignment deletions, each tied to its R32-1 MAP case in all four tiers. Retain the green control and assertion-deleted twin; a reader child crash remains a named mismatch. EXPECTED_OCFG and registry pins become nine.

Calibration on saved critic binaries: m2 fails cfg-4-window-hex in four tiers; m3 fails cfg-install-window with rc 139 in four tiers, checker rc=1 without BROKEN. Unplanted full checker: examined=64 mismatches=0 failures=0 controls=4 control_failures=0. Bash syntax and JSON pins validate. The six new plants run separately from this committed archive; no family run locally.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
Replace the obsolete live-builtin-invariants claim with the reader bounds themselves. Name the seven field-install/no-record cases and the base-10 0x4 refusal in MAP and the R3.2 changelog fragment.

The R32-1 residual reader spellings and NUL handling remain untouched under #2334. Local checker rc=0, examined=64 mismatches=0; changelog check against 3eed5ca rc=0. Runtime, lib, suite runner and cost declarations remain byte-identical to 59dbc3d.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
Item 5 receipt only; source tree unchanged from the preceding text commit.
The forced serial release build reproduced sha256
4b39c6ff3b7cbd3070bb18b0f026dbb6150607af4d3554c9d851a68d11480720,
with zero warnings. Protected diff vs 59dbc3d is empty for src/, lib/,
tests/run_all_tests.sh and tests/phase2/cost_expect.txt (149 files match).
The round-1 oracle/stall/trace-mt/replay/phase2 receipts carry under R32-1.

All-case checker rc=0: examined=64 mismatches=0 failures=0 controls=4
control_failures=0. Seven install/no-record label pins and the 0x4 refusal
match in all four tiers; the original eight cases remain byte-identical.

Six new plants each ran alone and returned restricted-success rc=3:
binding, window-base, drop-dh-zero, drop-dh-small, drop-window, drop-scale.
Each has 4 own-case red lines, 4 green controls, and 4 live mismatches after
assertion deletion with 0 failures. New plants killed=6, red lines=24,
survived=0 broken=0 transverse=6. Registered ocfg count=9; family not run.
Binding child rc139 is a named case failure, not BROKEN, per R32-1.

Inventory rc=0: examined=2205 classified=2205 unclassified=0.
Changelog check 3eed5ca rc=0. No broad gates rerun locally, no source or
predicate change, no #2334 residual fix, no push or dispatch.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
R32-2 item 1: copy the supplied tiny, p1 and p2 programs and step their no-record tapes with s 400 then p x. Labels are improving, stable and moving in off/default/osr/trace. Checker rc=0: examined=76 mismatches=0 failures=0 controls=4 control_failures=0. Existing 16 cases are byte-identical. Runtime unchanged; no arm, split, decision rule or oracle-corpus edit.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
R32-2 item 2: pin thresholds 0/-1, equal thresholds, scales 0/1e301/0.001x, windows 3/65/4294967304 and accepted window 64. Every refusal pins exit 3 and its complete first stderr line; max-window acceptance pins exit 0. Checker rc=0: examined=120 mismatches=0 failures=0 controls=4 control_failures=0. Existing transcript is an unchanged prefix. Runtime unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
R32-2 item 3: copy ec_low, ec_high, es_low and es_high exactly from the supplied sweep. Run live without a tape in each MAP tier; pin converged, equilibrium, moving and stable. Checker rc=0: examined=136 mismatches=0 failures=0 controls=4 control_failures=0. All cases live in O3.ocfg-no-hlow, so the existing MAP and plant paths execute them. No runtime or oracle-corpus edits.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
R32-2 item 4: register eleven supplied exact-text mutants and their named case choices: three start defaults, positive dh_zero, max/narrow windows, scale whole-token guard, four live entropy readers. Keep green control and assertion-deleted transverse execution in all four tiers. EXPECTED_OCFG and selftest pins become 20. Syntax and argument checks rc=0; unplanted checker rc=0 examined=136 mismatches=0 failures=0 controls=4 control_failures=0. Each new plant will be run alone and its measured receipt committed as item 7; no family run.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
R32-2 item 5: audit every tape fold caller and record the test boundary at the O3 row. Stepper p/t and DAP variables/evaluate serialize folded labels; they do not evaluate live programs or read configuration between folds. Each fold resets all four defaults. tape_classify_at returns a literal label and count only. EMBED_SOURCES excludes the CLI-only tape reader; no embed fold exists. Capture/restore therefore has no observable through current clients; retain as a residual rather than inventing a path or modifying src. Record the third entropy condition as dead because both branches return stable. Executable test body unchanged; preceding 136-case control stands.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
R32-2 item 6: MAP witnesses and the R3.2 fragment name the start-state, refusal/acceptance and live entropy cases. Runtime, arm, split, decision rule and oracle corpus unchanged. Report deviation: the round-1 oracle floor did not exercise the entropy threshold; ec_low, ec_high, es_low and es_high now carry that claim. The earlier oracle receipt is retained only within its measured scope.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
Item 7 receipt only; tree unchanged from the preceding text commit.
Forced serial make -B build rc=0, zero warnings, exact binary SHA256
4b39c6ff3b7cbd3070bb18b0f026dbb6150607af4d3554c9d851a68d11480720.
Protected diff vs a4decc0 empty: src/, lib/, tests/run_all_tests.sh and
tests/phase2/cost_expect.txt; all 149 files match. Earlier oracle, stall,
trace-mt, replay and phase2_check receipts carry under R32-2.

Checker rc=0: examined=136 mismatches=0 failures=0 controls=4
control_failures=0. All 18 new cases match in off/default/osr/trace:
three no-record start labels, eleven range/token refusal/acceptance cases,
four live string entropy labels. Original 16 cases/32 lines unchanged;
the .out diff only adds 36 lines. No oracle-corpus or decision-rule edit.

Eleven new plants, each alone: rc=3 restricted success, four own-case red
lines, green unplanted controls and assertion-deleted twins. New plants
killed=11 survived=0 broken=0 transverse=11, named red lines=44;
ocfg registrations=20. Full family not run. Each twin retains four live
mismatches and zero failures, with four independent controls green.

Inventory rc=0: examined=2205 classified=2205 unclassified=0.
Changelog check 3eed5ca rc=0. Broad gates left hosted (lanes=all + phase2).
The oracle floor does not exercise the entropy threshold; ec_low/ec_high
and es_low/es_high carry that claim. Capture/restore has no observable
through existing CLI/DAP clients; no embed fold exists. The third entropy
condition is dead. Both residuals and #2334 remain unchanged.
Nothing pushed or dispatched.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
…1758)

The four live string-entropy cases of O3.ocfg-no-hlow unset EIGS_TRACE,
so their trace tier repeated the default tier. They now inherit it: the
trace tier records the run, and its leaf differential covers the entropy
readers. Expected output is unchanged (136 cases, 0 mismatches); the four
entropy-threshold mutants are red on their own case with and without
recording.

Orchestrator fix-up on Sol's round 3 (RULING R32-2 item 3).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
InauguralPhysicist and others added 9 commits November 6, 2026 05:21
…1758)

RULING R32-3. A mechanical sweep (universalmutator, 941 mutants over the
executable lines R3.2 wrote or edited) left 70 distinct surviving
binaries at 108306d. Twenty new cases in O3.ocfg-no-hlow tell 35 of
them, and the third critic's four, from the head:

- whole-token fields: junk after dh_zero and dh_small, a `.5` window,
  a text scale, a byte above 0x7f after the scale;
- dh_small 0 refused as a threshold; a window of -4294967292 refused,
  not narrowed to 4;
- separators: runs of spaces, a trailing space, a vertical tab;
- only the exact keyword `cfg` installs (cfa, cfz, cfgx, cfg + high
  byte install nothing; `O win` still applies);
- the entropy constant bracketed between 0.09896 and 0.100001 for both
  readers, and the third reader's partial-window label.

The remaining 35 are equivalent by argument (ruling). 54 cases in four
tiers: examined=216 mismatches=0. The 34 earlier cases' lines are
unchanged. src/ is not touched.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
The third critic's survivors (r324-guard-dh-zero, r324-keyword-blank,
r324-count-blank), the entropy constant moved by 0.001 and 0.002
(r324-entropy-converged-tight, r324-entropy-stable-tight) and the third
reader's partial-window label (r324-report-partial). 26 ocfg plants.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
…on (#1758)

RULING R32-3. The literal-substitution class the third critic's entropy
mutant belongs to, applied to the other constants R3.2's lines read:

- the fold's start dh_zero, dh_small and scale: for each, two no-record
  trajectories whose 11-value window diameter sits 2e-8 (relative)
  either side of the threshold the default implies;
- the start window: ten repeats do not fill it, eleven do;
- a record's dh_zero 1e-14 above the diameter and 4.6e-11 above the
  nearest float: a record value is carried as a double;
- `1e-300 1e-299 10 1e300` is accepted (the bounds of the range checks).

The vertical-tab record now uses nothing but vertical tabs, so the
whitespace class of every field guard is covered. 65 cases in four
tiers: examined=260 mismatches=0; the 54 earlier cases' lines are
unchanged. 20 hand mutants (literal, float width, ctype, base 8) are
all red (briefs/out/r3-2/orch-sweep/um/hand.tsv). src/ is not touched.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
… to 1 (#1758)

RULING R32-4. The fourth critic refuted two equivalence claims of R32-3.

- A float literal (0.1f = 0.1 + 1.49e-9) in either entropy reader passed
  the 0.09896 / 0.100001 bracket. Four live cases now use six-letter
  strings of 4856 and 5049 bytes whose entropy is 0.1 - 1.04e-9 and
  0.1 + 6.6e-10: constant (converged / equilibrium) and grown in 14
  steps (moving / stable).
- A converged reader returning 2 or -1 is invisible to a program (the
  predicate word is a bool) but not to a host: observer_predicate_at
  returns the int. tests/test_embed_observer.c drives a binding onto the
  entropy route and checks the direct read answers exactly 1.

69 cases in four tiers: examined=276 mismatches=0; the 65 earlier
cases' lines are unchanged. embed observer: 45 passed. src/ untouched.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
r325-entropy-converged-float and r325-entropy-stable-float: the entropy
constant replaced by 0.1f in each reader, red on the near-above case.
28 ocfg plants.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
…1758)

RULING R32-4 states a tolerance of 1e-8 (relative) on the entropy
constant. The below string sat 1.04e-9 under 0.1; this one (5267 bytes,
five letters) sits 2.8e-10 under. Expected output is unchanged:
examined=276 mismatches=0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
…sition and stream (#1758)

RULING R32-5. The fifth critic refuted R32-4's tolerance: exact 0.1 is
reachable with no string and no libm, through a trajectory snapshot dict
(`"entropy": 1 / 10`). A mechanical identifier-swap sweep (269 mutants)
found two more gaps of its own. Eighteen new cases:

- the entropy readers at 0.1 and at the next double below, through
  snapshot dicts whose `last_entropy` and `dH` sit on the opposite side
  (strictness, the constant to the last bit, the wrong slot field);
- `get_observer_thresholds` prints `[0.001, 0.01, 0.1]`;
- the fold's start thresholds at equality and one representable bump
  above: dh_zero * scale, dh_small * scale, dh_zero * 1000,
  dh_small * 100;
- the range checks at their bounds: the smallest positive double
  accepted, the next double above 1e300 refused;
- a record governs only the records after it (spliced mid-tape, the
  earlier stop keeps the default label) and only its own stream (the
  same record on a second declared stream changes nothing on stream 0).

87 cases in four tiers: examined=348 mismatches=0; the 69 earlier
cases' lines are unchanged. src/ untouched.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
r326-entropy-converged-strict, r326-entropy-stable-strict (`<=` at each
reader), r326-entropy-field (the reader takes ent_last_entropy),
r326-record-position and r326-record-stream (the record's index and
stream overwritten). 33 ocfg plants.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
…ond stream and after a valid record, shared plant tree (#1758)

The sixth blind critic failed round 6 on one point: the identifier-swap
table was written by hand and had no ParseStream group, so
free(streams) -> free(ps) on the three O cfg refusal lines survived.

- Row: the three refusals (field count, parse, range) repeated on a second
  declared stream, where the mutant aborts instead of exiting 3; the
  field-count refusal repeated after an accepted record, where
  free(streams) -> free(q0) aborts on the earlier record's pointer; the
  window-4 record at a second placement one record later, so a record's
  reach is bounded from both sides (rec + 1 is red on the new placement,
  rec - 1 on the old). 93 cases, 372 examined. No earlier transcript line
  changes. cfg_case keeps the shell's report of a killed reader out of
  the row's stderr, so an abort is a named failure, not a broken row.
- Plants: r327-refuse-count-table, -parse-table, -range-table and
  r327-record-next (37 in the family).
- Plant runner: the O-configuration plants share one build tree and rebuild
  incrementally, with a checksum guard against a stale binary. 33 full
  builds had taken the hosted changed-rows self-test job to its 90-minute
  limit (89 minutes on the pull-request run, cancelled on the dispatch).
- Texts: the smallest positive double is accepted for dh_zero and the
  scale; dh_small's accepted bound is the next double above it.

src/ is unchanged since round 1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149GnPzPmYhjGZMKwLefTVr
@InauguralPhysicist

Copy link
Copy Markdown
Member Author

PRWATCH 2026-11-06: draft, by design. R3.2 (design O3, the four-field O cfg record) was accepted today at 54008422 (#1758): hosted train green except the named CodSpeed exception, blind critic PASS. R3.0-R (#2330, the reveal driver, on main) is with the builder. Remaining before this PR lands: R3.3, R3.4, R5. — Claude DevBox

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants