Releases
v0.2.0
Compare
Sorry, something went wrong.
No results found
Changelog
d216973 Merge branch 'cleanup' into daemon-arch (Phase 3.5: Socket forwarding + CompositeProvider wiring)
b8343cb Merge branch 'cleanup' into daemon-arch (Phase 4: delete old SSH code, -1987 lines)
e66cdb1 Merge branch 'daemon-arch' into stg
d936310 Merge branch 'daemon-arch' into stg (daemon architecture + optimistic UI)
166a6e7 Merge branch 'daemon-server' into daemon-arch (Phase 1: Daemon HTTP Server)
8b50cd4 Merge branch 'deploy' into daemon-arch (Phase 2.2: deploy command)
2f4a0e5 Merge branch 'fix-mirror-bugs' into daemon-arch
943622e Merge branch 'fix-remote-W' into stg
4e09dbf Merge branch 'fix-remote-activity' into stg
20195b7 Merge branch 'fix-remote-activity' into stg (_LC_WINDOW)
bb9888a Merge branch 'fix-remote-activity' into stg (window name fallback)
be1538e Merge branch 'fix-remote-prompt' into stg
69a4dcb Merge branch 'fix-ssh-func' into stg
3b33a51 Merge branch 'fix-ssh-func' into stg (PATH-based lazyclaude)
33e5a2c Merge branch 'fix-ssh-func' into stg (setup.sh inside login shell)
006fc6d Merge branch 'fixup-a' into daemon-arch (remove deploy, fix daemon startup)
84179ec Merge branch 'fixup-async' into daemon-arch (Optimistic UI + showError unification)
f6afb8f Merge branch 'fixup-cwd' into daemon-arch (proc-based CWD detection)
445b20e Merge branch 'fixup-debug' into daemon-arch (debug logging)
379382e Merge branch 'fixup-error-display' into daemon-arch (error display persists 5s)
166a9d5 Merge branch 'fixup-error-fs' into daemon-arch (error fullscreen display)
9725e2b Merge branch 'fixup-error-persist' into daemon-arch (persistent error display + Esc/C-v)
3e87a7f Merge branch 'fixup-error-window' into daemon-arch (error sessions use tmux windows)
23e2534 Merge branch 'fixup-fullscreen-error' into daemon-arch (block fullscreen on error + C-v in fullscreen)
02bcd3a Merge branch 'fixup-gc' into daemon-arch (fix GC deleting live sessions)
0d10e1e Merge branch 'fixup-lazy' into daemon-arch (defer remote connection to first operation)
4b9dbcc Merge branch 'fixup-mirror' into daemon-arch (fix WindowName, mirror KillWindow, resolveHost)
565526e Merge branch 'fixup-optimistic' into daemon-arch (optimistic session creation + CWD API)
fa19fb9 Merge branch 'fixup-path' into daemon-arch (fix Path in mirror sessions)
0571340 Merge branch 'fixup-preview-api' into daemon-arch (fix SSE + scrollback params)
367ebd0 Merge branch 'fixup-preview-api' into daemon-arch (fix all HTTPClient API paths)
47f721a Merge branch 'fixup-preview-fallback' into daemon-arch (daemon API fallback for preview/keys)
73848b7 Merge branch 'fixup-remote-final' into daemon-arch (session leader CWD + Host field + debug log)
88daaa4 Merge branch 'fixup-routing' into daemon-arch (cursor-based host routing for n/w/W/P)
1ae80fd Merge branch 'fixup-sendkeys' into daemon-arch (remote fullscreen key forwarding via daemon API)
a6ade01 Merge branch 'fixup-socket-retry' into daemon-arch (retry socket tunnel + markConnected)
e76f66c Merge branch 'fixup-spawn' into daemon-arch (wire DetectRemotePath for SSH session creation)
544bce7 Merge branch 'fixup-tests' into daemon-arch (fix daemon test paths and SSH args)
0be4903 Merge branch 'fixup-tunnel-wait' into daemon-arch (wait for tunnel port before health check)
3b02362 Merge branch 'fixup-wt-mirror' into daemon-arch (mirror windows for w/W/P/worker)
a939757 Merge branch 'framework' into daemon-arch (Phase 0: API types and interfaces)
d9cd9b6 Merge branch 'hardening' into daemon-arch (Phase 5: reconnection, UX, version check)
e057f67 Merge branch 'mirror-window' into daemon-arch (mirror window approach, -840 lines)
d8ea5be Merge branch 'prompt-search' into stg
509c97a Merge branch 'refactor' into daemon-arch (code review fixes: -1560 lines)
de19403 Merge branch 'rename-wt-path' into stg
02bca6c Merge branch 'ssh-msg' into stg
f7a558e Merge branch 'ssh-worktree' into stg
11ca7e0 Merge branch 'stg' into rename-wt-path
e7950b4 Merge branch 'stg' into rename-wt-path
c09a81e Merge branch 'tui-remote' into daemon-arch (Phase 3: RemoteProvider + HTTPClient)
42a98ee Merge branch 'tunnel' into daemon-arch (Phase 2.1+2.3: SSH Tunnel + Lifecycle)
a84e6d8 Merge commit '8237901' into feat-msg-create-cli
f31140b Revert "Merge branch 'fixup-fullscreen-error' into daemon-arch (block fullscreen on error + C-v in fullscreen)"
988a284 debug: add remote connection flow logging to /tmp/lazyclaude-debug.log
9179d24 feat: Phase 5 hardening - reconnection, UX, version check, socket health
2413caa feat: SSH support for w, W, P commands (worktree/PM operations)
eed2a54 feat: add GitRunner interface for local/SSH git command abstraction
cfb5670 feat: add HTTPClient and RemoteProvider for daemon API
e5c70a5 feat: add SSH config host chooser for 'c' key
21978fc feat: add SSH password authentication via SSH_ASKPASS mechanism
885fe93 feat: add SSH tunnel, remote daemon lifecycle, and connection manager
977f969 feat: add curl-based lazyclaude shell function for SSH remote sessions
19c204f feat: add daemon API types, interfaces, and composite provider
9727f18 feat: add daemon HTTP server with REST API and SSE notifications
dcc35af feat: add dual line numbers to DiffPopup inline format
b761e06 feat: add hook endpoints to daemon for remote tool notifications
1d04613 feat: add hook-based activity state to /msg/sessions response
d1e6751 feat: add issue message type to msg send allowlist
2d95e78 feat: add lazyclaude deploy command for remote binary deployment
1552e09 feat: add lazyclaude sessions and msg send CLI subcommands
35b784b feat: add msg create CLI subcommand and reject self-send in msg send
0538bff feat: add sessions resume command with GC'd session fallback
b485ebc feat: add tmux socket forwarding and CompositeProvider wiring (Phase 3.5)
b0f1e04 feat: add unified BuildScript for local/SSH Claude Code launch scripts
ef655eb feat: auto-build binary on TPM install if missing
4025791 feat: clean inline diff format, universal popup scroll, switch hints
e72e70e feat: enable DiffPopup for Write tool notifications
dbac149 feat: enable SSH-backed MCP editing for remote sessions (Bug 2 Phase 2)
f1452cb feat: expand log coloring to 7 categories with dim timestamps
610f0af feat: extract base.md, compose role+base prompts, add custom prompt files
e4797a7 feat: implement mirror window approach for remote session unification
29cee39 feat: improve log panel with clear, coloring, and prefix removal
66f2324 feat: move prompts to top-level dir and add custom prompt search
5d0effe feat: optimistic session creation with daemon CWD API
04f08ce feat: pass --session-id to Claude Code CLI
750b855 feat: pass window name via _LC_WINDOW env for reliable SSH activity tracking
9c89c79 feat: persist error display until dismissed, add Esc/C-v error actions
16c132a feat: route Edit tool notifications to DiffPopup
fedfd9b feat: route fullscreen key forwarding through daemon API for remote sessions
0535934 feat: show SSH host in sessions output
fdabfe1 feat: show SSH hostname on project node instead of session nodes
0cb6f5e feat: update pm/worker prompts to use msg create for spawning
529d2ce fix(bug5): document SSEToolInfoCallback lock contract + gofmt alignment
49675cf fix(bug5): route remote permission popup actions via SessionID hop
c11a0e5 fix(daemon): keep RemoteProvider session cache coherent on create/delete
95fde7e fix(daemon): resolve SSE SessionID via session store lookup
3c3228d fix(daemon): route remote scrollback through daemon API (Bug 3 Phase 2)
725ede2 fix(gui): always clear flag and reset cursors on empty-tree recovery
8b8eac6 fix(gui): disable MCP/plugin editing on remote sessions with placeholder
00e13c4 fix(gui): harden remote-disable guard against filter edge cases
f2b87f9 fix(gui): prefer live node over stale flag in guardRemoteOp
dd927c3 fix(gui): re-sync provider context inside guardRemoteOp and Esc restore
7b5c6ea fix(gui): reset projectDir to CWD when empty-tree recovery fires
a25ed88 fix(gui): resync plugin panel every layout to catch out-of-band tree rebuilds
0480869 fix(gui): sync panel state at cursor-moving paths instead of inside guard
53f554f fix(mcp): atomic SetRemote closes mixed-pair race on host/projectDir
3552c90 fix(mcp): pass host explicitly through SSH helpers to avoid mid-flight races
04546fa fix(mcp): unconditionally SetRemote on empty-tree recovery
00bc84f fix: N must use pendingHost (pane-based), not resolveHost
308a9ad fix: accept X-Claude-Code-Ide-Authorization header in daemon hook endpoints
96689f2 fix: accept all auth headers in daemon (X-Auth-Token, X-Claude-Code-Ide-Authorization)
ab9a1bd fix: add --resume flag to launcher script for session resume
29039b8 fix: add ControlMaster=no to all SSH, fix HasSession error connecting, fix CreateSession path
d444939 fix: add GC to daemon for tmux window sync and session cleanup
5ac5eaa fix: add HasActiveDialog guard and unify callback style
f075ba9 fix: add clarifying comment for pane dedup logic
0d03b31 fix: add daemon API fallback when tmux socket operations fail
b5cfa4b fix: add lazyclaude shell function to writeRemoteScript for SSH sessions
80b3edb fix: add mapping debug logs to completeRemoteCreate
e843d9f fix: add nil guard for result in handleMsgCreate
b0beee7 fix: address PM review findings (doc comments + Create hook test)
3b49b11 fix: address PM review findings for SSH askpass
20c160e fix: address codex review findings
3957215 fix: address codex review findings for Edit dispatch
6c9af1a fix: address codex review findings for session resume
8b52a73 fix: address final go-review findings
87efbe4 fix: address go-review CRITICAL and HIGH findings
0365f48 fix: address go-review HIGH and MEDIUM findings
45a1ab2 fix: address go-review HIGH and MEDIUM findings
d369725 fix: address go-review HIGH findings for Phase 3.5
029e153 fix: address go-review MEDIUM findings
69914dd fix: address go-review MEDIUM findings
986811b fix: address go-review findings
93ff1bf fix: address go-review findings
8dedf80 fix: address go-review findings
db9fc85 fix: address go-review findings
2108f28 fix: address go-review findings
38052eb fix: address go-review findings
00ec3f9 fix: address go-review findings
c6dd810 fix: address go-review findings (2x HIGH, 4x MEDIUM)
9375f0e fix: address go-review findings (3x MEDIUM)
b243a71 fix: address go-review findings (3x MEDIUM)
cd45285 fix: address go-review findings (4x MEDIUM)
00e7952 fix: address go-review findings (Role test coverage + edge case test)
a2072e1 fix: address go-review findings (remove duplicated allowlist, verify error body)
cfb1dda fix: address go-review findings for Edit dispatch
e361241 fix: address go-review findings for Phase 4
5c1a3bc fix: address go-review findings for Phase 5
3770c84 fix: address go-review findings for SSH askpass implementation
7fea153 fix: address go-review findings for SSH host chooser
f6598ec fix: address go-review findings for SSH worktree/PM support
661e829 fix: address go-review findings for command service refactoring
669ad24 fix: address go-review findings for deploy cleanup
0fa28ee fix: address go-review findings for fallback implementation
a9745d2 fix: address go-review findings for log improvements
5f02244 fix: address go-review findings for mirror window creation
66cf4cb fix: address go-review findings for mirror window fixes
500276e fix: address go-review findings for mirror window implementation
8159c50 fix: address go-review findings for proc CWD detection
811330f fix: address go-review findings for refactor
ceb31da fix: address go-review findings for remote key forwarding
12f77f5 fix: address go-review findings for scroll fix
f810da9 fix: address go-review findings for session resume
37e4c9f fix: address go-review findings for tunnel wait
5d8f135 fix: address go-review findings for tunnel/lifecycle/connection
38674da fix: address go-review findings in HTTPClient and RemoteProvider
92cf2cb fix: address go-review findings in daemon framework
a419ba7 fix: address go-review findings in daemon server
bfcf96d fix: address go-review findings — export prompt vars, remove dead code
5e31631 fix: address go-review round 2 (MarkFlagRequired, remove dead default branch)
0961226 fix: address go-review round 2 findings
fda5c17 fix: align HTTPClient API paths with daemon server routes
5bfeeca fix: align enrichWithActivity window name derivation with WindowName()
a346c05 fix: align scrollback query params and SSE endpoint with server
7bca216 fix: align visual format with plan (ExtractHunkLabel, indent, blank lines)
c6ba064 fix: allow fullscreen for error sessions, render error text as content
aa5027e fix: always show absolute paths in sessions output
51992bf fix: always show activity field in /msg/sessions response
f477591 fix: async Rename + unify error display to showError
5d265a5 fix: async Sessions cache + composite error callback
27cd08d fix: block fullscreen on error display, register error actions in fullscreen scope
7c2da95 fix: block make install from worktrees
9362d1c fix: bump generation before Exit to invalidate in-flight captures
4df686a fix: cd to session path in launcher script to prevent login shell CWD override
7a101fd fix: clamp scroll position on viewport resize
e7ee1c5 fix: clear view content and TextArea in all worktree dialogs
b67bb7f fix: create mirror windows for worktree/PM/worker remote sessions
208abcc fix: create tmux error window for failed placeholder sessions
48ff847 fix: defer remote connection to first remote operation
2ff2e04 fix: display SSH host as 'hostname: project' format
ecd9745 fix: ensure lazyclaude tmux session exists before mirror window creation + SSH E2E infra
04acf5d fix: filter negated SSH patterns and surface config errors
6475af4 fix: forward SSE activity events to local broker for remote sidebar display
32d706d fix: guard DiffAdd/DiffDel against zero line numbers
f778222 fix: handle dialog failure and sanitize SSH prompt
fe1b9bd fix: handle inline comments in SSH config Host lines
4b14a87 fix: include trailing space in dim gray timestamp region
7f7d399 fix: inject hooks settings into SSH sessions created via n/N
82a2b6e fix: make HistorySize queries async in scroll mode
446f7dc fix: make createSession, DeleteSession, PurgeOrphans async
95b3bb6 fix: match SSE session ID prefix against full UUID in activity handler
77b8059 fix: merge remote sessions into Projects() for sidebar display
5added1 fix: mouse scroll freeze and ToTop after mouse-wheel entry
226da63 fix: only mirror Running remote sessions on connect (skip dead/orphan from stale state.json)
895dbe0 fix: pass error message via env var to prevent shell injection
767ff29 fix: pass explicit projectRoot to store.Add to prevent remote worktree duplication
8fbe9cb fix: pass resolved binary path from lazyclaude.tmux to launch.sh via env var
8ca65de fix: placeholder shows 'connecting...' then replaced with real session on correct project group
8de33e9 fix: prefer PATH-installed binary in tmux plugin
2b93ca9 fix: preserve diff fields in SSE handler for remote DiffPopup
156b094 fix: preserve existing remote paths in resolveRemotePath
6a76fba fix: preserve pending window file for SSH hook resolution across PIDs
4033093 fix: prevent GC from deleting live sessions due to stale sync state
74f262b fix: prevent double blank line before first hunk
d3a43b6 fix: prevent mouse scroll from freezing by eliminating double capture
81b69fe fix: prevent preview from overwriting showError display
5e50b6a fix: prevent scroll position loss during active Claude Code output
f3591a5 fix: propagate context and add fileReader abstraction for testability
4595a63 fix: propagate daemon Path to mirror sessions
2b805d5 fix: quote sshHost in mirror SSH command to prevent shell injection
d28ac80 fix: read custom prompts from remote host via SSH for remote sessions
03a129a fix: remote activity state via session-ID hop in SSE callback
d97ea86 fix: remove deploy command, unify daemon paths, fix startup bugs
62fb204 fix: remove kill-server from test cleanup to protect live sessions
74998ea fix: remove placeholder after remote session created (shown via daemon)
811651a fix: remove plugin/MCP errMsg, use showError for all errors
099c523 fix: remove shell.Quote from buildClaudeCommand and tighten hasSessionFlag
bf749ff fix: remove unused os/exec import in fullscreen_test.go
7392970 fix: resolve 3 mirror window bugs (empty TmuxWindow, dead cleanup, currentHostFn)
09d872f fix: resolve 3 remote session creation bugs
20fedff fix: resolve SSH activity by window name fallback in enrichWithActivity
98c1057 fix: resolve cherry-pick conflicts from cleanup-cruft merge
8cd4f50 fix: resolve merge conflicts (DaemonInfo dedup, test helper renames)
750a0fb fix: resolve mirror tmux window ID eagerly at CreateMirror
b68cb33 fix: resolve remote path after connection in SessionCommandService (not before)
4a86618 fix: resolveHost must distinguish "on local node" from "no node selected"
53e9cde fix: retry daemon start when discovered daemon is stale (health check fails)
994ce8f fix: retry socket tunnel after first session creation and prevent duplicate connections
4819663 fix: return "unknown" instead of empty string for ActivityUnknown
5e3ab53 fix: route n key and remote ops based on cursor host, not only pendingHost
87cedb2 fix: route tmux ops through Session.TmuxTarget() to fix remote attach
c1ecdab fix: scope error patterns to prefix, unify timestamp constant
25872ec fix: set Path in completeRemoteCreate and ensureMirrorForRemoteSession
31559f0 fix: set ProjectRoot in PM/worker SessionCreateRequest for correct remote path
94934bc fix: set RoleWorker for CreateWorktree and ResumeWorktree
76fe2b9 fix: shell-quote sess.ID in buildClaudeCommand and writeWorktreeLauncher
73cc454 fix: simplify resolveRemotePath to always query remote CWD
207e50c fix: skip KillWindow for orphan sessions (under verification)
4989dbc fix: skip bracket wildcard patterns in ParseSSHHosts
5ab3367 fix: source setup.sh inside login shell to persist PATH across profiles
b43e884 fix: support remote lazygit launch and remote popup notifications
0d05a94 fix: surface os.UserHomeDir error in ConnectRemote
8782e77 fix: tmux lazyclaude path
a6c2e5a fix: unify daemon.json path + lazyclaude PATH fallback + add fixup plan docs
4f1cad1 fix: update daemon test expectations to match implementation
6325d55 fix: update install.sh URL from main to prod branch
5ff7274 fix: update lifecycle test to match new StartRemoteDaemon command
c678ccd fix: use --resume instead of --session-id + --resume
64316e4 fix: use /proc to detect user shell CWD in daemon endpoint
d688cfd fix: use BASH_ENV instead of export -f for lazyclaude shell function
0744461 fix: use PATH-based executable instead of BASH_ENV for lazyclaude command
d6211a7 fix: use SetOrigin for popup scroll instead of manual slicing
ace7639 fix: use WorktreePathSegment in branchFromWorktreePath and clarify path naming
c04f443 fix: use grouped tmux sessions for mirrors and add Role to SessionCreateResponse
5ec9082 fix: use host as placeholder path instead of local path
26be891 fix: use session-specific hooks settings path to avoid concurrent race
5e00b3e fix: use stored project path for SessionNode in currentProjectRoot
227905e fix: wait for SSH tunnel to become connectable before returning from Start()
f3e05e6 fix: wire DetectRemotePath into SSH session creation
6d694f6 fix: worktree dialog stale text and SSH project tree duplication
acd7de6 merge: Bug 2 Phase 1 disable MCP/plugin editing on remote (#fix-mcp-plugin-remote)
4da340e merge: Bug 2 Phase 2 SSH-backed remote MCP editing (#bug2-phase2-mcp-ssh)
c4524d7 merge: Bug 3 Phase 2 route remote scrollback via daemon API (#bug3-phase2-remote-scrollback)
33cace5 merge: Bug 5 Phase B remote popup action routing via SessionID hop (#bug5-popup-routing)
f897b5d merge: DiffPopup format overhaul with dual line numbers (#diff-popup)
e3d37fd merge: SSH config host chooser for 'c' key (#ssh-host-chooser)
dcc7262 merge: SSH password authentication via SSH_ASKPASS (#ssh-askpass)
dd6cf77 merge: add --resume flag for session resume (#resume-fix2)
742924e merge: dead code cleanup + stale comments after Bug 1-5 (#cleanup-dead-code)
8b5478a merge: final cleanup — CODEMAPS, plan archive, dead code removal (#cleanup-final)
532a127 merge: fix --resume flag to use --resume instead of --session-id + --resume (#resume-fix2)
f673a30 merge: fix Bug 4 remote activity state (3 root causes) (#fix-activity-state-key)
38e95c7 merge: fix mouse scroll freeze in scroll mode (#scroll-fix)
71df985 merge: fix remote attach via Session.TmuxTarget() helper (#fix-attach-remote)
d3b0957 merge: fix scroll position loss during active Claude Code output (#scroll-fix)
4e0c562 merge: log panel improvements with category coloring (#log-improve)
66632dc merge: pass --session-id to Claude Code CLI (#add-session-id-flag)
439c9bc merge: route Edit tool notifications to DiffPopup (#edit-diff)
c5390b9 merge: session resume with GC'd session fallback (#resume-fix2)
8f3fe8e refactor(ddmin): remove unnecessary launcher cd workaround
ffa7aae refactor: address code review findings (C-1/C-2, H-1..H-5, M-2)
bcb2a4d refactor: address go-review findings for host routing
168d67c refactor: address go-review findings for remote session fixes
ac14b3b refactor: consolidate duplicated code (debugLog, PosixQuote, pendingTools, mirror helpers)
e7e8a01 refactor: delete old SSH code paths and simplify SessionProvider (Phase 4)
6dcf14f refactor: embed MCP server in daemon, remove duplicated hook endpoints
5e70aa9 refactor: extract SessionCommandService, MirrorManager, RemoteHostManager from guiCompositeAdapter
8237901 refactor: improve PM/Worker prompt structure with checkbox-based review flow
f3a0664 refactor: integrate BuildScript and GitRunner into manager.go
490fc01 refactor: move mirror creation to RemoteProvider PostCreateHook
ae776fe refactor: remove dead code and fix stale comments after Bug 1-5
8be3c13 refactor: remove socket tunnel code and gate debug logs behind LAZYCLAUDE_DEBUG
70f6365 refactor: rename worktree path from .claude/worktrees to .lazyclaude/worktrees
0d46295 refactor: use fixed hook- prefix for PID cache keys across all handlers
0bda4f1 release: v0.2.0 — DiffPopup, session resume, log coloring, scroll fixes
You can’t perform that action at this time.