Commit Graph
4648 Commits
Author SHA1 Message Date
Jinwoo-HandOrca 359cb1baef Persist project host setup method
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:59 -07:00
Jinwoo-HandOrca b57f9e4914 Clone project host setup from composer
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:59 -07:00
Jinwoo-HandOrca 7951a1f3c1 Import missing project host from composer
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:59 -07:00
Jinwoo-HandOrca e0ef859772 Show unavailable hosts in workspace run target
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 9a9d00af9f Show host context in project sidebar groups
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 4e46a190d3 Update project-first sidebar status
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 1918722518 Keep projects outermost in default sidebar view
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 04be7db8f5 Update project host model implementation status
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 69982d07c7 Add project host existing-folder setup form
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca fb27990abe Stabilize project host setup settings selector
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 2994730c32 Make project host setup settings navigable
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 47dea939c9 Add project host setup settings summary
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 47a8343950 Add workspace host setup picker
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca d05ec67e2b Allow CLI worktree creation by project host setup
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 0a4a4ddbd1 Add project host setup CLI commands
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca a6e31235de Summarize project-first host model discussion
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca cbdd3618d1 Add project host setup existing folder API
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 15a04d18a9 Stamp workspace ownership with project host setup
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 8ba888a0a2 Resolve workspace creation through project host setups
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 3ce3066a54 Document project-first host model discussion
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca e1bfee7381 Group sidebar rows by project setup
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca a730ba0b8d Expose project host setup APIs
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 6641845285 Add project-first compatibility persistence
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:57 -07:00
Jinwoo-HandOrca d637222c2e Checkpoint multi-host sidebar and project-first notes
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:57 -07:00
Jinwoo-HandOrca d08c8c01bd Revert host-section row indent
The two-tier sticky host card now provides continuous 'inside this
machine' context at any scroll depth, making the static indent
redundant — and it cost 12px of sidebar width on every row while
making multi-host layouts misalign with single-host ones. Host cards
bracketing their sections plus the pinned header carry the ownership
signal on their own.

Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:32:56 -07:00
Jinwoo-HandOrca eb456a94e6 Two-tier sticky headers: pinned host card above pinned group header
When scrolling inside a host section, the host card now stays pinned at
the top (z-30) while project/status group headers hand off beneath it
(z-20, offset by the pinned card height). The host is the outer
hierarchy level, so it is the most persistent context — previously the
first repo header replaced it, losing 'which machine am I on' exactly
when it mattered. The pinned card keeps its collapse/menu/warning
affordances. Handoff rules: the next host card pushes the previous one
out at the viewport top; a group pins only once it reaches the slot
beneath the host card, and a previous host's group can never pin under
the next host. Without host sections the logic degrades to the original
single-tier behavior.

Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:32:56 -07:00
Jinwoo-HandOrca e70820a055 Anchor host badge to its label, indent rows under host cards
Sidebar polish from review:
- The count badge sat in dead space between the label and the
  hover-only chevron/menu; it now hugs the label like repo headers
- Rows under a host card get a left inset so projects and workspaces
  visibly belong to the machine above them
- A host whose only visible row is a collapsed repo group counted 0
  while the group badge said 9; host counts now fall back to header
  counts for groups contributing no visible items

Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:32:56 -07:00
Jinwoo-HandOrca 481b44ec64 Restore the outlined server card for host headers
Feedback: the bordered card with the server glyph made it clearer that
a host section is a separate machine, not just another group. Bring
that back while keeping the recent quieting: no status dot when
healthy (marks only for connecting/blocked/error/disconnected), no
'This computer' detail on the local host, and collapse/menu/count
behavior unchanged.

Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:32:56 -07:00
Jinwoo-HandOrca 0ebfaf05a7 Quiet multi-host sidebar: no persistent strip, label-style host headers
Design feedback: the All-hosts view stacked redundant chrome (server
icon three times, status dots everywhere, a strip repeating what the
headers below said).

- The scope strip no longer renders in All-hosts view — host section
  headers tell the story, and scope switching lives in the workspace
  options menu. When scoped to one host it becomes a slim
  '<host> only · ✕ All hosts' return banner
- Host headers are now quiet uppercase muted labels (no server icon),
  with a transport suffix only for remote hosts and a status mark only
  when a host needs attention (connecting/blocked/error/disconnected);
  healthy hosts show nothing
- Collapse, hover chevron, count badge, and the host menu are unchanged

Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:32:56 -07:00
Jinwoo-HandOrca 38b908ade3 Remove redundant 'Focus this host' from the host header menu
The host scope strip is the single scoping control (the design doc
explicitly forbids a separate focused-host toggle), and decluttering is
now served by collapsing host sections. A second entry point with a
different verb invented a third concept where two suffice: the strip is
where work goes, the header is a group you can fold.

Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:32:56 -07:00
Jinwoo-HandOrca 4ce1b2d201 Make host sections collapsible and suppress them for single-host lists
Sidebar usability fixes for the multi-host grouping, from review feedback:
- A lone host section is noise: host headers now render only when at
  least two hosts have visible workspaces, so a 6-host registry with
  only local work shows today's plain sidebar
- Host sections collapse/expand like other sidebar groups (persisted
  via the existing collapsed-group keys; chevron on hover; menu clicks
  don't toggle)
- Host headers restyled from bordered cards to the group-label idiom so
  the scope strip (a filter) and host headers (group labels) read as
  different tiers
- Scope strip shows '{n} connected' instead of the raw saved-host count

Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:31:30 -07:00
Jinwoo Hong 17188f503a fix(i18n): stop visible placeholders in Create PR and related UI (#5063) 2026-06-11 12:31:30 -07:00
Jinwoo HongandOrca 3c84be9764 fix(mobile): recover Android remote sessions without an app restart (#5061)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:30:28 -07:00
Brennan Benson a9e81c3fa5 Show full details for child worktree cards (#5056) 2026-06-11 12:30:28 -07:00
NeilandOrca b3c942457a Replace pasted work-item URLs with title-derived workspace names (#5059)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:28:53 -07:00
Brennan Benson 6cb1d5bb53 Fix worktree card border-radius for multi-selected state (#5058) 2026-06-11 12:28:53 -07:00
NeilandOrca d7f431d9cf Re-enable WebGL for remote-runtime terminals (#5048)
PR #4946 forced terminalGpuAcceleration to 'off' whenever a remote
runtime environment is active, as a conservative workaround alongside
the real fixes (CSS anchor-name encoding and rebuilding the WebGL
renderer after replay bytes parse). That left every remote-runtime
terminal on the slower DOM renderer even though the post-replay
rebuildPaneWebgl already covers the snapshot-after-attach race.

Remove the forced-off resolver so remote-runtime panes honor the user
GPU setting again. The snapshot path (onSnapshot -> processData with
replayingBufferedData -> onReplayData -> rebuildPaneWebgl after parse)
keeps the glyph atlas in sync, and attachWebgl re-checks all guards
(gpuRenderingEnabled, deferred attachment, context loss) on rebuild.

Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:28:53 -07:00
Brennan BensonandOrca f71df6a434 Fix shortcut chip floating right in Cmd-J palette tip on Windows/Linux (#4921)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:28:53 -07:00
Jinjing 3569c6fe22 fix: address review findings (#5055) 2026-06-11 12:28:53 -07:00
Jinjing 9e81af8ae3 Preserve floating workspace state after restart (#5047)
* Preserve floating workspace state during restart purge

* rm doc
2026-06-11 12:27:57 -07:00
Brennan BensonandOrca 6255c5dabd Add Project modal: roving keyboard selection (#5052)
* Make Add Project highlight a roving keyboard selection

The Add Project modal previously rendered Browse folder as a permanently
filled "primary" card with a static ⏎ chip. Turn that white fill + ⏎ chip
into a roving selection indicator driven by keyboard focus: Browse starts
selected (it is autofocused on open), and Tab or ↑/↓ move the highlight —
and the ⏎ chip — to whichever action is focused, so Enter's target is always
the highlighted row.

Also flatten the unselected Browse card's surface to bg-background so it
matches the secondary rows instead of showing the outline variant's lighter
tinted/shadowed surface.

ShortcutKeyCombo gains an optional keyCapClassName so the ⏎ chip can tint
itself for the filled surface.

Co-authored-by: Orca <help@stably.ai>

* Drop focus ring on selected Browse card so it stays borderless

The primary Browse card uses the Button component, whose base styles always
draw a focus-visible border + ring. Because Browse is autofocused-and-selected
on open, that ring rendered as a border on only the top card, unlike the
filled secondary rows. Suppress the ring on the selected state (the fill + ⏎
chip already indicate focus, since focus drives selection) and add a
transparent border to hold the box size steady across the outline↔default swap.

Co-authored-by: Orca <help@stably.ai>

* Fix add project action selection accessibility

Co-authored-by: Orca <help@stably.ai>

* Refine add project action outlines

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:26:34 -07:00
Jinwoo HongandOrca 2080298ee3 Allow Claude account changes with live sessions (#5054)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:26:34 -07:00
NeilandOrca 8cfa15b9ef Restore slim terminal scrollbar (xterm width: 7) (#5051)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:26:34 -07:00
Jinwoo Hong b5d9f3da8b Add Simplified Chinese, Korean, and Japanese UI localization (#5046) 2026-06-11 12:26:34 -07:00
Jinwoo HongandOrca df0bafaf53 Fix terminal read for blank TUI tails (#5050)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:25:50 -07:00
Jinwoo HongandOrca deb10db787 Fix status bar usage separator entity (#5053)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:25:50 -07:00
github-actions[bot] 571ee3614f release: v1.4.55-rc.0 [rc-slot:2026-06-09-15] 2026-06-11 12:25:50 -07:00
Jinwoo HongandOrca 05c7030867 Resume agents after PTY cold restore (#5045)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:25:50 -07:00
Jinwoo-HandOrca 6b437f9820 Per-host setting overrides, host rename/remove, regression fixes
- hostSettingOverrides on GlobalSettings with effective = host override
  ?? client default (src/shared/host-setting-overrides.ts, tested);
  Apply-to scope selector on Workspace Directory with override
  indicator and reset
- Host display-label overrides flow through the registry so Rename in
  the host header menu updates every sidebar surface; Remove confirms
  then reuses the existing ssh-target cleanup (runtime hosts deep-link
  to the servers pane)
- Fix branch test regressions vs main: lineage fixture gains the
  workspaceHostScope field, dropdown mock gains DropdownMenuLabel, CLI
  terminal-create assertion reflects owner-scoped environmentId, repo
  fixtures expect intentional executionHostId stamping
- Split launch-work-item-direct types and WorktreeMetaDialog issue-link
  hook + save-payload builder into focused modules (max-lines)

Co-authored-by: Orca <help@stably.ai>
2026-06-09 20:03:50 -07:00
Jinwoo-HandOrca 1384d9f6bf Live runtime status in sidebar; focused-host creation default; SSH auth-needed label
- New runtime-status slice holds per-environment status (boot hydration,
  settings-pane probes, host-header checks all write through it); stale
  environments dropped on list reload
- buildSidebarHostOptions forwards live status to the host registry at
  all call sites, so compat verdicts and blocked health render in the
  scope strip, options menu, host headers, and browser pane
- New-workspace composer defaults to a repo on the focused host scope
  (explicit draft/initial/active choices still win)
- SSH hosts with expired auth say "Authentication needed" in the host
  header instead of icon-only

Co-authored-by: Orca <help@stably.ai>
2026-06-09 19:39:07 -07:00