Skip to content

Arena 11.0.3: reasons, table cells and foreign trees are held - #39

Merged
JCarlosHidalgo merged 4 commits into
mainfrom
develop
Sep 10, 2026
Merged

JCarlosHidalgo merged 4 commits into
mainfrom
develop

Conversation

@JCarlosHidalgo

Copy link
Copy Markdown
Contributor

Arena 11.0.3. Tooling and documentation only: no component, contract, token or package surface moves.

What lands

  • A budget's reason says why its number is right today. The eighteen reasons in check-routes.ts had grown into raise logs, about 78,000 characters with "Raised" ninety-five times. They are rewritten in the present, and check:routes fails a reason that names a budget figure, says "raised" or "lowered", or runs past REASON_MAX_CHARS.
  • A table cell stays under 2,000 characters. scripts/check/arena/AGENTS.md sat 153 characters under the 60,000 cap with rows near 4,000. check:docs now caps a table cell; the rows that broke it lose their histories rather than their claims, and that page drops to about 50,400 characters.
  • What is not this repository is named once. About twenty walks spelled their own skip set, and the root walks of check:vocabulary, check:routes and the script graph missed .claude, so a git worktree there was read as a second copy of the tree. lib/arena/foreign-trees.ts names node_modules, .git and .claude, every walk composes it, and a suite fails a second spelling.
  • Every surface that states a version states 11.0.3.

Verified

  • bun run check --release after bun run build:release: 87 of 87 steps ran and passed, none from the cache.
  • bun scripts/check/arena/check-release.ts after tagging: Release OK, and v11.0.3 is the tip of develop.
  • With a worktree under .claude/, check:vocabulary failed and check:routes measured 469 documents before the change; both pass and read 234 after.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TVMSZHMunk5kC54Voh5RsH

JCarlosHidalgo and others added 4 commits September 10, 2026 18:09
…s fails one that keeps the history instead

The eighteen reasons had grown into raise logs: about 78,000 characters, "Raised" ninety-five
times, and four of them closing on a note that every figure above it named a number the route
no longer had. A contributor arguing the next raise read a history nothing held. Each reason
now states what the route carries and what moves its number, and `reasonProblems` fails a
reason that names a budget figure, says "raised" or "lowered", or runs past `REASON_MAX_CHARS`.
Against the previous declarations it fails sixteen of the eighteen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TVMSZHMunk5kC54Voh5RsH
…s not cap a row

scripts/check/arena/AGENTS.md sat 153 characters under the 60,000 limit with single gate rows
near 4,000, so the cap had become the target and the next row would have been refused by
arithmetic. `cellSizeProblems` in check:docs fails a table cell over `MAX_CELL_CHARS`, fenced
tables excluded and escaped pipes kept inside their cell. The rows that broke it lose their
histories rather than their claims: that page drops to about 50,400 characters, and the three
cells elsewhere (`arena-to-prod/`, `chromium.ts`, `typecheck.ts`) come under the limit. The
gate route's budget follows the shorter stop down to a few rows of headroom.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TVMSZHMunk5kC54Voh5RsH
…e and a worktree there is not read as the tree

About twenty walks under scripts/ spelled their own skip set, and the root walks of
check:vocabulary, check:routes (and check:support through it) and the script graph's universe
missed `.claude`. A git worktree under `.claude/worktrees/` was then a second copy of the tree:
with one present, check:vocabulary failed on problems that were not in it and check:routes
measured 469 documents instead of 234. Even without one, both were reading `.claude/RESUME.md`.

`lib/arena/foreign-trees.ts` names node_modules, .git and .claude with a reason each, and every
walk composes `withForeignTrees(...)` with what it skips for its own reasons. Its suite fails a
script spelling one of the three as a skip of its own, `SPELLED_ELSEWHERE` carries the two that
may not import it, and every root walk is asked directly whether it skips each one. Verified
with a worktree present, before and after.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TVMSZHMunk5kC54Voh5RsH
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TVMSZHMunk5kC54Voh5RsH
@JCarlosHidalgo
JCarlosHidalgo merged commit dee786e into main Sep 10, 2026
11 checks passed
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