Commit Graph
3816 Commits
Author SHA1 Message Date
Neil 49c68b9b28 Merge branch 'nwparker/term-speed-2-subscribe-recovery-kind' into nwparker/term-speed-2-ack-recovery-apply 2026-06-16 16:32:21 -07:00
Neil 9a949d0925 Merge branch 'nwparker/term-speed-2-wake-session-reregister' into nwparker/term-speed-2-subscribe-recovery-kind 2026-06-16 16:32:21 -07:00
Neil 14c3642dd4 Merge branch 'nwparker/term-speed-2-hidden-sync-state-reset' into nwparker/term-speed-2-wake-session-reregister 2026-06-16 16:32:21 -07:00
Neil 720176488c Merge branch 'nwparker/term-speed-2-scale-hidden-skip-assertion' into nwparker/term-speed-2-hidden-sync-state-reset 2026-06-16 16:32:20 -07:00
Neil 63710342ef Merge branch 'nwparker/term-speed-2-model-view-contract-tests' into nwparker/term-speed-2-subscribe-overflow-snapshot 2026-06-16 16:32:20 -07:00
Neil a1774880bb Merge branch 'nwparker/term-speed-2-model-view-contract' into nwparker/term-speed-2-model-view-contract-tests 2026-06-16 16:32:19 -07:00
Neil c6bb9b9d6d Merge branch 'nwparker/term-speed-2-sleep-revisit-pressure' into nwparker/term-speed-2-runtime-ws-multiplex-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 51f90d2def Merge branch 'nwparker/term-speed-2-remote-shared-ack-drain' into nwparker/term-speed-2-rich-headless-model-gate 2026-06-16 16:30:24 -07:00
Neil 98ebd8b5c8 Merge branch 'nwparker/term-speed-2-hidden-latin-skip' into nwparker/term-speed-2-remote-shared-ack-drain 2026-06-16 16:30:23 -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 906bc0c956 Merge branch 'nwparker/term-speed-2-hidden-safe-tui-skip' into nwparker/term-speed-2-remote-ack-pending-cap 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 164ca020c0 Merge branch 'nwparker/term-speed-2-hidden-title-skip' into nwparker/term-speed-2-remote-multiplex-ack 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
Jinjing c548e85f57 Persist and repair target base branch for PR and MR worktrees (#5540)
* Resolve and fetch the review target branch (compareBaseRef) during PR and MR worktree creation.
* Persist this ref on worktree metadata instead of pinning the head SHA.
* Dynamically repair existing worktrees with stale commit SHA compare bases in the Source Control UI using linked review metadata.
2026-06-16 15:51:55 -07:00
gsxdsm f9e3c3945e fix(web): keep hover-reveal action icons visible on touch devices
Fix hover-reveal action icons so touch/no-hover environments keep controls visible while hover-capable desktop behavior remains unchanged.\n\nAlso covers touch-safe swap cases where passive timestamp/sparkline content shares a slot with newly visible actions.
2026-06-16 15:46:06 -07:00
slashdevcorpse 140151d5cd Recognize shell-rooted Windows agent foregrounds (#5503)
Recognize shell-rooted Windows agent foregrounds.
2026-06-16 15:40:08 -07:00
Jinjing f6fec257eb Ignore merged pull requests found by implicit branch matches (#5524)
Merged pull requests are historical branch matches and should not be
treated as implicit review context unless the worktree has an explicit
PR link. Showing them as implicit review context leaves nothing
meaningful to unlink after the branch has been rebased or merged.
2026-06-16 15:39:57 -07:00
Neil 2e93b6002e Update usage tracking CTA copy (#5539) 2026-06-16 15:38:45 -07:00
Jinjing a300e2c7b4 Add Source Control Create PR flow (#5436)
* Add Source Control Create PR intent flow

Implements the Source Control Create PR flow described in docs/source-control-create-pr-flow.md.

* Keep Commit visible beside Create PR

* Fix Create PR partial staging action band

* Integrate hosted review creation into Create PR intent flow

- Automatically create the pull or merge request on GitHub/GitLab after
  successfully staging, committing, and pushing in the intent flow.
- Introduce a unified `updateCommitDrafts` helper to keep React state and
  its ref synchronized, preventing draft-overwrite race conditions.
- Split primary action tests into focused files to satisfy the ESLint
  `max-lines` rule.
- Replace hardcoded "Local Mac" strings with dynamic host labels.

* Support Azure DevOps and Gitea PR creation and limit large diffs

Implement automated pull request creation for Azure DevOps and Gitea
repositories. This includes REST API integration, credential checks via
environment variables, template support, and error classification.

Additionally, introduce limits on large diff payloads in git status
extraction to prevent renderer-freezing performance bottlenecks when
loading extremely large files.

* Skip source control refetches when PR creation intent is in flight

Avoid recomputing branch eligibility while isCreatePrIntentInFlight is true.
This prevents tearing down the PR composer or rotating dropdown hints
prematurely if ahead/behind or dirty states are temporarily perturbed
temporarily perturbed mid-flow.

* Expose manual prerequisite actions next to Create PR button

Previously, the Create PR intent only supported "Stage All" as a
sibling action. This expands prerequisite resolution to handle other
intermediate steps such as committing, publishing, and pushing
(including force pushing).

This ensures the edit-commit-push-review loop remains streamlined
directly within the CommitArea by displaying the specific required
next action beside the primary Create PR button.

* Move PR creation actions from CommitArea to sidebar header

- Decouples PR creation and PR intent actions from the local commit area
  primary button, ensuring local/remote git actions remain primary.
- Renders a dedicated PR creation button in the source control header
  beside the hosted review status.
- Simplifies CommitArea by removing prerequisite split-button rendering
  and review composer logic.

* Delete source control create PR flow design document

Remove the design document for the source control create PR flow as the feature has been successfully implemented.

* Display PR creation errors in inline notice

Unify PR/review creation error reporting by replacing the duplicate
createPrErrors state with the shared createPrIntentNotice. Validation
and API errors are now shown directly within the visible inline alert
notice to improve layout consistency and visibility.

Also refactor the execution host platform label lookup to use simple
if statements instead of a switch block.

* Improve Create PR intent flow safety and provider awareness

- Integrate the hosted review composer directly into the Source Control
  panel when a direct review creation action is available.
- Abort the in-flight PR creation intent flow early if the current git
  branch changes to prevent staging or committing on the wrong target.
- Keep in-flight action labels provider-aware (e.g., "Create MR" on GitLab)
  by passing hosted review inputs to the action resolver.
- Omit large diff text payloads from git status responses when line counts
  exceed safe rendering limits to avoid UI performance degradation.
- Ensure field generation does not retarget the base branch of a PR/MR without
  explicit user confirmation.

* Preserve PR and MR templates in AI pull request generation

- Preload templates (including GitLab merge requests) into the AI
  context before generation to prevent bypassing provider-side fallbacks.
- Instruct the AI generator to fill out and preserve existing template
  headings, required sections, and checklists instead of deleting them.
- Pass provider and template settings from the renderer to the backend
  RPC and runtime handlers.

* Mock DropdownMenuShortcut in tab-title-tooltip test

Add a mock for the DropdownMenuShortcut component in the dropdown menu
mock to prevent test failures.
2026-06-16 15:36:27 -07:00
JinjingandOrca ca05dbf652 Fix PR check full-details worktree routing (#5529)
* Fix view full details button to use correct worktree and sticky header

- Pin a sticky bar with check name and "View full logs" button inside expanded check details so the affordance stays visible while scrolling through annotations and job output
- Accept an explicit `worktreeId` prop so folder-workspace PR checks use the child worktree ID rather than the (non-existent) active worktree
- Show "View full logs" when log tail is available, "View full details" otherwise

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

* fix: address review findings

* fix: address CI failures

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-16 15:31:10 -07:00
Neil 593b3e1d7a Merge branch 'nwparker/term-speed-2-subscribe-recovery-kind' into nwparker/term-speed-2-ack-recovery-apply 2026-06-16 15:23:13 -07:00
Neil 0807ef0fa7 Merge branch 'nwparker/term-speed-2-wake-session-reregister' into nwparker/term-speed-2-subscribe-recovery-kind 2026-06-16 15:23:12 -07:00
Neil 6cc2dd186a Merge branch 'nwparker/term-speed-2-hidden-sync-state-reset' into nwparker/term-speed-2-wake-session-reregister
# Conflicts:
#	src/main/daemon/history-manager.ts
2026-06-16 15:23:02 -07:00
Neil cbef2e1563 Merge branch 'nwparker/term-speed-2-scale-hidden-skip-assertion' into nwparker/term-speed-2-hidden-sync-state-reset 2026-06-16 15:22:16 -07:00
Brennan Benson d625079c4d Disable first-work folder rename (#5535) 2026-06-16 15:20:55 -07:00
Neil ba568fb782 Merge branch 'nwparker/term-speed-2-model-view-contract-tests' into nwparker/term-speed-2-subscribe-overflow-snapshot 2026-06-16 15:19:26 -07:00
Neil 500c505bb3 Merge branch 'nwparker/term-speed-2-model-view-contract' into nwparker/term-speed-2-model-view-contract-tests 2026-06-16 15:19:25 -07:00
Neil 7252c94076 Merge branch 'nwparker/term-speed-2-sleep-revisit-pressure' into nwparker/term-speed-2-runtime-ws-multiplex-pressure 2026-06-16 15:19:21 -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 c50a99c37e Merge branch 'nwparker/term-speed-2-remote-shared-ack-drain' into nwparker/term-speed-2-rich-headless-model-gate 2026-06-16 15:15:04 -07:00
Neil 52e52d2e8d Merge branch 'nwparker/term-speed-2-hidden-latin-skip' into nwparker/term-speed-2-remote-shared-ack-drain 2026-06-16 15:15:03 -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 5a37c14266 Merge branch 'nwparker/term-speed-2-hidden-safe-tui-skip' into nwparker/term-speed-2-remote-ack-pending-cap 2026-06-16 15:13:28 -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 0ffd9fbd3d Merge branch 'nwparker/term-speed-2-hidden-title-skip' into nwparker/term-speed-2-remote-multiplex-ack 2026-06-16 15:11:57 -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