mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-07 16:09:43 +02:00
ci.yml runs the xterm-zerolag-input suite (Layers 1-3) after the root npm ci (workspaces hoisting; no separate install). CLAUDE.md and architecture-invariants.md rewrite the codex echo story: predictive write-through with the wire-neutrality, separate-bundle, composer-gate, baseY and blank-neutral invariants spelled out; the single-source section now covers both vendor bundles and why their entry points differ. Changeset: minor for aicodeman + xterm-zerolag-input. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
aicodeman, xterm-zerolag-input
| aicodeman | xterm-zerolag-input |
|---|---|
| minor | minor |
Zero-lag predictive echo for Codex sessions (mosh-style write-through prediction).
Codex's per-keystroke composer forced 1.12.2 to disable the local-echo overlay (issues #218/#219/#220/#222), leaving Codex typing at full round-trip latency on remote links. This release adds a second echo mode instead of re-enabling the first: every keystroke still goes to the PTY exactly as before (byte-identical wire behavior, pinned by vm-level and end-to-end trace-equality tests), while the new PredictiveEchoAddon in xterm-zerolag-input 0.2.0 paints the predicted glyph at the predicted cell. When the real echo lands, the prediction is confirmed and its span removed (an invisible swap); mispredictions self-heal via a two-pass mismatch cascade and a TTL.
- Reconciliation reads the parsed terminal buffer, never the raw stream: full-line redraws, ECH gap painting and tmux's in-place deltas all converge to the same cells. Confirmation requires the cell match PLUS a cursor advance, so placeholder glyphs and identical repaints never false-confirm; blank cells are neutral (codex clears its placeholder on the first echo).
- Predictions paint only while the cursor sits on the measured Codex composer row (
/^› /, codex-cli 0.147): trust/approval modals and wrapped continuation rows get no ghosts, deliberately falling back to real echo. - Ships as a SEPARATE
vendor/xterm-predictive-echo.jsbundle: the existing zerolag bundle is byte-identical (sha256-verified), and a missing or broken bundle degrades Codex to exact 1.12.2 behavior. The per-devicelocalEchoEnabledtoggle is the kill switch. - Claude/Gemini/OpenCode/Antigravity keep buffer mode untouched; shell stays off.
- Tests: 52 new package tests including replay suites driven by fixtures recorded from a real codex TUI through the production tmux+strip pipeline (
scripts/dev/record-codex-frames.mjs) and a 500-iteration seeded fuzz; new vm policy/wire-neutrality suites; a 10-scenario Playwright E2E against real codex covering the #218/#219/#220/#222 retests, byte-identity, and a simulated 300ms-RTT run. The package test suite now runs in CI.