arkon and Claude Opus 4.6
eba2fa32a3
feat: enable local echo overlay for OpenCode sessions
...
Use a cursor-based prompt finder for OpenCode's Bubble Tea TUI:
- Custom finder locates ┃ (U+2503) border on the cursor's row
- Offset 3 skips "┃ " to reach the text input start position
- Prompt finder is swapped dynamically when switching between
Claude (❯ character) and OpenCode (┃ border) sessions
- Added setPrompt() method to ZerolagInputAddon for runtime updates
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-02-26 10:53:26 +01:00
arkon and Claude Opus 4.6
c6d4294dde
fix: disable local echo overlay for OpenCode sessions
...
The local echo overlay buffers keystrokes locally and renders them
in a DOM overlay anchored to the '>' prompt character. OpenCode's
Bubble Tea TUI uses a different prompt (┃), so the overlay can't
find it — keystrokes buffer invisibly and nothing appears on screen.
Disable local echo for OpenCode sessions so keystrokes flow directly
to the PTY via the normal input path.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-02-26 10:40:50 +01:00
arkon and Claude Opus 4.6
02f3bea3c1
feat: OpenCode integration Phase 5 — API routes, frontend UI
...
API changes:
- GET /api/opencode/status — check if OpenCode CLI is available
- POST /api/sessions — support mode: 'opencode' with openCodeConfig
- POST /api/quick-start — support mode: 'opencode', guard writeHooksConfig
- Fix hardcoded mode: 'claude' in lifecycle logs (use session.mode)
Schema changes:
- Add 'opencode' to mode enums in CreateSessionSchema, QuickStartSchema
- Add OpenCodeConfigSchema (model, autoAllowTools, continueSession, etc.)
- Add 'OPENCODE_' to ALLOWED_ENV_PREFIXES
- Block OPENCODE_SERVER_PASSWORD in BLOCKED_ENV_KEYS (atomic with prefix addition)
Frontend UI:
- "Run OC" button in toolbar + "Run OpenCode" on welcome screen
- Green "oc" tab badge for OpenCode sessions (matching green brand)
- runOpenCode() method — checks availability, quick-starts with autoAllowTools
- Feature gating: hide Respawn/Context/Ralph tabs for OpenCode sessions
- Session options defaults to Summary tab for OpenCode
- CSS: OpenCode button styles, tab badge styles
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-02-26 10:16:20 +01:00
arkon and Claude Opus 4.6
0b60f2691f
feat: OpenCode integration Phases 1-3 — types, CLI resolver, tmux spawn
...
Phase 1: Type system
- Add SessionMode = 'claude' | 'shell' | 'opencode' to types.ts (single source of truth)
- Add OpenCodeConfig interface (model, autoAllowTools, continueSession, etc.)
- Add openCodeConfig to SessionState
- Import SessionMode in session.ts, mux-interface.ts (remove duplicates)
- Refactor createSession/respawnPane to options objects (CreateSessionOptions, RespawnPaneOptions)
Phase 2: CLI resolver
- New opencode-cli-resolver.ts mirroring claude-cli-resolver.ts
- Searches ~/.opencode/bin, ~/.local/bin, /usr/local/bin, ~/go/bin, etc.
- Exported via utils/index.ts
Phase 3: Tmux spawn
- Extract buildSpawnCommand() shared helper (eliminates duplication)
- Add buildOpenCodeCommand() for opencode CLI flags
- Add setOpenCodeEnvVars() — API keys via tmux setenv (not visible in ps)
- Add setOpenCodeConfigContent() — JSON config via tmux setenv (prevents shell injection)
- Gate _processExpensiveParsers() for opencode mode (skip Claude-specific parsers)
- OpenCode-specific TUI ready detection (timeout-based, no ❯ prompt scanning)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-02-26 10:07:43 +01:00
arkon
1adcb7656b
chore: bump version to 0.1646
2026-02-26 00:49:36 +01:00
arkon and Claude Opus 4.6
c0368fc1a9
fix: prevent iOS zoom on input focus and pinch-to-zoom
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 00:33:13 +01:00
arkon
209cc74514
chore: bump version to 0.1645
2026-02-25 23:53:03 +01:00
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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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
arkon and Claude 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