You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Stock strings that exist in the original binary doubled: e.g. "Accomplishing" and "Boondoggling" (stock thinking-verb data) go from 3 → 6 matching lines in the binary; "Pondering"/"Marinating" likewise 3 → 6. Nothing in my config contains those stock verbs, so this is duplication of existing embedded chunk content, not insertion of new content
claude --version still runs, so the bloat is silent — no crash, just a corrupted-size binary sitting on disk
$ ls -la ~/.local/share/mise/installs/claude/2.1.245/claude
-rwxr-xr-x 694,614,320 claude # after --apply
$ ls -la ~/.tweakcc/native-binary.backup
-rwxr-xr-x 391,948,592 native-binary.backup
$ cmp ~/.tweakcc/native-claudejs-orig.js ~/.tweakcc/native-claudejs-patched.js && echo identical
identical
$ for m in Accomplishing Boondoggling; do \
echo "$m: backup=$(grep -ac $m native-binary.backup) current=$(grep -ac $m claude)"; done
Accomplishing: backup=3 current=6
Boondoggling: backup=3 current=6
tweakcc --restore returns the binary to 391,948,592 bytes and baseline string counts, so the backup path is fine — the problem is in repack.
Expected behavior
Repack should replace the embedded entry chunk in place and produce a binary of (approximately) the original size, with no duplication of existing chunk content.
Notes
My hypothesis from the outside: repack appends the rewritten entry (and possibly re-embedded chunk data) rather than replacing the original bytes, so the old content remains and the file grows by roughly the embedded payload size.
Found while testing Fix parse gate rejecting ESM native bundles (CC 2.1.245+) #978: once the parse gate accepts the ESM entry chunk, this repack behavior is what users on 2.1.245 native will hit next, so it may be worth tracking both together for that CC line.
Happy to run any further diagnostics against the backup/patched pair on request.
Environment
~/.local/share/mise/installs/claude/2.1.245/claude, 391,948,592 bytes)Steps to reproduce
tweakcc --apply -yCannot use import statement outside a module(fixed by Fix parse gate rejecting ESM native bundles (CC 2.1.245+) #978 — the entry chunk of this build is ESM, not@bun-cjs). With the gate fixed (I patcheddist/config-*.mjsper Fix parse gate rejecting ESM native bundles (CC 2.1.245+) #978), apply proceeds and reports patch results, then repacks.~/.tweakcc/native-binary.backup.Actual behavior
The repacked binary is 694,614,320 bytes (+302 MB, +77%) with clear signs of duplicated embedded content, while carrying zero of the applied config:
~/.tweakcc/native-claudejs-patched.jsis byte-identical tonative-claudejs-orig.js(cmp) — consistent with the 2.1.2xx pattern drift already tracked in Opusplan[1m] and Clear screen patches fail to find their patterns on Claude Code 2.1.227 (tweakcc 4.3.2) #942/86 system prompts fail to locate on CC 2.1.235 / tweakcc 4.3.3: locator regex expects a spaced ${x ? "" : "..."} ternary, bundle has it minified #957 (patch locators miss), so nothing from my config (custom theme id, custom verbs) appears anywhere in the binary (grep -ac= 0)claude --versionstill runs, so the bloat is silent — no crash, just a corrupted-size binary sitting on disktweakcc --restorereturns the binary to 391,948,592 bytes and baseline string counts, so the backup path is fine — the problem is in repack.Expected behavior
Repack should replace the embedded entry chunk in place and produce a binary of (approximately) the original size, with no duplication of existing chunk content.
Notes
Happy to run any further diagnostics against the backup/patched pair on request.