Commit Graph
720 Commits
Author SHA1 Message Date
arkon 9719921c8e chore: bump version to 0.1644 2026-02-25 19:34:10 +01:00
arkon be46dfe19d chore: bump version to 0.1643 2026-02-25 18:58:34 +01:00
arkonandClaude Opus 4.6 64ad8b467b chore: bump version to 0.1641
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 17:14:53 +01:00
arkonandClaude Opus 4.6 fd0b75c9a5 chore: bump version to 0.1640
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 13:40:55 +01:00
arkon ea79d1f998 chore: bump version to 0.1639 2026-02-25 09:49:01 +01:00
arkonandClaude Opus 4.6 cf09e0e9cd chore: bump version to 0.1638
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-25 09:39:41 +01:00
arkonandClaude Opus 4.6 8d3ce5ef57 chore: bump version to 0.1637
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 09:23:18 +01:00
arkonandClaude Opus 4.6 475062f0af chore: bump version to 0.1636
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 09:07:16 +01:00
arkon b1672ea1fa chore: bump version to 0.1635 2026-02-25 08:19:47 +01:00
arkon 7b931a35d0 chore: bump version to 0.1634 2026-02-25 00:32:45 +01:00
arkon 57193cb1be chore: bump version to 0.1633 2026-02-25 00:21:34 +01:00
arkon a5dd4fff21 chore: bump version to 0.1632 2026-02-25 00:14:52 +01:00
arkonandClaude Opus 4.6 e4c8c7a645 chore: bump version to 0.1631
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:49:09 +01:00
arkonandClaude Opus 4.6 fcca197e81 chore: bump version to 0.1619
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:24:03 +01:00
3c29b1fa6e fix: CJK/Unicode wide character support (#13)
Set UTF-8 locale in all PTY spawn environments, add xterm-addon-unicode11
for proper double-width character measurement, and update LocalEchoOverlay
helpers to respect CJK character visual width in positioning, line wrapping,
and cursor placement.

Based on PR #13 by @TeigenZhang, adapted to current codebase structure.

Co-Authored-By: Tenggan Zhang <TeigenZhang@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:13:09 +01:00
arkonandClaude Opus 4.6 5170c188c3 fix: respect Claude CLI startup mode setting (#12)
The "Startup Mode" setting (normal/bypass/allowedTools) was saved to
settings but never read when spawning sessions. All code paths had
--dangerously-skip-permissions hardcoded. Now reads claudeMode from
~/.claudeman/settings.json and passes it through Session → TmuxManager.

Closes #12

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:52:55 +01:00
arkon 37af7ead20 chore: bump version to 0.1614 2026-02-24 13:36:42 +01:00
arkon 2e816f55e4 chore: bump version to 0.1613 2026-02-24 13:34:30 +01:00
arkon 3ce3b2bede chore: bump version to 0.1612 2026-02-24 13:30:17 +01:00
arkon 76e5c4f512 chore: bump version to 0.1610 2026-02-24 13:25:26 +01:00
arkon 2097fd3989 chore: bump version to 0.1609 2026-02-24 13:23:00 +01:00
arkonandClaude Opus 4.6 21b2a1191b 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>
2026-02-22 11:41:44 +01:00
arkon 4aa38c1bbb chore: bump version to 0.1599 2026-02-22 09:23:26 +01:00
arkon c78bb53968 chore: bump version to 0.1598 2026-02-22 07:34:33 +01:00
arkon 90b293ab3d chore: bump version to 0.1597 2026-02-22 06:04:37 +01:00
arkon 84c454cf40 chore: bump version to 0.1596 2026-02-22 05:52:25 +01:00
arkon 1a36ae15b8 chore: bump version to 0.1595 2026-02-22 05:46:56 +01:00
arkon 3a5ab330b7 chore: bump version to 0.1594 2026-02-22 05:45:04 +01:00
arkon 67b5c71019 chore: bump version to 0.1593 2026-02-22 05:34:52 +01:00
arkon ce49cd8c46 chore: bump version to 0.1592 2026-02-22 02:49:19 +01:00
arkonandClaude Opus 4.6 c060b72757 fix: local echo overlay — 5 bugs fixed, 39-test suite, wrapping text survives tab switch
Root cause bugs fixed in local echo overlay:
1. Stored flushed text as string (_flushedText, _flushedTexts Map) to avoid reading stale terminal buffer
2. Overlay stays visible when pendingText empties but flushed > 0
3. Backspace into flushed text has immediate visual feedback
4. _flushedTexts.delete() added alongside _flushedOffsets.delete() in Enter/Ctrl+C/cleanup
5. OSC terminal responses (xterm color queries) no longer clear flushed text state —
   was triggered by _handleColorEvent → triggerDataEvent during buffer load after tab switch

Added comprehensive test suite (test/local-echo-user-test.mjs): 39 tests across 9 groups
including line wrapping, tab switch round-trips, backspace into flushed text, and more.
All 6 test suites pass (133 total assertions).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 02:05:49 +01:00
arkon c820acc96e fix: make localEchoEnabled per-platform so desktop/mobile settings don't overwrite each other
Strip localEchoEnabled from server PUT payload (stays in device-specific
localStorage only). Add to displayKeys as safety net for stale server values.

chore: bump version to 0.1588
2026-02-21 23:37:29 +01:00
arkonandClaude Opus 4.6 6c75432d74 chore: bump version to 0.1587
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 14:35:43 +01:00
arkonandClaude Opus 4.6 7fbc60db9b chore: bump version to 0.1586
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 14:00:16 +01:00
arkon 0fe6251424 chore: bump version to 0.1585 2026-02-21 07:12:57 +01:00
arkonandClaude Opus 4.6 85ee601b5b chore: bump version to 0.1584
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 16:26:11 +01:00
arkonandClaude Opus 4.6 2de3c46f66 chore: bump version to 0.1583
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 16:18:43 +01:00
arkon c561c41146 chore: bump version to 0.1582 2026-02-20 15:58:28 +01:00
arkon bad074756d chore: bump version to 0.1581 2026-02-20 15:41:43 +01:00
arkonandClaude Opus 4.6 819b1771c3 chore: bump version to 0.1580
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 15:04:45 +01:00
arkon 3f9632c8c7 chore: bump version to 0.1579 2026-02-20 14:33:06 +01:00
arkonandClaude Opus 4.6 663070f3f1 chore: bump version to 0.1578
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 14:04:16 +01:00
arkonandClaude Opus 4.6 ee5e070776 chore: bump version to 0.1576
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:06:45 +01:00
arkonandClaude Opus 4.6 06c4e3933b chore: bump version to 0.1575
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:53:02 +01:00
arkon 2528d98dce chore: bump version to 0.1574 2026-02-20 12:03:51 +01:00
arkon a720408ea5 chore: bump version to 0.1573 2026-02-20 09:46:09 +01:00
arkonandClaude Opus 4.6 b2a39a6745 fix: harden install.sh — Homebrew bootstrap, dnf/yum fallback, Alpine sudo, PATH cleanup
- Extract ensure_homebrew() called from all macOS install functions (prevents crash if Git checked before Node)
- Add dnf/yum fallback in Fedora install functions (fixes Amazon Linux 2 which only has yum)
- Add ensure_sudo to Alpine install functions (consistent with all other distros)
- Update Fedora/SUSE NodeSource setup to use GPG keyring method (replaces deprecated setup_XX.x script)
- Remove dist/ directory from PATH (only use ~/.local/bin symlink)
- Collapse identical fish/non-fish branches in setup_sc_alias

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 09:36:47 +01:00
arkonandClaude Opus 4.6 868d4f1196 perf: fix memory leaks — strip task outputs from SSE broadcasts, use light state everywhere
- TaskTracker.getTaskTreeLight(): strips large `output` strings from tasks
  in SSE broadcasts (was serializing 5-10MB every 500ms with many subagents)
- session:created broadcasts now use toLightDetailedState() (consistent with
  session:updated which already did)
- GET /api/sessions/:id returns light state (no 2-3MB terminal+text buffers)
- Ralph wizard polls /terminal?tail=2048 instead of full session endpoint

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 06:50:59 +01:00
arkon 5b882c448e chore: bump version to 0.1570 2026-02-20 06:09:28 +01:00
arkon 99ad44e907 perf: speed up session creation by ~500ms — remove redundant sleep, reduce tmux wait, fire-and-forget config 2026-02-20 04:30:02 +01:00