Skip to content

release: cut v0.33.0 — the silent-wrong-answer release#703

Merged
InauguralPhysicist merged 3 commits into
mainfrom
release-0.33.0
Jul 25, 2026
Merged

release: cut v0.33.0 — the silent-wrong-answer release#703
InauguralPhysicist merged 3 commits into
mainfrom
release-0.33.0

Conversation

@InauguralPhysicist

Copy link
Copy Markdown
Collaborator

Cuts v0.33.0: 51 commits since v0.32.0 (2026-07-16).

Why now

The app fleet has outrun the release. eigen-sheet's shipped TODAY()/NOW()
and from_xlsx depend on clock_unix (#683) and the DEFLATE codecs (#684),
neither of which exists in v0.32.0 — so it and eigen-edit clone EigenScript
main unpinned in CI, by necessity rather than sloppiness. Cutting this
release is what lets them pin.

What's in it

The silent-wrong-answer sweep — the plausible-but-wrong-at-rc=0 class,
where nothing warns and nothing crashes:

The primitive layer — each one requested by a consumer that hit the wall:
four DEFLATE codecs behind make zlib (#684), tape-captured clock_unix
(#683), and four C-backed list operations (#543/#544).

Instruments: kill -USR1 live observer dumps (#660), and a test runner
that no longer trusts its own binary (mid-run rebuild detection #681), its own
liveness (runaway guards #648/#616/#651/#656), or its own arithmetic (derived
tallies #654 — the hand-synced literals were under-reporting by 169 asserts).

CHANGELOG drift found and fixed

[Unreleased] documented ~15 items while ~20 landed changes had no entry at
all
— including every builtin above. Rather than ship a release that
under-reports itself, the missing entries are written in from the commit
bodies. That is most of this diff.

Cut ritual sites

VERSION, the [Unreleased] -> [0.33.0] retitle + backfill, the
docs/llms.txt version stamp, CLAUDE.md's "Latest release" line, and the
ROADMAP.md sync.

Verification

  • Full release suite: 3184/3185. The single failure is doc-drift rule 2
    (CLAUDE.md 'Latest release' line is not v0.32.0) — the expected pre-tag
    state. Tagging v0.33.0 locally and re-running tools/doc_drift_check.sh
    exits 0 (tag deleted afterward), which is the release build's shape.
    CI's depth-1 clone has no tags, so the guard skips there.
  • Rules 1/3/4/5 pass locally.
  • The diff includes non-.md files (VERSION), so the ci: a docs-only fast lane — stop proving a paragraph didn't break ASan #643 docs-only fast
    lane does not engage — the full ASan/UBSan leg runs on this PR.

Closes #697 was landed separately in #700.

🤖 Generated with Claude Code

Two threads. The first is a sweep of the highest-yield failure class: a
plausible-but-wrong value returned at rc=0, where nothing warns and nothing
crashes. regex_match deleted every capture after a non-participating group
(#629); json_decode truncated long number tokens and parsed a wrong-magnitude
prefix, off by 50 orders of magnitude (#628); four stdlib math functions
returned confidently wrong numbers (#638-#641); a module's top-level assignment
rebound its IMPORTER's global instead of creating module state (#673); a
comprehension variable and a same-named local split into two bindings, so
program text after a statement changed that statement's result (#633/#642); and
the observer indicted itself twice — report_value called a converging sequence
diverging (#674), while the learning-rate gate measured 100% "stable" across
2,597 steps with the loss demonstrably still falling.

The second is the primitive layer, every item requested by a consumer that had
hit the wall rather than speculated: four DEFLATE codecs behind `make zlib`
(#684 — .xlsx and .gz readable from script), a tape-captured clock_unix (#683),
and four C-backed list operations (#543/#544). Plus `kill -USR1` live observer
dumps (#660) and a test runner that no longer trusts its own binary, liveness,
or arithmetic (#681/#648/#654 — its hand-synced tallies were under-reporting by
169 asserts).

Carries the sites the cut ritual needs: VERSION, the CHANGELOG section retitled
from [Unreleased] (with the ~20 landed changes that never got an entry written
in — the drift this cut found), the docs/llms.txt version stamp, CLAUDE.md's
"Latest release" line, and the ROADMAP sync.

doc_drift_check rules 1/3/4/5 pass; rule 2 fires locally until the tag exists,
which is the expected pre-tag state (CI's depth-1 clone has no tags, so the
guard skips there — verified empirically at the v0.32.0 cut).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 25, 2026 04:05

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Not ready to approve

CHANGELOG.md no longer has an [Unreleased] section while CLAUDE.md still points readers to it, leaving the docs internally inconsistent.

Pull request overview

Cuts the v0.33.0 release by bumping version stamps across the repo and promoting the filled-out release notes into the changelog, aligning roadmap and contributor/docs pointers with the new tag.

Changes:

  • Bump release/version markers to 0.33.0 (VERSION, ROADMAP.md, docs/llms.txt, CLAUDE.md).
  • Promote and expand release notes into CHANGELOG.md under [0.33.0] - 2026-07-24.
  • Update roadmap “recently shipped” range and add a 0.33.0 summary entry.
File summaries
File Description
VERSION Updates the project version to 0.33.0.
ROADMAP.md Updates current version and adds a 0.33.0 “recently shipped” summary.
docs/llms.txt Updates the LLM reference doc’s version stamp to v0.33.0.
CLAUDE.md Updates the “Latest release” line to v0.33.0 with the new release summary.
CHANGELOG.md Adds the v0.33.0 release entry and detailed notes (currently displaces the [Unreleased] section).

Review details

  • Files reviewed: 5/5 changed files
  • Comments generated: 1
  • Review effort level: Low

Note

Your feedback helps us improve the quality of this feature.
Please use 👍 or 👎 to tell us whether this assessment is correct.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread CHANGELOG.md
Comment on lines +5 to +6
## [0.33.0] - 2026-07-24

…bytecode producers

The original fix said 'no opcode number or on-disk format changed' — true,
and the wrong frame: the operand WIDTH is the bytecode ABI for anything that
builds a chunk and hands it to vm_run_bytecode. The pre-bump consumer sweep
found ouroboros producing empty output for every behavioral-parity program
(bootstrap fixed point still green — it compares bytes, it does not execute)
and iLambdaAi's grading ladder unable to award its top grade, both silently
at rc=0.

Also flags #629's regex_match change, which is observable to anyone who
consumed the truncated shape (EigenRegex's compat shim mirrored it on
purpose). Gate for the class filed as #704.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 25, 2026 04:23

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Not ready to approve

CHANGELOG.md removed the [Unreleased] section while CLAUDE.md still references it, leaving the docs internally inconsistent and removing the intended landing spot for future entries.

Review details

Comments suppressed due to low confidence (1)

CHANGELOG.md:6

  • The changelog no longer has an [Unreleased] section, but CLAUDE.md still points readers to CHANGELOG.md [Unreleased] for work on main. Reintroduce an [Unreleased] header above the new release section so future entries have a consistent landing spot and the cross-reference remains correct.
## [0.33.0] - 2026-07-24

  • Files reviewed: 5/5 changed files
  • Comments generated: 0 new
  • Review effort level: Low

Note

Your feedback helps us improve the quality of this feature.
Please use 👍 or 👎 to tell us whether this assessment is correct.

…704)

The canary for vm_run_bytecode already existed and is thorough — 34 checks
covering opcodes, the verifier, the sandbox, and #348 — but it emitted no
OP_LINE at all. So when #630 widened that operand from 16 to 32 bits, nothing
here failed, and the break surfaced only at the next consumer bump: ouroboros
producing empty output for all 44 parity programs, iLambdaAi's grading ladder
unable to award its top rung, both at rc=0 with no error.

Four checks close the hole:
  - a well-formed 4-byte OP_LINE keeps the stream aligned (2 + 3 == 5)
  - the pre-#630 3-byte shape must NOT still evaluate to 5 — whatever it does
    (verifier rejection or misaligned garbage), it is no longer the producer's
    intended arithmetic
  - a line number past 65535 survives the operand, which is the regime #630
    exists for
  - a truncated operand is rejected rather than read off the end

Validated red-then-green rather than assumed: against a v0.32.0 worktree build
the first two fail ("expected 5, got null"); against main they pass 34/34. So
this file now fails in the SAME PR as any future opcode-number or
operand-width change, instead of at bump time in someone else's repo.

The header comment said "16-bit operands are little-endian", which #630 made
false; it now states the exception and names this file as the ABI contract for
external producers.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Not ready to approve

CHANGELOG.md no longer has an [Unreleased] section, which conflicts with existing repo guidance and makes post-release tracking ambiguous.

Review details

Comments suppressed due to low confidence (1)

CHANGELOG.md:5

  • CHANGELOG.md no longer contains an "[Unreleased]" section (it starts directly at 0.33.0). The repo guidance in CLAUDE.md points readers at CHANGELOG.md [Unreleased], and removing it also makes it harder to track post-release work without immediately editing past release notes.
## [0.33.0] - 2026-07-24
  • Files reviewed: 6/6 changed files
  • Comments generated: 0 new
  • Review effort level: Low

Note

Your feedback helps us improve the quality of this feature.
Please use 👍 or 👎 to tell us whether this assessment is correct.

@InauguralPhysicist
InauguralPhysicist merged commit ae9715c into main Jul 25, 2026
19 checks passed
@InauguralPhysicist
InauguralPhysicist deleted the release-0.33.0 branch July 25, 2026 04:40
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.

CI: add a zlib leg to the extensions job so the real DEFLATE codecs run in CI

2 participants