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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fixed
A very large transcript no longer takes the app down or leaves a blank
pane behind. A rollout past the ~512MB ceiling on a JS string cannot be
read whole, and in Electron's main process that overflow is an
uncatchable process abort rather than a throw — a 1.4GB Codex rollout
killed the packaged app seconds into launch, and pnpm dev on every
run. Every whole-file read that can be handed an arbitrary transcript
path — both analytics scanners, the Codex telemetry cache reached from
session sync, readTranscript and getToolResult — now checks the size
first and degrades per file: the scanners record the file's mtime so it
stops being pending and the pass can still settle, retrying only if it
ever shrinks, and opening such a session reports it as absent so the
transcript panel shows its empty state instead of a permanently blank
pane re-polling every 1.5s. An oversized session's turns don't land in
analytics; reading them in bounded chunks is follow-up work.
Punctuation converted by a Chinese IME now reaches the terminal as the
converted character instead of the physical key — typing 、 no longer
sends \. Both terminals decline keystrokes for the whole composition
window, so xterm can't finalize a live composition early and emit the
raw key, and they decline unmodified ASCII punctuation on keydown so the
keypress that carries the converted character still fires. Plain letters
and punctuation still arrive exactly once, and Ctrl+C still sends
SIGINT.