feat: integrate xterm-zerolag-input library into Claudeman app.js

Replace the embedded 348-line LocalEchoOverlay class with the standalone
xterm-zerolag-input library (inlined as ZerolagInputAddon). A bridge
class `LocalEchoOverlay extends ZerolagInputAddon` preserves the
constructor API so existing `new LocalEchoOverlay(terminal)` call works.

All 43+ private property accesses (_flushedOffset, _bufferDetectDone,
_lastRenderKey, _render(), _detectBufferText(), etc.) replaced with
public library methods:

- Backspace: 60-line 3-branch handler → removeChar() returning
  'pending'|'flushed'|false + Map sync
- Tab completion: _bufferDetectDone/_detectBufferText/_flushedOffset
  → resetBufferDetection()/detectBufferText()/undoDetection()/rerender()
- Tab switch save: _flushedOffset/_flushedText reads → getFlushed()
- Tab switch restore: direct assignments → setFlushed(n, t, false)
- Buffer detection guard: _bufferDetectDone=true → suppressBufferDetection()
- Resize re-render: _lastRenderKey='';rerender() → rerender()
- Post-load render: _lastRenderKey='';_render() → rerender()

Verified with 9 Playwright integration tests + manual testing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
arkon
2026-02-22 11:41:44 +01:00
co-authored by Claude Opus 4.6
parent 8dfcfe8d62
commit 21b2a1191b
4 changed files with 791 additions and 1089 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "claudeman",
"version": "0.1600",
"version": "0.1601",
"description": "The missing control plane for Claude Code - run 20 autonomous agents with real-time monitoring and session persistence",
"type": "module",
"main": "dist/index.js",
@@ -51,7 +51,7 @@
"zod": "^4.3.6"
},
"devDependencies": {
"@types/node": "^20.14.0",
"@types/node": "^20.19.33",
"@types/pngjs": "^6.0.5",
"@types/uuid": "^10.0.0",
"@vitest/coverage-v8": "^4.0.18",