Commit Graph
258 Commits
Author SHA1 Message Date
Neil b57726c05a Merge branch 'nwparker/term-speed-2-side-effect-cleanup' into nwparker/term-speed-2-hidden-delivery-gate 2026-06-16 16:32:24 -07:00
Neil 433387f013 Merge branch 'nwparker/term-speed-2-perf-report-comparison' into nwparker/term-speed-2-hidden-view-parking 2026-06-16 16:32:22 -07:00
Neil 93af8cf3dc Merge branch 'nwparker/term-speed-2-subscribe-overflow-snapshot' into nwparker/term-speed-2-scale-hidden-skip-assertion 2026-06-16 16:32:20 -07:00
Neil cd0f4ef12a Merge branch 'nwparker/term-speed-2-runtime-ws-multiplex-pressure' into nwparker/term-speed-2-perf-html-report
# Conflicts:
#	tests/e2e/terminal-raw-emoji-table-scroll-restore.spec.ts
2026-06-16 16:32:04 -07:00
Neil 96e2b7ff1c Merge branch 'nwparker/term-speed-2-remote-multiplex-e2e-pressure' into nwparker/term-speed-2-sleep-revisit-pressure 2026-06-16 16:31:21 -07:00
Neil 91bc954b7b Merge branch 'nwparker/term-speed-2-rich-hidden-model-default' into nwparker/term-speed-2-remote-multiplex-e2e-pressure 2026-06-16 16:31:21 -07:00
Neil d9fcc26c9f Merge branch 'nwparker/term-speed-2-rich-hidden-model-pressure' into nwparker/term-speed-2-rich-hidden-model-default
# Conflicts:
#	tests/e2e/terminal-long-table-scroll-restore.spec.ts
2026-06-16 16:31:04 -07:00
Neil 18a8b28965 Merge branch 'nwparker/term-speed-2-rich-hidden-model-prototype' into nwparker/term-speed-2-rich-hidden-model-pressure 2026-06-16 16:30:24 -07:00
Neil fbc811b171 Merge branch 'nwparker/term-speed-2-rich-headless-model-gate' into nwparker/term-speed-2-rich-hidden-model-prototype 2026-06-16 16:30:24 -07:00
Neil b6460f3b47 Merge branch 'nwparker/term-speed-2-remote-ack-pending-cap' into nwparker/term-speed-2-hidden-latin-skip 2026-06-16 16:30:23 -07:00
Neil 05655e06aa Merge branch 'nwparker/term-speed-2-remote-multiplex-ack' into nwparker/term-speed-2-hidden-safe-tui-skip 2026-06-16 16:30:22 -07:00
Neil 38d8e5c23f Merge branch 'nwparker/term-speed-2-active-priority-drain' into nwparker/term-speed-2-hidden-title-skip 2026-06-16 16:30:21 -07:00
Neil c5c17b3b6a Merge branch 'nwparker/term-speed-2-hidden-plain-skip' into nwparker/term-speed-2-active-priority-drain 2026-06-16 16:30:21 -07:00
Neil 21fe394a79 Merge branch 'nwparker/term-speed-2-backpressure-cap' into nwparker/term-speed-2-hidden-plain-skip 2026-06-16 16:30:21 -07:00
Neil 782ae38329 Merge remote-tracking branch 'origin/main' into nwparker/term-speed-2-backpressure-cap 2026-06-16 16:29:10 -07:00
Brennan BensonandOrca 1ce1d4c291 Stabilize terminal rendering release checks (#5533)
Co-authored-by: Orca <help@stably.ai>
2026-06-16 15:45:02 -07:00
Neil c496189643 Merge branch 'nwparker/term-speed-2-side-effect-cleanup' into nwparker/term-speed-2-hidden-delivery-gate
# Conflicts:
#	src/preload/api-types.ts
#	src/preload/index.ts
#	src/renderer/src/components/terminal-pane/pty-connection.ts
2026-06-16 15:44:21 -07:00
Neil 479a60fa55 Merge branch 'nwparker/term-speed-2-perf-report-comparison' into nwparker/term-speed-2-hidden-view-parking
# Conflicts:
#	src/preload/e2e-config.ts
#	src/renderer/src/components/Terminal.tsx
#	src/renderer/src/store/slices/terminals.ts
#	tests/e2e/helpers/orca-app.ts
2026-06-16 15:25:39 -07:00
Neil 511611a6d2 Merge branch 'nwparker/term-speed-2-subscribe-overflow-snapshot' into nwparker/term-speed-2-scale-hidden-skip-assertion
# Conflicts:
#	tests/e2e/global-setup.ts
2026-06-16 15:21:50 -07:00
Neil 85940afbd3 Merge branch 'nwparker/term-speed-2-runtime-ws-multiplex-pressure' into nwparker/term-speed-2-perf-html-report 2026-06-16 15:19:22 -07:00
Neil 844118cef4 Merge branch 'nwparker/term-speed-2-remote-multiplex-e2e-pressure' into nwparker/term-speed-2-sleep-revisit-pressure 2026-06-16 15:19:20 -07:00
Neil 9881abcd93 Merge branch 'nwparker/term-speed-2-rich-hidden-model-default' into nwparker/term-speed-2-remote-multiplex-e2e-pressure
# Conflicts:
#	tests/e2e/ssh-docker-relay-perf.spec.ts
2026-06-16 15:19:06 -07:00
Neil 2ace9749f1 Merge branch 'nwparker/term-speed-2-rich-hidden-model-pressure' into nwparker/term-speed-2-rich-hidden-model-default
# Conflicts:
#	src/renderer/src/components/terminal-pane/pty-connection.ts
2026-06-16 15:17:43 -07:00
Neil da23f22b19 Merge branch 'nwparker/term-speed-2-rich-hidden-model-prototype' into nwparker/term-speed-2-rich-hidden-model-pressure 2026-06-16 15:16:55 -07:00
Neil 9f24db7d1b Merge branch 'nwparker/term-speed-2-rich-headless-model-gate' into nwparker/term-speed-2-rich-hidden-model-prototype
# Conflicts:
#	src/renderer/src/components/terminal-pane/pty-connection.ts
2026-06-16 15:16:41 -07:00
Neil 393edfb0b9 Merge branch 'nwparker/term-speed-2-remote-ack-pending-cap' into nwparker/term-speed-2-hidden-latin-skip
# Conflicts:
#	src/main/daemon/daemon-pty-adapter.ts
#	src/renderer/src/components/terminal-pane/pty-connection.ts
2026-06-16 15:14:47 -07:00
Neil b4aa1ce270 Merge branch 'nwparker/term-speed-2-remote-multiplex-ack' into nwparker/term-speed-2-hidden-safe-tui-skip
# Conflicts:
#	src/renderer/src/components/terminal-pane/pty-connection.test.ts
2026-06-16 15:13:12 -07:00
Neil ec9e0ed2b1 Merge branch 'nwparker/term-speed-2-active-priority-drain' into nwparker/term-speed-2-hidden-title-skip
# Conflicts:
#	src/renderer/src/components/terminal-pane/pty-connection.test.ts
2026-06-16 15:11:41 -07:00
Neil 1fdded3f47 Merge branch 'nwparker/term-speed-2-hidden-plain-skip' into nwparker/term-speed-2-active-priority-drain 2026-06-16 15:11:02 -07:00
Neil 965c6f74ee Merge branch 'nwparker/term-speed-2-backpressure-cap' into nwparker/term-speed-2-hidden-plain-skip
# Conflicts:
#	src/renderer/src/components/terminal-pane/pty-connection.test.ts
#	src/renderer/src/components/terminal-pane/pty-connection.ts
2026-06-16 15:08:05 -07:00
Neil cc8d5a932d Merge remote-tracking branch 'origin/main' into nwparker/term-speed-2-backpressure-cap
# Conflicts:
#	tests/e2e/terminal-hidden-tui-visual-restore.spec.ts
2026-06-16 15:05:57 -07:00
OrcaWinandNeil 68abadba81 Add Windows terminal onboarding step (#5488)
Co-authored-by: Neil <neil@stably.ai>
2026-06-16 14:07:26 -07:00
Jinjing 2740cba2bf Focus workspace name field initially in new workspace dialog (#5456)
- Shifts the initial autofocus from the project combobox to the smart
  name input or pre-filled source pill so users can start typing
  immediately.
- Pins the typed text action row (e.g., "Use name...") to the top of
  the search results dropdown with a sticky header.
- Accepts an external GitHub source context override in the smart name
  field to improve contextual suggestions.
- Updates unit and E2E tests to verify the new focus target behavior.
2026-06-16 00:19:42 -07:00
Jinjing aee2c0a6a4 Limit large git diff payloads in main process before IPC transfer (#5469)
* Limit large git diff payloads in main process before IPC transfer

Move the large diff rendering limit check to a shared module so that
the main process can evaluate diff sizes before transferring them. If
a diff exceeds the limits, its text content is dropped prior to IPC
serialization, and only the limit metadata is sent. This prevents the
application from freezing or crashing when loading massive diff files.

* Gracefully handle and prune oversized files in diff viewer

Prevent UI freezes and out-of-memory errors when viewing or editing
extremely large diffs or files. Working-tree files above 10MB and git
buffer overflows are treated as binary. Text diffs exceeding safe
rendering limits have their contents pruned before IPC transport, and
the UI is updated to show fallback states and disable invalid saves.

* Document save action check for large diffs and fix test import

Explain why saveContentAvailable is required for oversized diffs, as
stripped text bodies before IPC prevent complete saves. Also update the
large-diff-render-limit import in E2E tests to use the shared path.
2026-06-15 22:13:46 -07:00
OrcaWinandNeil 52f2a32e62 Fix settings search fan-out (#5452)
Co-authored-by: Neil <neil@stably.ai>
2026-06-15 20:52:06 -07:00
Brennan Benson 9e6afad545 Prevent large diffs from freezing the diff view (#5409) 2026-06-15 14:39:56 -07:00
Jinwoo HongandOrca 1d85515a3e fix: bound gh cli detail calls (#5413)
Co-authored-by: Orca <help@stably.ai>
2026-06-15 13:37:50 -07:00
Jinwoo HongandOrca 719ae00009 Fix remote runtime tab and agent status UX (#5341)
Co-authored-by: Orca <help@stably.ai>
2026-06-14 01:48:26 -07:00
Jinwoo HongandOrca 630bcce530 fix: replace per-5s full-buffer terminal checkpoints with an incremental log (#5292)
Co-authored-by: Orca <help@stably.ai>
2026-06-12 16:31:24 -07:00
Jinjing 2899a60872 Durable persistence for commit message generation across worktree switches (#5243)
* Persist commit message generation state across worktree switches

Introduce a new global store slice for commit message generation to prevent
in-flight requests from being orphaned or lost when the Source Control
sidebar is unmounted or when switching between worktrees.

- Key commit generation records by worktree ID/path in the Zustand store
- Hydrate completed messages back into the draft input when returning to
  the originating worktree without overwriting active user edits
- Ensure the agent-selection dialog state remains bound to the target
  worktree that initiated the generation
- Wait for the PR composer eligibility check before hydrating completed
  PR field generations on sidebar remounts

* Route cancellations to starting runtime and prune stale worktree records

Ensure commit message and pull request generation cancellation requests
are always routed to the runtime environment that was selected when
the generation started, even if active settings change before
cancellation.

Additionally, prune commit message and pull request generation records
when worktrees are removed to prevent stale records from lingering in
the store.
2026-06-11 23:36:46 -07:00
Jinjing 4d0c449378 Support project reordering with groups and add manual-default notice (#5237)
* Support project reordering with groups and add manual-default notice

Refactors the project header drag-and-drop implementation to work correctly
with project groups by tracking ordering within buckets and updating project
group assignments on drop. Also introduces a dismissible sidebar education
card notifying upgraded profiles that manual project ordering is now the default.

* Split oversized translated UI modules

* Fix localized option test regressions
2026-06-11 20:39:39 -07:00
Jinwoo HongandOrca b09d7124c4 Persist agent provider sessions at quit and resume them on cold restore (#5240)
Agent provider session ids lived only in the in-memory
agentStatusByPaneKey map, so a daemon/session death while the app was
closed (reboot, crash, update kill) left nothing to resume from -
terminals cold-restored as plain shells with no Claude/Codex/Gemini
session (#5232, Bug 2).

The quit flush now captures resumable live agents into the persisted
sleeping-session map with origin 'quit'. Quit-origin records are
consumed only by the pane-level cold-restore resume (which injects the
agent's resume command into the replacement shell); worktree activation
skips them so a warm-reattached agent never gets a duplicate resume
tab. Sleep-origin behavior is unchanged, and a warm reattach clears the
record on the agent's next status event.

Co-authored-by: Orca <help@stably.ai>
2026-06-11 20:17:23 -07:00
Jinwoo HongandOrca 4df412f18e Keep restored terminals on daemon PTYs when startup is slow (#5234)
The 12s first-window timeout used to abort daemon init and open the PTY
spawn gate, so a slow (but succeeding) daemon start flipped restored
panes onto LocalPtyProvider fallback terminals. Those are killed on app
quit and their numeric ids overwrite the persisted daemon session ids,
permanently orphaning the live daemon sessions (#5232, Bug 1).

The window still fails open at 12s, but the PTY gate now waits for the
service attempts themselves and only fails open (aborting the services)
at a 60s deadlock backstop. Failure fallback is unchanged: a daemon init
that errors still resolves the gate onto the local provider.

Co-authored-by: Orca <help@stably.ai>
2026-06-11 20:17:15 -07:00
Jinwoo HongandOrca 0b19195fd9 Remove startup PTY spawn health probe and guard daemon replacement with live-session check (#5230)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 19:00:44 -07:00
Brennan BensonandOrca 7414f17376 test: stabilize release e2e checks (#5212)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:46:43 -07:00
Neil 9ceabb43b6 Default agent launches to yolo permissions mode (#5145)
* Default agent launches to yolo mode

* test: update launch default validations
2026-06-10 21:14:53 -07:00
Jinjing 215094ea14 Expose E2E store via build mode 2026-06-10 17:23:12 -07:00
NeilandOrca 62b6d012ca Gate PTY delivery to hidden terminal views
Co-authored-by: Orca <help@stably.ai>
2026-06-10 17:10:09 -07:00
Jinwoo HongandOrca 36ab59d640 Reset WebGL glyph atlases globally to stop cross-terminal glyph corruption (#5122)
Co-authored-by: Orca <help@stably.ai>
2026-06-10 13:41:05 -07:00
NeilandOrca 8aaf1daf54 Benchmark parked hidden terminal memory
Co-authored-by: Orca <help@stably.ai>
2026-06-09 21:42:47 -07:00