implement builtin.claude per D-041
test / unit + widget + golden + a11y (push) Failing after 45s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / unit + widget + golden + a11y (push) Failing after 45s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
Tier-0 stub flipped to the real Claude pane. Primary-per-repo semantics: session name is `clide-claude-<hash>` where <hash> is FNV-1a over the workspace root path, so reopening clide attaches to the same `claude` process through `tmux new-session -A`. Primary has no close button — closing the tab disposes the widget but deliberately does NOT call pane.close, so the tmux session survives until the user actually exits claude or clide is shut down. Secondary sessions (spawned via the claude.new-secondary command registered here, UI wiring lands next) close normally and the pane.close cascades into tmux kill-session. Graceful fallback when tmux isn't on PATH: retries the spawn with argv=['claude'], surfaces "no-tmux · fresh every launch" in the header subtitle so the user knows persistence is off. Session-naming unit tests cover determinism + uniqueness per repo. Full app suite: 174 tests passing. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,18 @@ heading, and (b) bumping `project.yaml` `version:` in the same commit.
|
||||
|
||||
### Added
|
||||
|
||||
- `builtin.claude` — Tier-1 stub upgraded to the real Claude pane per
|
||||
D-041. Contributes a primary `Claude` tab in the workspace slot that
|
||||
spawns `tmux new-session -A -s clide-claude-<hash> -- claude` via
|
||||
IPC `pane.spawn`, with `<hash>` derived from the git root path so
|
||||
reopening the app re-attaches to the running conversation. Primary
|
||||
has no close affordance; closing the tab doesn't kill the session.
|
||||
Command `claude.new-secondary` is registered for the palette wiring
|
||||
that's coming next. If tmux isn't on PATH, falls back to spawning
|
||||
`claude` directly and surfaces "no-tmux · fresh every launch" in
|
||||
the header subtitle. Accompanied by D-041 in
|
||||
[`decisions/architecture.md`](decisions/architecture.md#d-041-claude-panes-one-primary-per-repo-tmux-backed).
|
||||
|
||||
- `builtin.files` — workspace filesystem panel in the sidebar. Lazy
|
||||
tree rooted at the git root, expand/collapse, click-to-open plumbed
|
||||
to a future `editor.open` command. Backed by a new daemon-side
|
||||
|
||||
Reference in New Issue
Block a user