Releases: k-l-lambda/anthroid
Releases · k-l-lambda/anthroid
v1.0.13
Changes since v1.0.12
- fix: OpenClaw local conversation history — agent now remembers previous messages
- History saved to
.sessions/session-xxx.history.jsonafter each turn - Injected as context prefix on next message
- Fixed readline race condition in session file reading (use readFileSync)
- Fixed ESM require() error in saveHistory/loadHistory
- Fixed wrong assets source directory (root/assets/ not app/src/main/assets/)
- History saved to
- fix: Conversation bulk delete now works for OpenClaw sessions
- fix: clearMessages() resets OpenClaw session for clean new conversation
- fix: deleteConversation() also removes associated .history.json file
v1.0.12
Changes since v1.0.11
- fix: tmux remote black screen — terminal content was not displayed when scroll-pause was triggered during initial layout. Now always updates text; only auto-scroll is controlled by scroll position.
- fix: correct tmux restore order —
resize-window -Afirst, thenset-window-option(prevents -A overwriting option back to "manual")
v1.0.11
Changes since v1.0.10
- fix: tmux auto-resize fully restored on disconnect (width + height)
- Save
window-sizeoption before resize, restore on disconnect - Correct command order:
resize-window -Afirst, thenset-window-option(reversed order causes -A to overwrite option back to "manual") - Dedicated
teardownScopewith idempotent disconnect
- Save
- fix: Shell injection validation (isSafe* regex on all SSH methods)
- fix: ClaudeFragment backstack listener lifecycle cleanup
- fix: ScrollChangedListener leak prevention
v1.0.10
Changes since v1.0.9
- fix: tmux auto-size restore now works reliably on disconnect
- Root cause:
teardownScope.cancel()inonCleared()killed the resize coroutine before SSH command executed - Fix: let teardownScope complete naturally (SupervisorJob + 10s SSH timeout)
- Root cause:
- fix: replaced GlobalScope with dedicated teardownScope (structured concurrency)
- fix: idempotent disconnect via
disconnectedflag - fix: full teardown serialization with
cancelAndJoin()on both sync and watch jobs
v1.0.9
Changes since v1.0.8
- fix: Shell injection prevention — validate hostname/session with safe regex, graceful early return instead of crash
- fix: ClaudeFragment backstack listener — remove in onDestroyView, prevent duplicate registration, guard stale view access
- fix: RemoteAgentFragment scroll listener leak — store reference, remove with isAlive guard in onDestroyView
- fix: Disconnect race condition — use cancelAndJoin() to serialize tmux teardown before resize restore
- feat: Auto-resize tmux window to match Anthroid terminal width (from v1.0.8)
Review: GPT-5.4 code review applied (2 rounds)
v1.0.8
Changes since v1.0.7
- feat: Auto-resize tmux window to match Anthroid terminal width. Measures monospace char width after layout, then runs
tmux resize-window -x <columns>before first capture-pane sync.
v1.0.7
Changes since v1.0.6
- fix: Use
chat.historywithrawContent=truefor full message content in OpenClaw remote view. Previously usedsessions.previewwhich hard-capped messages at 2000 chars. - requires: OpenClaw gateway with
rawContentsupport (commit56e39803)
v1.0.6
Changes since v1.0.5
- fix: Tmux mode — pause content sync when user scrolls up; resume on scroll to bottom. Down-arrow dims when paused.
- fix: Tmux mode — reliable scroll-to-bottom after content update (use explicit scrollTo instead of fullScroll).
- fix: OpenClaw remote — increase history
maxCharsfrom 2000 to 20000 to prevent long messages from being truncated. - fix: Increase
remoteSessionEventFlowbuffer from 64 to 256 to reduce streaming delta drops.
v1.0.5
Changes since v1.0.4
- feat: Enable text selection/copy on tmux terminal content (light blue highlight on dark background)
- fix: Disable outer (ClaudeFragment) input field when remote agent view is open; re-enable on back
- fix: Skip auto-scroll when user has active text selection
- Remote agent's own input field remains enabled in both tmux and OpenClaw modes
v1.0.4
Changes since v1.0.3
- feat: Separate notification channels —
gateway_streaming(LOW priority) for agent run output,gateway_messages(HIGH priority) for final chat messages - fix: Notification click now opens correct OpenClaw conversation (uses real sessionKey instead of hardcoded "gateway")
- fix: Streaming and final notifications use independent notification IDs (no longer silently replacing each other)