Skip to content

runtime: one replay-refusal helper, and the taped-fs rule reads k_tape_kinds (#1943) - #1960

Merged
InauguralPhysicist merged 2 commits into
mainfrom
replay-blocks-one-impl-1943
Oct 24, 2026
Merged

InauguralPhysicist merged 2 commits into
mainfrom
replay-blocks-one-impl-1943

Conversation

@InauguralPhysicist

Copy link
Copy Markdown
Collaborator

Closes #1943.

Evidence (the Codex Cloud draft's report, reviewed):

Replay-refusal deduplication

replay_blocks(fn, boundary) is now the single implementation. Its callers pass
these inputs:

  • subprocess/concurrency: recv, try_recv, recv_timeout, exec_capture,
    proc_read_buf;
  • database: db_connect, db_query_value, db_execute, db_query_json;
  • store: store_open, store_close, store_put, store_get, store_delete,
    store_query, store_count, store_update, store_collections, store_drop.

A comparison script constructed the old per-helper message and the new shared
message for all 19 inputs and asserted byte equality. It reported
old/new replay messages: byte-identical for all 19 inputs; there was no
disagreement. git grep -n 'not replayable under EIGS_REPLAY' -- src now finds
only the shared format string (plus unrelated inline special-case sites), not
per-boundary helper copies.

Filesystem tape-kind deduplication

The nine literal file_io_error inputs are ls, mkdir, read_bytes,
read_bytes_buf, read_text, remove_file, rename, write_bytes, and
write_text. A comparison script evaluated the removed predicate for every
input and compared it with membership in k_tape_kinds; all nine decisions
were true and identical, with no disagreement. file_io_error_message now
uses trace_core_kind_declared, whose answer comes directly from that table.

tools/tape_kinds_check.sh now also treats literal file_io_error calls as
tape producers. The unchanged tree was green:

tape-kinds: taped=52 declared=52 missing=0 stale=0
tape-kinds: PASS

Planting file_io_error("unlisted_plant", ...) produced the required red:

MISSING: 'unlisted_plant' records an N value but has no k_tape_kinds row
tape-kinds: taped=53 declared=52 missing=1 stale=0
tape-kinds: FAIL

After restoring the source the same check returned to PASS with 52 taped and
52 declared names. No tools/selftests.txt row pins this gate's count.

Checks

  • make -j2: passed.
  • bash tests/test_replay.sh: 39 passed, 0 failed.
  • (cd src && EIGS=../build/release/eigenscript bash ../tests/test_replay_boundary_exit.sh): 15 passed, 0 failed.
  • bash tools/tape_kinds_check.sh: passed.
  • bash tools/workflow_yaml_check.sh: passed after installing PyYAML.
  • bash tools/ci_tier_check.sh: passed after installing PyYAML.
  • bash tools/precheck.sh: 14 gates passed, one portability audit skipped;
    four orchestration failures were environmental on the first run: PyYAML was
    initially absent (subsequently installed and both affected workflow gates
    passed independently), and this checkout has no origin remote/ref, so the
    changed-file selftest and changelog merge-base checks cannot resolve
    origin/main.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KC99CmwatKssQYggkBCgwF

…e_kinds (#1943)

See the PR for the evidence (each surviving implementation was compared with
both copies on every input either copy handled).

Based on a Codex Cloud draft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KC99CmwatKssQYggkBCgwF
@InauguralPhysicist InauguralPhysicist added the area:trace-tape Subsystem: trace-tape label Oct 24, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-24T19:24:09.159950Z ea07aa1 PR opened
🔒 Security Review ✅ Completed 2026-10-24T19:28:54.087792Z ea07aa1 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@codspeed

codspeed Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 13 untouched benchmarks


Comparing replay-blocks-one-impl-1943 (e82419b) with main (a8e09cd)

Open in CodSpeed

…1943)

The full lane failed in shape-contract (and so strict_differential's
preflight): builtin_db_execute, builtin_db_query_json, builtin_db_query_value
and builtin_exec_capture are exempt rows that pin their bodies' and helpers'
SHA-256. Reviewed: in each, exactly one line changed, the replay refusal
(db_replay_blocks("x") or replay_blocks("x") became replay_blocks("x",
boundary)). Every helper in the pinned closures (db_build_query,
db_exec_from_arg, ...) is byte-identical, so each row's arity reason still
holds verbatim. Repinned with the tool's own hash functions: 8 hash lines.
The gate reads 0 errors. Plant: one added line in builtin_db_execute is red,
naming it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KC99CmwatKssQYggkBCgwF
@InauguralPhysicist
InauguralPhysicist added this pull request to the merge queue Oct 24, 2026
Merged via the queue into main with commit 6352151 Oct 24, 2026
59 checks passed
@InauguralPhysicist
InauguralPhysicist deleted the replay-blocks-one-impl-1943 branch October 24, 2026 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:trace-tape Subsystem: trace-tape

Projects

None yet

Development

Successfully merging this pull request may close these issues.

runtime: this release added a second replay-refusal helper and a second list of taped filesystem builtins

1 participant