Skip to content

Fix task page labels after language changes#5086

Merged
Jinwoo-H merged 1 commit into
mainfrom
Jinwoo-H/localization-bug
Jun 10, 2026
Merged

Fix task page labels after language changes#5086
Jinwoo-H merged 1 commit into
mainfrom
Jinwoo-H/localization-bug

Conversation

@Jinwoo-H

@Jinwoo-H Jinwoo-H commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Move Tasks page option labels into locale-aware catalogs so they rebuild when the UI language changes
  • Subscribe TaskPage to i18n language changes and read current-locale task/source/filter options during render
  • Add a regression test that flips Korean -> English and verifies GitHub task labels and Linear priority labels refresh

Verification

  • pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/task-page-localized-options.test.ts
  • pnpm exec tsgo --noEmit -p config/tsconfig.tc.web.json
  • pnpm run verify:localization-catalog
  • pnpm run verify:localization-coverage
  • pnpm run typecheck
  • pnpm run lint

Note: pnpm reported the existing Node engine warning because this shell is on Node v26.0.0 while package.json wants Node 24. The commands completed successfully.

Made with Orca 🐋

@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR refactors task UI option definitions into a dedicated localized module to improve maintainability and i18n support. A new task-page-localized-options.tsx module exports type contracts and localized catalog functions for task browsing filters, presets, and modes across GitHub, GitLab, Jira, and Linear. TaskPage now imports useTranslation and calls it inside the component to enable reactive updates when language changes, replaces inline option definitions with calls to the localized module functions, and updates all JSX iterations to use computed option arrays. Tests verify that localized labels correctly reflect language changes.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description includes a clear summary and detailed verification steps executed. However, it is missing the required sections: Screenshots, AI Review Report, Security Audit, and Notes from the template. Add Screenshots section (with 'No visual change' if applicable), AI Review Report section confirming cross-platform compatibility checks, Security Audit section for input/dependency risks, and Notes section for any platform-specific concerns.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Fix task page labels after language changes' accurately and clearly summarizes the main change—moving task page option labels into locale-aware catalogs so they update when the UI language changes.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: d19ddb33-8ddb-4a35-9e34-33633f9e8eff

📥 Commits

Reviewing files that changed from the base of the PR and between 256e0ef and 6fcfee6.

📒 Files selected for processing (3)
  • src/renderer/src/components/TaskPage.tsx
  • src/renderer/src/components/task-page-localized-options.test.ts
  • src/renderer/src/components/task-page-localized-options.tsx

!sameGitHubOwnerRepo(s.sources.prs, s.sources.upstreamCandidate)

export default function TaskPage(): React.JSX.Element {
useTranslation()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add a short “why” comment for the useTranslation() subscription call.

This call is intentionally side-effectful, but it reads like dead code and is easy to delete accidentally. Please add a 1–2 line reason comment above it.

Suggested patch
 export default function TaskPage(): React.JSX.Element {
+  // Why: subscribe to i18n language changes so localized option catalogs
+  // are recomputed and TaskPage labels refresh immediately on locale switch.
   useTranslation()

As per coding guidelines, "When writing or modifying code driven by a design doc or non-obvious constraint, add a comment explaining why the code behaves the way it does."

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
useTranslation()
// Why: subscribe to i18n language changes so localized option catalogs
// are recomputed and TaskPage labels refresh immediately on locale switch.
useTranslation()

Source: Coding guidelines

@Jinwoo-H
Jinwoo-H merged commit b07cfae into main Jun 10, 2026
2 checks passed
@Jinwoo-H
Jinwoo-H deleted the Jinwoo-H/localization-bug branch June 10, 2026 16:11
Jinwoo-H added a commit that referenced this pull request Jun 11, 2026
Jinwoo-H added a commit that referenced this pull request Jun 14, 2026
* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Checkpoint multi-host sidebar and project-first notes

Co-authored-by: Orca <[email protected]>

* Add project-first compatibility persistence

Co-authored-by: Orca <[email protected]>

* Expose project host setup APIs

Co-authored-by: Orca <[email protected]>

* Group sidebar rows by project setup

Co-authored-by: Orca <[email protected]>

* Document project-first host model discussion

Co-authored-by: Orca <[email protected]>

* Resolve workspace creation through project host setups

Co-authored-by: Orca <[email protected]>

* Stamp workspace ownership with project host setup

Co-authored-by: Orca <[email protected]>

* Add project host setup existing folder API

Co-authored-by: Orca <[email protected]>

* Summarize project-first host model discussion

Co-authored-by: Orca <[email protected]>

* Add project host setup CLI commands

Co-authored-by: Orca <[email protected]>

* Allow CLI worktree creation by project host setup

Co-authored-by: Orca <[email protected]>

* Add workspace host setup picker

Co-authored-by: Orca <[email protected]>

* Add project host setup settings summary

Co-authored-by: Orca <[email protected]>

* Make project host setup settings navigable

Co-authored-by: Orca <[email protected]>

* Stabilize project host setup settings selector

Co-authored-by: Orca <[email protected]>

* Add project host existing-folder setup form

Co-authored-by: Orca <[email protected]>

* Update project host model implementation status

Co-authored-by: Orca <[email protected]>

* Keep projects outermost in default sidebar view

Co-authored-by: Orca <[email protected]>

* Update project-first sidebar status

Co-authored-by: Orca <[email protected]>

* Show host context in project sidebar groups

Co-authored-by: Orca <[email protected]>

* Show unavailable hosts in workspace run target

Co-authored-by: Orca <[email protected]>

* Import missing project host from composer

Co-authored-by: Orca <[email protected]>

* Clone project host setup from composer

Co-authored-by: Orca <[email protected]>

* Persist project host setup method

Co-authored-by: Orca <[email protected]>

* Clone project hosts over SSH

Co-authored-by: Orca <[email protected]>

* Improve SSH clone cancellation cleanup

Co-authored-by: Orca <[email protected]>

* Backfill workspace project host ownership

Co-authored-by: Orca <[email protected]>

* Gate project host setup runtime capability

Co-authored-by: Orca <[email protected]>

* Preserve independent project host setups

Co-authored-by: Orca <[email protected]>

* Add project host setup update API

Co-authored-by: Orca <[email protected]>

* Add project host setup delete API

Co-authored-by: Orca <[email protected]>

* Add project host setup create API

Co-authored-by: Orca <[email protected]>

* Expose project host setup lifecycle in renderer store

Co-authored-by: Orca <[email protected]>

* Handle independent project host setups in settings

Co-authored-by: Orca <[email protected]>

* Add pending host setup action in project settings

Co-authored-by: Orca <[email protected]>

* Show pending project host setup status in composer

Co-authored-by: Orca <[email protected]>

* Report pending setup state in workspace target resolution

Co-authored-by: Orca <[email protected]>

* Use shared host registry for project setup choices

Co-authored-by: Orca <[email protected]>

* Add settings clone flow for project host setups

Co-authored-by: Orca <[email protected]>

* Gate unavailable project host setup options

Co-authored-by: Orca <[email protected]>

* Gate unavailable project setup hosts in settings

Co-authored-by: Orca <[email protected]>

* Stream SSH clone progress to renderer

Co-authored-by: Orca <[email protected]>

* Update project host model status notes

Co-authored-by: Orca <[email protected]>

* Add CLI project host setup clone command

Co-authored-by: Orca <[email protected]>

* Make add project host aware

Co-authored-by: Orca <[email protected]>

* Complete project host setup validation

Co-authored-by: Orca <[email protected]>

* Recover floating workspace terminal WebGL atlas on reopen (#5069)

Co-authored-by: Orca <[email protected]>

* Fix stale terminal daemon spawn health (#5064)

Co-authored-by: Orca <[email protected]>

* Suspend floating workspace terminal WebGL while the panel is closed (#5073)

Co-authored-by: Orca <[email protected]>

* Fix source control branch compare base (#5074)

Co-authored-by: Orca <[email protected]>

* Fix workspace-creation tour panel clipped by the Create Worktree dialog (#5078)

* Fix workspace-creation tour panel clipped by the composer dialog

The tour panel portals into dialog/sheet content that clips overflow, but
its position was clamped against the window viewport. With the Project
field spanning nearly the dialog's full width, the panel landed past the
dialog's right edge and overflow-hidden cut it down to a sliver. Clamp
hosted panels within the host's bounds instead, so the panel flips below
the target and stays fully visible.

Co-Authored-By: Claude Fable 5 <[email protected]>

* Add JSDoc docstrings to satisfy CodeRabbit docstring coverage check

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* Test hosted contextual tour overlay positioning

---------

Co-authored-by: Claude Fable 5 <[email protected]>
Co-authored-by: Neil <[email protected]>

* release: v1.4.56

* Handle buffer overflows gracefully and truncate diffs fairly (#5083)

- Gracefully fall back to file-name summaries when staged diffs exceed
  node/ssh execution maxBuffer limits, preventing generation failures.
- Split oversized diffs by file and allocate budget via water-filling,
  ensuring single huge files do not starve smaller human changes.
- Clip truncated diff sections on line boundaries to avoid half-lines.

* Wrap AI generation controls with tooltips and clean i18n dependencies (#5087)

- Wrap the AI generation button in a tooltip so users can see the
  disabled reason or the action description on hover.
- Add unit tests verifying tooltip triggers and aria-label safety.
- Simplify memo dependencies in settings metadata and worktree palette
  by using 'useTranslation()' to handle language-change rerenders
  directly without needing 'i18n.language'.

* fix: address review findings (#5088)

* Fix localization in repository hooks and base ref suggestion toast (#5089)

* Fix localization in base ref toast and custom hook description

- Localize the "commit"/"commits" plural nouns in the base ref toast.
- Translate missing suggestion toast strings for JA, KO, and ZH locales.
- Pass `{{artifact_url}}` as a literal template variable to translate
  calls to prevent i18next from treating it as a dynamic placeholder.

* Fix localization reactivity in RepositoryHooksSection

Move static variables containing translation calls into helper functions
and subscribe to translation updates using useTranslation. This ensures
that localized options, descriptions, and error messages refresh
dynamically when the user changes the UI language.

* Fix task page labels after language changes (#5086)

Co-authored-by: Orca <[email protected]>

* release: v1.4.57

* Fix automation tabs showing a shell instead of the live agent (#5099)

* Fix automation tabs showing a shell instead of the live agent

Opening a background automation's terminal tab showed a bare shell while
the agent (Claude) kept running headless — the sidebar updated but the
pane was attached to the wrong PTY.

On first mount the restored ptyId equals the tab ptyId, and
isSessionOwnedByWorktree() returns true for it, so connectPanePty routed
the still-live eagerly-spawned PTY into the daemon-reattach branch
(transport.connect({ sessionId })), which spawns a fresh shell and
orphans the live agent PTY instead of adopting it via attach()+replay.

Part A: gate the deferred reattach on the absence of a live eager buffer.
A live eager buffer means the PTY is a still-running local session to
adopt (attach + replay), not a daemon session to re-connect. Daemon
reattach and remote PTYs are unaffected (gated on the eager buffer).

Part B: publish never-mounted background automation tabs into the runtime
graph (gated on a live eager buffer) so the live agent PTY binds to its
real tab instead of surfacing as an orphan `pty:<id>` terminal — fixing
`orca terminal list`, the CLI, and automation session-reuse.

Adds a characterization test (fails on the old code, passes now) and a
runtime-graph publish test.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

* Harden eager PTY tab adoption

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* Fix i18n label spacing in menus and settings (#5108)

* fix i18n label spacing

* Fix localized account runtime labels

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* Improve localization catalog sync workflow (#5110)

Co-authored-by: Orca <[email protected]>

* Add Warp terminal theme import (#4714)

Co-authored-by: Orca <[email protected]>

* release: v1.4.58

* Tidy README badge layout

* Handle integration credential decrypt failures (#4683)

Co-authored-by: Orca <[email protected]>

* Fix git repo telemetry for repo adds (#5121)

Co-authored-by: Orca <[email protected]>

* Add feature interaction usage bucket telemetry (#5119)

Co-authored-by: Orca <[email protected]>

* Reset WebGL glyph atlases globally to stop cross-terminal glyph corruption (#5122)

Co-authored-by: Orca <[email protected]>

* perf(windows): fix 60s startup ACL walk and OpenCode streaming freeze, with benchmark harnesses (#5124)

* release: v1.4.59-rc.0

* Fix packaged shell PATH order (#5125)

Co-authored-by: Orca <[email protected]>

* Add Floating Workspace contextual tour (#5062)

* Add floating workspace contextual tour

Co-authored-by: Orca <[email protected]>

* Clarify floating workspace tour intro copy

Co-authored-by: Orca <[email protected]>

* Differentiate floating workspace tour steps instead of repeating examples

Co-authored-by: Orca <[email protected]>

* Lead floating workspace tour with the user benefit

Co-authored-by: Orca <[email protected]>

* Pitch floating workspace tour around cross-repo agents

Co-authored-by: Orca <[email protected]>

* Refine floating workspace tour step 1 copy

Co-authored-by: Orca <[email protected]>

* Anchor floating workspace tour step 2 on the minimize control

Co-authored-by: Orca <[email protected]>

* Restore floating workspace tour step 2

Co-authored-by: Orca <[email protected]>

* Anchor floating workspace tour steps on New Terminal and New Markdown Note

Co-authored-by: Orca <[email protected]>

* Retitle floating workspace tour step 2 as scratchpad

Co-authored-by: Orca <[email protected]>

* Add why-comments for tour selector fallback and placement flipping

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Orca <[email protected]>

* Fix source control compare base ambiguity (#5127)

Co-authored-by: Orca <[email protected]>

* release: v1.4.59-rc.1 [rc-slot:2026-06-10-15]

* release: v1.4.59

* Default-driven create-project flow: name-first form with sensible defaults (#5115)

Co-authored-by: Orca <[email protected]>

* Redesign Connect integrations (#4531)

Co-authored-by: Orca <[email protected]>

* Expose E2E store via build mode

* File search match counts (#5085)

* Add matchCount to SearchFileResult for accurate per-file hit counts

Co-authored-by: Orca <[email protected]>

* Add file search match count design

* rm design doc

---------

Co-authored-by: Orca <[email protected]>

* fix: address review findings (#5139)

* perf(windows): avoid blocking daemon pid checks (#5137)

* release: v1.4.60-rc.0

* release: v1.4.60

* Preserve core workflow terms in English and apply CJK spacing (#5141)

* Preserve core workflow and product terms in English across locales

Update translation policy to prevent localization of key terms such as
"Agent", "Commit", "Markdown", and "Terminal". This ensures consistent
jargon and product branding.

Introduce CJK-Latin term spacing to keep these Latin terms legible
when combined with CJK text, while adjusting Korean particle spacing.
Also add overrides to prevent network proxy settings from being
mistranslated as "Agent".

* Preserve repo terminology in English and localize source control labels

Treat "repo" and "repos" (and their capitalized forms) as brand terms
that should remain in English/Latin across CJK and Spanish locales.
Update translation files and policies to replace translated words like
"repositorio" or "リポジトリ" with "repo"/"repos", and fix an issue where
latin brand terms could be incorrectly matched as substrings in larger
words during cleanup.

Additionally, externalize and localize the "Staged Changes", "Changes",
and "Untracked Files" section labels in the source control sidebar.

* UX (#5143)

* UX/copy tweaks (#5142)

* UX/copy tweaks

* UX/copy tweaks

* Fix missed star UI translations (#5148)

* fix: make windows ssh relay deploy survive session teardown (#5136)

* Add option to remove child projects when deleting repo groups (#4702)

Co-authored-by: Orca <[email protected]>

* fix: remove checks panel response badge (#5147)

* Add read-only `orca linear` CLI with trusted launch-prompt pointer (V1) (#5126)

Co-authored-by: Orca <[email protected]>

* Add AI Vault session history

## Summary
- add AI Vault session scanning and resume command construction
- add the Agents sidebar panel with filtering, grouping, copy/open actions, and local resume launch
- support dragging saved sessions onto terminal split panes

## Validation
- pnpm run lint
- pnpm run typecheck
- pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/register-core-handlers.test.ts src/main/ai-vault/session-scanner.test.ts src/renderer/src/components/right-sidebar/ai-vault-session-filters.test.ts src/renderer/src/lib/ai-vault-session-drag.test.ts src/renderer/src/lib/launch-ai-vault-session.test.ts

* Default agent launches to yolo permissions mode (#5145)

* Default agent launches to yolo mode

* test: update launch default validations

* Fix Claude usage refresh error copy (#5155)

Co-authored-by: Orca <[email protected]>

* Move workspace board to sidebar bottom toolbar (#5146)

Co-authored-by: Orca <[email protected]>

* Rebuild contextual tour positioning on floating-ui; fix hosted dialog placement and arrow seam (#5154)

Co-authored-by: Orca <[email protected]>

* Fix missing spaces in cross-repo switch dialog (#5158)

* Fix Ctrl+Tab switcher selection on release (#5116)

* Fix additional i18n spacing regressions from #4995 (#5159)

* Refine add project selection styling (#5160)

Co-authored-by: Orca <[email protected]>

* improve chinese localization (#5162)

* Fix floating workspace needing two clicks after app switch (macOS) (#5128)

* Autofocus feedback textarea when Send Feedback dialog opens (#5164)

* fix: address pr-bug-scan validated finding from #4683 (#5151)

Isolated CredentialDecryptionError per-item in Linear getClients (client.ts:518) and Jira getClients (client.ts:373) on the 'all' selection so one bad credential no longer collapses healthy workspaces

Co-authored-by: orca-bug-scan-bot <[email protected]>

* fix: enable claude agent teams by default (#5168)

* Refresh Jira and Linear status after credential errors (#5169)

* fix: address pr-bug-scan validated finding from #4683

Isolated CredentialDecryptionError per-item in Linear getClients (client.ts:518) and Jira getClients (client.ts:373) on the 'all' selection so one bad credential no longer collapses healthy workspaces

* Refresh Jira and Linear status to clear stale credential errors

Ensure stale credential decryption errors are cleared from the store
status once a successful API read completes. By updating the check in
shouldRefreshStatusAfterRead to trigger when a credentialError is
currently set, successful issue or list fetches will trigger a status
check and remove stale error flags.

---------

Co-authored-by: orca-bug-scan-bot <[email protected]>

* Hide internal context from AI Vault titles (#5175)

* Fix detached HEAD publish actions (#5173)

* Keep freshly split terminal pane mounted if newborn PTY exits early (#5171)

Prevent a newly split pane from collapsing immediately if its PTY exits
during initial setup before any output is received or input is sent.
This ensures a failed startup session remains visible to the user.

* Route task PR queries by upstream source (#5176)

* Route task PR queries by upstream source

Implements the routing described in docs/tasks-pr-upstream-source.md so task PR and issue queries stay scoped to the selected source.

* rm design doc

* Prevent stale PR refreshes from restoring unlinked review state (#5180)

- Pass `worktreeId` to `fetchPRForBranch` to track active worktree context
- Ignore inflight or queued PR fetches if the worktree has been unlinked
- Include linked PR/MR metadata in the checks panel snapshot key to trigger updates immediately on link/unlink events

* Fix Claude agents management status detection (#5179)

Co-authored-by: Orca <[email protected]>

* fix: address review findings (#5177)

* Allow resolving selected review comments with AI (#5184)

* Allow resolving selected PR/MR review comments with AI

Users can now select specific unresolved review comments or threads in
the Checks panel sidebar, queue them, and trigger an AI agent to address
them, marking resolved threads on the host upon agent launch.

- Adds checkboxes and action/send buttons to select and queue comments.
- Builds a structured, robust prompt with sanitized comment metadata.
- Optimistically marks threads resolved on launch with rollback on error.
- Supports both GitHub PRs and GitLab MRs.

* Consolidate PR comment selection state and eliminate effects

Combine independent selection states and context-tracking into a single
state object. Derive active selection data and prune ineligible comments
during render using useMemo instead of relying on asynchronous
useEffect synchronization hooks.

* Improve source control action dialog layout and recipe saving UX (#5153)

* Improve source control agent action dialog layout and recipe UX

- Constrain dialog and scroll area heights to prevent viewport overflow.
- Add variable chips to easily insert the base prompt with tooltip previews.
- Keep the recipe save controls visible when a recipe is already saved, showing informational status text instead of hiding them.
- Update localized copy across multiple languages and reduce textarea rows.
- Add unit tests for the variable chip preview and save target visibility.

* Fix recipe-saved check in source control action dialog

* Evaluate only the selected save target instead of checking all available targets, as the action only writes to the selected target.
* Update daemon PTY adapter test fake PID to prevent collision with real host OS processes during runtime directory lookups.

* fix: remove unsupported agent launch defaults (#5185)

* Update Chinese and Japanese translations for worktrees and fixes (#5187)

- Correct awkward Chinese translation of "fix" ("使固定") to "修复" and "基本的" to "主工作树" (main worktree).
- Improve Japanese translation of "fix" from physical repair ("修理") to software correction ("修正").

* Embed hosted review creation composer directly in Checks panel (#5140)

* Embed hosted review creation composer directly in the Checks panel

- Replaces the modal pull request/merge request creation dialog with an
  inline composer embedded in the empty state of the Checks sidebar.
- Extracts and moves pull request generation state to a dedicated store
  slice so AI-generated details are persisted across sidebar unmounts.

* Fix hosted review composer feedback

* Combine file search and file explorer right sidebar tabs (#5182)

Unifies file discovery and tree navigation under a single Explorer domain, simplifying the right sidebar activity bar and reducing tab clutter.

* Replaces the standalone 'search' activity bar tab with a nested 'search' subview inside the File Explorer tab
* Introduces 'rightSidebarExplorerView' ('files' | 'search') state to manage the active subview inside the Explorer
* Adds a search button to the File Explorer toolbar and a back button to the search subview for seamless transition
* Exposes 'showRightSidebarFiles' and 'showRightSidebarSearch' store actions to route and seed search queries/include patterns
* Adapts file explorer keybindings, git status polling, and external workspace watchers to respect the active subview
* Maps legacy persisted search tab state to the new explorer search view for backward compatibility

* release: v1.4.61-rc.1

* Add multi-repo folder workspaces (v1) (#5172)

Co-authored-by: Orca <[email protected]>

* release: v1.4.61-rc.2

* Hide unavailable project hosts in worktree composer

Co-authored-by: Orca <[email protected]>

* Remove inline project host setup from composer

Co-authored-by: Orca <[email protected]>

* Mark imported project host setup methods

Co-authored-by: Orca <[email protected]>

* Fix rebase merge fallout

Co-authored-by: Orca <[email protected]>

* Disable unavailable Add Project hosts

Co-authored-by: Orca <[email protected]>

* Compact Add Project host selector

Co-authored-by: Orca <[email protected]>

* Hide redundant SSH target chooser

Co-authored-by: Orca <[email protected]>

* Browse SSH clone destinations

Co-authored-by: Orca <[email protected]>

* Avoid local clone defaults for SSH hosts

Co-authored-by: Orca <[email protected]>

* Polish host-aware Add Project flows

Co-authored-by: Orca <[email protected]>

* Polish remote host add project flows

Co-authored-by: Orca <[email protected]>

* Remove redundant host kind chips

Co-authored-by: Orca <[email protected]>

* Fix remote project setup UX gaps

Co-authored-by: Orca <[email protected]>

* Fix multihost workspace composer project identity

Co-authored-by: Orca <[email protected]>

* Finish host context merge repair

Co-authored-by: Orca <[email protected]>

* Continue host context checklist implementation

Co-authored-by: Orca <[email protected]>

* Route Linear and Jira tasks by source context

Co-authored-by: Orca <[email protected]>

* Preserve Linear task source context in history

Co-authored-by: Orca <[email protected]>

* Scope task retry state by source context

Co-authored-by: Orca <[email protected]>

* Route GitHub drawer reads by source context

Co-authored-by: Orca <[email protected]>

* Guard GitLab selectors with repo context

Co-authored-by: Orca <[email protected]>

* Guard GitHub metadata selectors

Co-authored-by: Orca <[email protected]>

* Route GitHub task row actions by source context

Co-authored-by: Orca <[email protected]>

* Update GitHub source-context checklist status

Co-authored-by: Orca <[email protected]>

* Show host ownership for CLI provider accounts

Co-authored-by: Orca <[email protected]>

* Persist GitLab task detail source context

Co-authored-by: Orca <[email protected]>

* Show host scope for provider API budgets

Co-authored-by: Orca <[email protected]>

* Preserve Jira task source context

Co-authored-by: Orca <[email protected]>

* Scope Jira optimistic task patches

Co-authored-by: Orca <[email protected]>

* Resolve task PR bases on run host

Co-authored-by: Orca <[email protected]>

* Record Jira task workspace usage

Co-authored-by: Orca <[email protected]>

* Scope Linear optimistic task patches

Co-authored-by: Orca <[email protected]>

* Scope GitHub optimistic task patches

Co-authored-by: Orca <[email protected]>

* Clean host copy in onboarding flows

Co-authored-by: Orca <[email protected]>

* Preserve automation CLI run context

Co-authored-by: Orca <[email protected]>

* Add automation CLI source context selector

Co-authored-by: Orca <[email protected]>

* Clarify unavailable task source hosts

Co-authored-by: Orca <[email protected]>

* Surface host model runtime capability skew

Co-authored-by: Orca <[email protected]>

* Use SSH host copy in reconnect dialog

Co-authored-by: Orca <[email protected]>

* Show host context in task source picker

Co-authored-by: Orca <[email protected]>

* Mark task source display complete

Co-authored-by: Orca <[email protected]>

* Clarify provider account host selection

Co-authored-by: Orca <[email protected]>

* Guard task source switching boundary

Co-authored-by: Orca <[email protected]>

* Mark task source diagnostics persisted

Co-authored-by: Orca <[email protected]>

* Mark base resolution host boundary

Co-authored-by: Orca <[email protected]>

* Clarify external automation source states

Co-authored-by: Orca <[email protected]>

* Harden project host compatibility projection

Co-authored-by: Orca <[email protected]>

* Finish host copy audit

Co-authored-by: Orca <[email protected]>

* Add provider host scope controls

Co-authored-by: Orca <[email protected]>

* Show task source account labels

Co-authored-by: Orca <[email protected]>

* Show automation run context in CLI

Co-authored-by: Orca <[email protected]>

* Scope Jira task cache lookups by source

Co-authored-by: Orca <[email protected]>

* Seed workspace creation from task source context

Co-authored-by: Orca <[email protected]>

* Explain disabled external automation actions

Co-authored-by: Orca <[email protected]>

* Surface task source runtime capability gaps

Co-authored-by: Orca <[email protected]>

* Persist automation run context from UI saves

Co-authored-by: Orca <[email protected]>

* Require workspace run capability for setup hosts

Co-authored-by: Orca <[email protected]>

* Disable automation runs for stale host setup

Co-authored-by: Orca <[email protected]>

* Route GitHub drawer metadata by source host

Co-authored-by: Orca <[email protected]>

* Guard runtime project setup mutations by host model

Co-authored-by: Orca <[email protected]>

* Route PR page metadata by repo host

Co-authored-by: Orca <[email protected]>

* Route PR mention metadata by repo host

Co-authored-by: Orca <[email protected]>

* Route GitHub Project edits by view source

Co-authored-by: Orca <[email protected]>

* Clarify runtime automation disabled states

Co-authored-by: Orca <[email protected]>

* Guard runtime automation backend dispatch

Co-authored-by: Orca <[email protected]>

* Preserve GitLab task source identity

Co-authored-by: Orca <[email protected]>

* Remove redundant SSH target row in add project

Co-authored-by: Orca <[email protected]>

* Add task source provider availability reasons

Co-authored-by: Orca <[email protected]>

* Surface task provider preflight availability

Co-authored-by: Orca <[email protected]>

* Record local GitHub task source verification

Co-authored-by: Orca <[email protected]>

* Record Linear task source verification

Co-authored-by: Orca <[email protected]>

* Show automation source context in details

Co-authored-by: Orca <[email protected]>

* Record remote capability negotiation coverage

Co-authored-by: Orca <[email protected]>

* Record local add project create verification

Co-authored-by: Orca <[email protected]>

* Scope Linear cached task reads by source

Co-authored-by: Orca <[email protected]>

* Preserve PR generation host ownership

Co-authored-by: Orca <[email protected]>

* Route git operations by owner host

Co-authored-by: Orca <[email protected]>

* Route delete warnings by worktree owner

Co-authored-by: Orca <[email protected]>

* Route editor drops by worktree owner

Co-authored-by: Orca <[email protected]>

* Route agent draft paste by tab owner

Co-authored-by: Orca <[email protected]>

* Route file explorer requests by worktree owner

Co-authored-by: Orca <[email protected]>

* Document remaining host context gaps

Co-authored-by: Orca <[email protected]>

* Check runtime task source provider auth

Co-authored-by: Orca <[email protected]>

* Validate automation source availability

Co-authored-by: Orca <[email protected]>

* Route remaining UI requests by owner host

Co-authored-by: Orca <[email protected]>

* Route quick open file listing by worktree owner

Co-authored-by: Orca <[email protected]>

* Route typed GitHub lookups by source host

Co-authored-by: Orca <[email protected]>

* Centralize automation run identity fallback

Co-authored-by: Orca <[email protected]>

* Surface unsupported task source providers

Co-authored-by: Orca <[email protected]>

* Document automation legacy repo compatibility

Co-authored-by: Orca <[email protected]>

* Record live host model verification

Co-authored-by: Orca <[email protected]>

* Quiet disconnected SSH polling

Co-authored-by: Orca <[email protected]>

* Verify task drawer source boundaries

Co-authored-by: Orca <[email protected]>

* Verify GitLab repo source selectors

Co-authored-by: Orca <[email protected]>

* Route automations through owning host

Co-authored-by: Orca <[email protected]>

* Update host context verification checklist

Co-authored-by: Orca <[email protected]>

* Run remote automations headlessly in serve mode

Co-authored-by: Orca <[email protected]>

* Keep setup guide entry stable during refresh

Co-authored-by: Orca <[email protected]>

* Keep setup script prompt stable during host switches

Co-authored-by: Orca <[email protected]>

* Deduplicate Tasks project picker sources

Co-authored-by: Orca <[email protected]>

* Use project identity for Tasks picker dedupe

Co-authored-by: Orca <[email protected]>

* Add Tasks source host switcher

Co-authored-by: Orca <[email protected]>

* Refine Tasks source picker disclosure

Co-authored-by: Orca <[email protected]>

* Polish Tasks source picker hover

Co-authored-by: Orca <[email protected]>

* Open Tasks source menu on hover

Co-authored-by: Orca <[email protected]>

* Match Tasks source submenu hover behavior

Co-authored-by: Orca <[email protected]>

* Open Tasks source submenu from project row hover

Co-authored-by: Orca <[email protected]>

* Group automation project hosts

Co-authored-by: Orca <[email protected]>

* Tighten automation project picker density

Co-authored-by: Orca <[email protected]>

* Show selected host in Tasks project picker

Co-authored-by: Orca <[email protected]>

* Hide host labels for single-host project pickers

Co-authored-by: Orca <[email protected]>

* Use saved remote server names in host pickers

Co-authored-by: Orca <[email protected]>

* Use standard add project start for remote servers

Co-authored-by: Orca <[email protected]>

* Use saved host labels in workspace surfaces

Co-authored-by: Orca <[email protected]>

* Route remote browser tabs through runtime hosts

Co-authored-by: Orca <[email protected]>

* Keep sidebar project-first across grouping modes

Co-authored-by: Orca <[email protected]>

* Polish multi-host remote runtime UX

Co-authored-by: Orca <[email protected]>

* Fix CI lint and remove design notes

Co-authored-by: Orca <[email protected]>

* Fix CI test failures

Co-authored-by: Orca <[email protected]>

* Fix Windows CLI path expectation

Co-authored-by: Orca <[email protected]>

* Fix CI renderer test expectations

Co-authored-by: Orca <[email protected]>

* Fix remaining verify test failures

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Orca <[email protected]>
Co-authored-by: Bryant Ung <[email protected]>
Co-authored-by: Claude Fable 5 <[email protected]>
Co-authored-by: Neil <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jinjing <[email protected]>
Co-authored-by: Borja <[email protected]>
Co-authored-by: Parker Rex <[email protected]>
Co-authored-by: Brennan Benson <[email protected]>
Co-authored-by: Trevin Chow <[email protected]>
Co-authored-by: buf0-bot[bot] <252831055+buf0-bot[bot]@users.noreply.github.com>
Co-authored-by: orca-bug-scan-bot <[email protected]>
thomaszdxsn pushed a commit to thomaszdxsn/orca that referenced this pull request Jun 15, 2026
thomaszdxsn pushed a commit to thomaszdxsn/orca that referenced this pull request Jun 15, 2026
…yai#5071)

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Checkpoint multi-host sidebar and project-first notes

Co-authored-by: Orca <[email protected]>

* Add project-first compatibility persistence

Co-authored-by: Orca <[email protected]>

* Expose project host setup APIs

Co-authored-by: Orca <[email protected]>

* Group sidebar rows by project setup

Co-authored-by: Orca <[email protected]>

* Document project-first host model discussion

Co-authored-by: Orca <[email protected]>

* Resolve workspace creation through project host setups

Co-authored-by: Orca <[email protected]>

* Stamp workspace ownership with project host setup

Co-authored-by: Orca <[email protected]>

* Add project host setup existing folder API

Co-authored-by: Orca <[email protected]>

* Summarize project-first host model discussion

Co-authored-by: Orca <[email protected]>

* Add project host setup CLI commands

Co-authored-by: Orca <[email protected]>

* Allow CLI worktree creation by project host setup

Co-authored-by: Orca <[email protected]>

* Add workspace host setup picker

Co-authored-by: Orca <[email protected]>

* Add project host setup settings summary

Co-authored-by: Orca <[email protected]>

* Make project host setup settings navigable

Co-authored-by: Orca <[email protected]>

* Stabilize project host setup settings selector

Co-authored-by: Orca <[email protected]>

* Add project host existing-folder setup form

Co-authored-by: Orca <[email protected]>

* Update project host model implementation status

Co-authored-by: Orca <[email protected]>

* Keep projects outermost in default sidebar view

Co-authored-by: Orca <[email protected]>

* Update project-first sidebar status

Co-authored-by: Orca <[email protected]>

* Show host context in project sidebar groups

Co-authored-by: Orca <[email protected]>

* Show unavailable hosts in workspace run target

Co-authored-by: Orca <[email protected]>

* Import missing project host from composer

Co-authored-by: Orca <[email protected]>

* Clone project host setup from composer

Co-authored-by: Orca <[email protected]>

* Persist project host setup method

Co-authored-by: Orca <[email protected]>

* Clone project hosts over SSH

Co-authored-by: Orca <[email protected]>

* Improve SSH clone cancellation cleanup

Co-authored-by: Orca <[email protected]>

* Backfill workspace project host ownership

Co-authored-by: Orca <[email protected]>

* Gate project host setup runtime capability

Co-authored-by: Orca <[email protected]>

* Preserve independent project host setups

Co-authored-by: Orca <[email protected]>

* Add project host setup update API

Co-authored-by: Orca <[email protected]>

* Add project host setup delete API

Co-authored-by: Orca <[email protected]>

* Add project host setup create API

Co-authored-by: Orca <[email protected]>

* Expose project host setup lifecycle in renderer store

Co-authored-by: Orca <[email protected]>

* Handle independent project host setups in settings

Co-authored-by: Orca <[email protected]>

* Add pending host setup action in project settings

Co-authored-by: Orca <[email protected]>

* Show pending project host setup status in composer

Co-authored-by: Orca <[email protected]>

* Report pending setup state in workspace target resolution

Co-authored-by: Orca <[email protected]>

* Use shared host registry for project setup choices

Co-authored-by: Orca <[email protected]>

* Add settings clone flow for project host setups

Co-authored-by: Orca <[email protected]>

* Gate unavailable project host setup options

Co-authored-by: Orca <[email protected]>

* Gate unavailable project setup hosts in settings

Co-authored-by: Orca <[email protected]>

* Stream SSH clone progress to renderer

Co-authored-by: Orca <[email protected]>

* Update project host model status notes

Co-authored-by: Orca <[email protected]>

* Add CLI project host setup clone command

Co-authored-by: Orca <[email protected]>

* Make add project host aware

Co-authored-by: Orca <[email protected]>

* Complete project host setup validation

Co-authored-by: Orca <[email protected]>

* Recover floating workspace terminal WebGL atlas on reopen (stablyai#5069)

Co-authored-by: Orca <[email protected]>

* Fix stale terminal daemon spawn health (stablyai#5064)

Co-authored-by: Orca <[email protected]>

* Suspend floating workspace terminal WebGL while the panel is closed (stablyai#5073)

Co-authored-by: Orca <[email protected]>

* Fix source control branch compare base (stablyai#5074)

Co-authored-by: Orca <[email protected]>

* Fix workspace-creation tour panel clipped by the Create Worktree dialog (stablyai#5078)

* Fix workspace-creation tour panel clipped by the composer dialog

The tour panel portals into dialog/sheet content that clips overflow, but
its position was clamped against the window viewport. With the Project
field spanning nearly the dialog's full width, the panel landed past the
dialog's right edge and overflow-hidden cut it down to a sliver. Clamp
hosted panels within the host's bounds instead, so the panel flips below
the target and stays fully visible.

Co-Authored-By: Claude Fable 5 <[email protected]>

* Add JSDoc docstrings to satisfy CodeRabbit docstring coverage check

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* Test hosted contextual tour overlay positioning

---------

Co-authored-by: Claude Fable 5 <[email protected]>
Co-authored-by: Neil <[email protected]>

* release: v1.4.56

* Handle buffer overflows gracefully and truncate diffs fairly (stablyai#5083)

- Gracefully fall back to file-name summaries when staged diffs exceed
  node/ssh execution maxBuffer limits, preventing generation failures.
- Split oversized diffs by file and allocate budget via water-filling,
  ensuring single huge files do not starve smaller human changes.
- Clip truncated diff sections on line boundaries to avoid half-lines.

* Wrap AI generation controls with tooltips and clean i18n dependencies (stablyai#5087)

- Wrap the AI generation button in a tooltip so users can see the
  disabled reason or the action description on hover.
- Add unit tests verifying tooltip triggers and aria-label safety.
- Simplify memo dependencies in settings metadata and worktree palette
  by using 'useTranslation()' to handle language-change rerenders
  directly without needing 'i18n.language'.

* fix: address review findings (stablyai#5088)

* Fix localization in repository hooks and base ref suggestion toast (stablyai#5089)

* Fix localization in base ref toast and custom hook description

- Localize the "commit"/"commits" plural nouns in the base ref toast.
- Translate missing suggestion toast strings for JA, KO, and ZH locales.
- Pass `{{artifact_url}}` as a literal template variable to translate
  calls to prevent i18next from treating it as a dynamic placeholder.

* Fix localization reactivity in RepositoryHooksSection

Move static variables containing translation calls into helper functions
and subscribe to translation updates using useTranslation. This ensures
that localized options, descriptions, and error messages refresh
dynamically when the user changes the UI language.

* Fix task page labels after language changes (stablyai#5086)

Co-authored-by: Orca <[email protected]>

* release: v1.4.57

* Fix automation tabs showing a shell instead of the live agent (stablyai#5099)

* Fix automation tabs showing a shell instead of the live agent

Opening a background automation's terminal tab showed a bare shell while
the agent (Claude) kept running headless — the sidebar updated but the
pane was attached to the wrong PTY.

On first mount the restored ptyId equals the tab ptyId, and
isSessionOwnedByWorktree() returns true for it, so connectPanePty routed
the still-live eagerly-spawned PTY into the daemon-reattach branch
(transport.connect({ sessionId })), which spawns a fresh shell and
orphans the live agent PTY instead of adopting it via attach()+replay.

Part A: gate the deferred reattach on the absence of a live eager buffer.
A live eager buffer means the PTY is a still-running local session to
adopt (attach + replay), not a daemon session to re-connect. Daemon
reattach and remote PTYs are unaffected (gated on the eager buffer).

Part B: publish never-mounted background automation tabs into the runtime
graph (gated on a live eager buffer) so the live agent PTY binds to its
real tab instead of surfacing as an orphan `pty:<id>` terminal — fixing
`orca terminal list`, the CLI, and automation session-reuse.

Adds a characterization test (fails on the old code, passes now) and a
runtime-graph publish test.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

* Harden eager PTY tab adoption

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* Fix i18n label spacing in menus and settings (stablyai#5108)

* fix i18n label spacing

* Fix localized account runtime labels

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* Improve localization catalog sync workflow (stablyai#5110)

Co-authored-by: Orca <[email protected]>

* Add Warp terminal theme import (stablyai#4714)

Co-authored-by: Orca <[email protected]>

* release: v1.4.58

* Tidy README badge layout

* Handle integration credential decrypt failures (stablyai#4683)

Co-authored-by: Orca <[email protected]>

* Fix git repo telemetry for repo adds (stablyai#5121)

Co-authored-by: Orca <[email protected]>

* Add feature interaction usage bucket telemetry (stablyai#5119)

Co-authored-by: Orca <[email protected]>

* Reset WebGL glyph atlases globally to stop cross-terminal glyph corruption (stablyai#5122)

Co-authored-by: Orca <[email protected]>

* perf(windows): fix 60s startup ACL walk and OpenCode streaming freeze, with benchmark harnesses (stablyai#5124)

* release: v1.4.59-rc.0

* Fix packaged shell PATH order (stablyai#5125)

Co-authored-by: Orca <[email protected]>

* Add Floating Workspace contextual tour (stablyai#5062)

* Add floating workspace contextual tour

Co-authored-by: Orca <[email protected]>

* Clarify floating workspace tour intro copy

Co-authored-by: Orca <[email protected]>

* Differentiate floating workspace tour steps instead of repeating examples

Co-authored-by: Orca <[email protected]>

* Lead floating workspace tour with the user benefit

Co-authored-by: Orca <[email protected]>

* Pitch floating workspace tour around cross-repo agents

Co-authored-by: Orca <[email protected]>

* Refine floating workspace tour step 1 copy

Co-authored-by: Orca <[email protected]>

* Anchor floating workspace tour step 2 on the minimize control

Co-authored-by: Orca <[email protected]>

* Restore floating workspace tour step 2

Co-authored-by: Orca <[email protected]>

* Anchor floating workspace tour steps on New Terminal and New Markdown Note

Co-authored-by: Orca <[email protected]>

* Retitle floating workspace tour step 2 as scratchpad

Co-authored-by: Orca <[email protected]>

* Add why-comments for tour selector fallback and placement flipping

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Orca <[email protected]>

* Fix source control compare base ambiguity (stablyai#5127)

Co-authored-by: Orca <[email protected]>

* release: v1.4.59-rc.1 [rc-slot:2026-06-10-15]

* release: v1.4.59

* Default-driven create-project flow: name-first form with sensible defaults (stablyai#5115)

Co-authored-by: Orca <[email protected]>

* Redesign Connect integrations (stablyai#4531)

Co-authored-by: Orca <[email protected]>

* Expose E2E store via build mode

* File search match counts (stablyai#5085)

* Add matchCount to SearchFileResult for accurate per-file hit counts

Co-authored-by: Orca <[email protected]>

* Add file search match count design

* rm design doc

---------

Co-authored-by: Orca <[email protected]>

* fix: address review findings (stablyai#5139)

* perf(windows): avoid blocking daemon pid checks (stablyai#5137)

* release: v1.4.60-rc.0

* release: v1.4.60

* Preserve core workflow terms in English and apply CJK spacing (stablyai#5141)

* Preserve core workflow and product terms in English across locales

Update translation policy to prevent localization of key terms such as
"Agent", "Commit", "Markdown", and "Terminal". This ensures consistent
jargon and product branding.

Introduce CJK-Latin term spacing to keep these Latin terms legible
when combined with CJK text, while adjusting Korean particle spacing.
Also add overrides to prevent network proxy settings from being
mistranslated as "Agent".

* Preserve repo terminology in English and localize source control labels

Treat "repo" and "repos" (and their capitalized forms) as brand terms
that should remain in English/Latin across CJK and Spanish locales.
Update translation files and policies to replace translated words like
"repositorio" or "リポジトリ" with "repo"/"repos", and fix an issue where
latin brand terms could be incorrectly matched as substrings in larger
words during cleanup.

Additionally, externalize and localize the "Staged Changes", "Changes",
and "Untracked Files" section labels in the source control sidebar.

* UX (stablyai#5143)

* UX/copy tweaks (stablyai#5142)

* UX/copy tweaks

* UX/copy tweaks

* Fix missed star UI translations (stablyai#5148)

* fix: make windows ssh relay deploy survive session teardown (stablyai#5136)

* Add option to remove child projects when deleting repo groups (stablyai#4702)

Co-authored-by: Orca <[email protected]>

* fix: remove checks panel response badge (stablyai#5147)

* Add read-only `orca linear` CLI with trusted launch-prompt pointer (V1) (stablyai#5126)

Co-authored-by: Orca <[email protected]>

* Add AI Vault session history

## Summary
- add AI Vault session scanning and resume command construction
- add the Agents sidebar panel with filtering, grouping, copy/open actions, and local resume launch
- support dragging saved sessions onto terminal split panes

## Validation
- pnpm run lint
- pnpm run typecheck
- pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/register-core-handlers.test.ts src/main/ai-vault/session-scanner.test.ts src/renderer/src/components/right-sidebar/ai-vault-session-filters.test.ts src/renderer/src/lib/ai-vault-session-drag.test.ts src/renderer/src/lib/launch-ai-vault-session.test.ts

* Default agent launches to yolo permissions mode (stablyai#5145)

* Default agent launches to yolo mode

* test: update launch default validations

* Fix Claude usage refresh error copy (stablyai#5155)

Co-authored-by: Orca <[email protected]>

* Move workspace board to sidebar bottom toolbar (stablyai#5146)

Co-authored-by: Orca <[email protected]>

* Rebuild contextual tour positioning on floating-ui; fix hosted dialog placement and arrow seam (stablyai#5154)

Co-authored-by: Orca <[email protected]>

* Fix missing spaces in cross-repo switch dialog (stablyai#5158)

* Fix Ctrl+Tab switcher selection on release (stablyai#5116)

* Fix additional i18n spacing regressions from stablyai#4995 (stablyai#5159)

* Refine add project selection styling (stablyai#5160)

Co-authored-by: Orca <[email protected]>

* improve chinese localization (stablyai#5162)

* Fix floating workspace needing two clicks after app switch (macOS) (stablyai#5128)

* Autofocus feedback textarea when Send Feedback dialog opens (stablyai#5164)

* fix: address pr-bug-scan validated finding from stablyai#4683 (stablyai#5151)

Isolated CredentialDecryptionError per-item in Linear getClients (client.ts:518) and Jira getClients (client.ts:373) on the 'all' selection so one bad credential no longer collapses healthy workspaces

Co-authored-by: orca-bug-scan-bot <[email protected]>

* fix: enable claude agent teams by default (stablyai#5168)

* Refresh Jira and Linear status after credential errors (stablyai#5169)

* fix: address pr-bug-scan validated finding from stablyai#4683

Isolated CredentialDecryptionError per-item in Linear getClients (client.ts:518) and Jira getClients (client.ts:373) on the 'all' selection so one bad credential no longer collapses healthy workspaces

* Refresh Jira and Linear status to clear stale credential errors

Ensure stale credential decryption errors are cleared from the store
status once a successful API read completes. By updating the check in
shouldRefreshStatusAfterRead to trigger when a credentialError is
currently set, successful issue or list fetches will trigger a status
check and remove stale error flags.

---------

Co-authored-by: orca-bug-scan-bot <[email protected]>

* Hide internal context from AI Vault titles (stablyai#5175)

* Fix detached HEAD publish actions (stablyai#5173)

* Keep freshly split terminal pane mounted if newborn PTY exits early (stablyai#5171)

Prevent a newly split pane from collapsing immediately if its PTY exits
during initial setup before any output is received or input is sent.
This ensures a failed startup session remains visible to the user.

* Route task PR queries by upstream source (stablyai#5176)

* Route task PR queries by upstream source

Implements the routing described in docs/tasks-pr-upstream-source.md so task PR and issue queries stay scoped to the selected source.

* rm design doc

* Prevent stale PR refreshes from restoring unlinked review state (stablyai#5180)

- Pass `worktreeId` to `fetchPRForBranch` to track active worktree context
- Ignore inflight or queued PR fetches if the worktree has been unlinked
- Include linked PR/MR metadata in the checks panel snapshot key to trigger updates immediately on link/unlink events

* Fix Claude agents management status detection (stablyai#5179)

Co-authored-by: Orca <[email protected]>

* fix: address review findings (stablyai#5177)

* Allow resolving selected review comments with AI (stablyai#5184)

* Allow resolving selected PR/MR review comments with AI

Users can now select specific unresolved review comments or threads in
the Checks panel sidebar, queue them, and trigger an AI agent to address
them, marking resolved threads on the host upon agent launch.

- Adds checkboxes and action/send buttons to select and queue comments.
- Builds a structured, robust prompt with sanitized comment metadata.
- Optimistically marks threads resolved on launch with rollback on error.
- Supports both GitHub PRs and GitLab MRs.

* Consolidate PR comment selection state and eliminate effects

Combine independent selection states and context-tracking into a single
state object. Derive active selection data and prune ineligible comments
during render using useMemo instead of relying on asynchronous
useEffect synchronization hooks.

* Improve source control action dialog layout and recipe saving UX (stablyai#5153)

* Improve source control agent action dialog layout and recipe UX

- Constrain dialog and scroll area heights to prevent viewport overflow.
- Add variable chips to easily insert the base prompt with tooltip previews.
- Keep the recipe save controls visible when a recipe is already saved, showing informational status text instead of hiding them.
- Update localized copy across multiple languages and reduce textarea rows.
- Add unit tests for the variable chip preview and save target visibility.

* Fix recipe-saved check in source control action dialog

* Evaluate only the selected save target instead of checking all available targets, as the action only writes to the selected target.
* Update daemon PTY adapter test fake PID to prevent collision with real host OS processes during runtime directory lookups.

* fix: remove unsupported agent launch defaults (stablyai#5185)

* Update Chinese and Japanese translations for worktrees and fixes (stablyai#5187)

- Correct awkward Chinese translation of "fix" ("使固定") to "修复" and "基本的" to "主工作树" (main worktree).
- Improve Japanese translation of "fix" from physical repair ("修理") to software correction ("修正").

* Embed hosted review creation composer directly in Checks panel (stablyai#5140)

* Embed hosted review creation composer directly in the Checks panel

- Replaces the modal pull request/merge request creation dialog with an
  inline composer embedded in the empty state of the Checks sidebar.
- Extracts and moves pull request generation state to a dedicated store
  slice so AI-generated details are persisted across sidebar unmounts.

* Fix hosted review composer feedback

* Combine file search and file explorer right sidebar tabs (stablyai#5182)

Unifies file discovery and tree navigation under a single Explorer domain, simplifying the right sidebar activity bar and reducing tab clutter.

* Replaces the standalone 'search' activity bar tab with a nested 'search' subview inside the File Explorer tab
* Introduces 'rightSidebarExplorerView' ('files' | 'search') state to manage the active subview inside the Explorer
* Adds a search button to the File Explorer toolbar and a back button to the search subview for seamless transition
* Exposes 'showRightSidebarFiles' and 'showRightSidebarSearch' store actions to route and seed search queries/include patterns
* Adapts file explorer keybindings, git status polling, and external workspace watchers to respect the active subview
* Maps legacy persisted search tab state to the new explorer search view for backward compatibility

* release: v1.4.61-rc.1

* Add multi-repo folder workspaces (v1) (stablyai#5172)

Co-authored-by: Orca <[email protected]>

* release: v1.4.61-rc.2

* Hide unavailable project hosts in worktree composer

Co-authored-by: Orca <[email protected]>

* Remove inline project host setup from composer

Co-authored-by: Orca <[email protected]>

* Mark imported project host setup methods

Co-authored-by: Orca <[email protected]>

* Fix rebase merge fallout

Co-authored-by: Orca <[email protected]>

* Disable unavailable Add Project hosts

Co-authored-by: Orca <[email protected]>

* Compact Add Project host selector

Co-authored-by: Orca <[email protected]>

* Hide redundant SSH target chooser

Co-authored-by: Orca <[email protected]>

* Browse SSH clone destinations

Co-authored-by: Orca <[email protected]>

* Avoid local clone defaults for SSH hosts

Co-authored-by: Orca <[email protected]>

* Polish host-aware Add Project flows

Co-authored-by: Orca <[email protected]>

* Polish remote host add project flows

Co-authored-by: Orca <[email protected]>

* Remove redundant host kind chips

Co-authored-by: Orca <[email protected]>

* Fix remote project setup UX gaps

Co-authored-by: Orca <[email protected]>

* Fix multihost workspace composer project identity

Co-authored-by: Orca <[email protected]>

* Finish host context merge repair

Co-authored-by: Orca <[email protected]>

* Continue host context checklist implementation

Co-authored-by: Orca <[email protected]>

* Route Linear and Jira tasks by source context

Co-authored-by: Orca <[email protected]>

* Preserve Linear task source context in history

Co-authored-by: Orca <[email protected]>

* Scope task retry state by source context

Co-authored-by: Orca <[email protected]>

* Route GitHub drawer reads by source context

Co-authored-by: Orca <[email protected]>

* Guard GitLab selectors with repo context

Co-authored-by: Orca <[email protected]>

* Guard GitHub metadata selectors

Co-authored-by: Orca <[email protected]>

* Route GitHub task row actions by source context

Co-authored-by: Orca <[email protected]>

* Update GitHub source-context checklist status

Co-authored-by: Orca <[email protected]>

* Show host ownership for CLI provider accounts

Co-authored-by: Orca <[email protected]>

* Persist GitLab task detail source context

Co-authored-by: Orca <[email protected]>

* Show host scope for provider API budgets

Co-authored-by: Orca <[email protected]>

* Preserve Jira task source context

Co-authored-by: Orca <[email protected]>

* Scope Jira optimistic task patches

Co-authored-by: Orca <[email protected]>

* Resolve task PR bases on run host

Co-authored-by: Orca <[email protected]>

* Record Jira task workspace usage

Co-authored-by: Orca <[email protected]>

* Scope Linear optimistic task patches

Co-authored-by: Orca <[email protected]>

* Scope GitHub optimistic task patches

Co-authored-by: Orca <[email protected]>

* Clean host copy in onboarding flows

Co-authored-by: Orca <[email protected]>

* Preserve automation CLI run context

Co-authored-by: Orca <[email protected]>

* Add automation CLI source context selector

Co-authored-by: Orca <[email protected]>

* Clarify unavailable task source hosts

Co-authored-by: Orca <[email protected]>

* Surface host model runtime capability skew

Co-authored-by: Orca <[email protected]>

* Use SSH host copy in reconnect dialog

Co-authored-by: Orca <[email protected]>

* Show host context in task source picker

Co-authored-by: Orca <[email protected]>

* Mark task source display complete

Co-authored-by: Orca <[email protected]>

* Clarify provider account host selection

Co-authored-by: Orca <[email protected]>

* Guard task source switching boundary

Co-authored-by: Orca <[email protected]>

* Mark task source diagnostics persisted

Co-authored-by: Orca <[email protected]>

* Mark base resolution host boundary

Co-authored-by: Orca <[email protected]>

* Clarify external automation source states

Co-authored-by: Orca <[email protected]>

* Harden project host compatibility projection

Co-authored-by: Orca <[email protected]>

* Finish host copy audit

Co-authored-by: Orca <[email protected]>

* Add provider host scope controls

Co-authored-by: Orca <[email protected]>

* Show task source account labels

Co-authored-by: Orca <[email protected]>

* Show automation run context in CLI

Co-authored-by: Orca <[email protected]>

* Scope Jira task cache lookups by source

Co-authored-by: Orca <[email protected]>

* Seed workspace creation from task source context

Co-authored-by: Orca <[email protected]>

* Explain disabled external automation actions

Co-authored-by: Orca <[email protected]>

* Surface task source runtime capability gaps

Co-authored-by: Orca <[email protected]>

* Persist automation run context from UI saves

Co-authored-by: Orca <[email protected]>

* Require workspace run capability for setup hosts

Co-authored-by: Orca <[email protected]>

* Disable automation runs for stale host setup

Co-authored-by: Orca <[email protected]>

* Route GitHub drawer metadata by source host

Co-authored-by: Orca <[email protected]>

* Guard runtime project setup mutations by host model

Co-authored-by: Orca <[email protected]>

* Route PR page metadata by repo host

Co-authored-by: Orca <[email protected]>

* Route PR mention metadata by repo host

Co-authored-by: Orca <[email protected]>

* Route GitHub Project edits by view source

Co-authored-by: Orca <[email protected]>

* Clarify runtime automation disabled states

Co-authored-by: Orca <[email protected]>

* Guard runtime automation backend dispatch

Co-authored-by: Orca <[email protected]>

* Preserve GitLab task source identity

Co-authored-by: Orca <[email protected]>

* Remove redundant SSH target row in add project

Co-authored-by: Orca <[email protected]>

* Add task source provider availability reasons

Co-authored-by: Orca <[email protected]>

* Surface task provider preflight availability

Co-authored-by: Orca <[email protected]>

* Record local GitHub task source verification

Co-authored-by: Orca <[email protected]>

* Record Linear task source verification

Co-authored-by: Orca <[email protected]>

* Show automation source context in details

Co-authored-by: Orca <[email protected]>

* Record remote capability negotiation coverage

Co-authored-by: Orca <[email protected]>

* Record local add project create verification

Co-authored-by: Orca <[email protected]>

* Scope Linear cached task reads by source

Co-authored-by: Orca <[email protected]>

* Preserve PR generation host ownership

Co-authored-by: Orca <[email protected]>

* Route git operations by owner host

Co-authored-by: Orca <[email protected]>

* Route delete warnings by worktree owner

Co-authored-by: Orca <[email protected]>

* Route editor drops by worktree owner

Co-authored-by: Orca <[email protected]>

* Route agent draft paste by tab owner

Co-authored-by: Orca <[email protected]>

* Route file explorer requests by worktree owner

Co-authored-by: Orca <[email protected]>

* Document remaining host context gaps

Co-authored-by: Orca <[email protected]>

* Check runtime task source provider auth

Co-authored-by: Orca <[email protected]>

* Validate automation source availability

Co-authored-by: Orca <[email protected]>

* Route remaining UI requests by owner host

Co-authored-by: Orca <[email protected]>

* Route quick open file listing by worktree owner

Co-authored-by: Orca <[email protected]>

* Route typed GitHub lookups by source host

Co-authored-by: Orca <[email protected]>

* Centralize automation run identity fallback

Co-authored-by: Orca <[email protected]>

* Surface unsupported task source providers

Co-authored-by: Orca <[email protected]>

* Document automation legacy repo compatibility

Co-authored-by: Orca <[email protected]>

* Record live host model verification

Co-authored-by: Orca <[email protected]>

* Quiet disconnected SSH polling

Co-authored-by: Orca <[email protected]>

* Verify task drawer source boundaries

Co-authored-by: Orca <[email protected]>

* Verify GitLab repo source selectors

Co-authored-by: Orca <[email protected]>

* Route automations through owning host

Co-authored-by: Orca <[email protected]>

* Update host context verification checklist

Co-authored-by: Orca <[email protected]>

* Run remote automations headlessly in serve mode

Co-authored-by: Orca <[email protected]>

* Keep setup guide entry stable during refresh

Co-authored-by: Orca <[email protected]>

* Keep setup script prompt stable during host switches

Co-authored-by: Orca <[email protected]>

* Deduplicate Tasks project picker sources

Co-authored-by: Orca <[email protected]>

* Use project identity for Tasks picker dedupe

Co-authored-by: Orca <[email protected]>

* Add Tasks source host switcher

Co-authored-by: Orca <[email protected]>

* Refine Tasks source picker disclosure

Co-authored-by: Orca <[email protected]>

* Polish Tasks source picker hover

Co-authored-by: Orca <[email protected]>

* Open Tasks source menu on hover

Co-authored-by: Orca <[email protected]>

* Match Tasks source submenu hover behavior

Co-authored-by: Orca <[email protected]>

* Open Tasks source submenu from project row hover

Co-authored-by: Orca <[email protected]>

* Group automation project hosts

Co-authored-by: Orca <[email protected]>

* Tighten automation project picker density

Co-authored-by: Orca <[email protected]>

* Show selected host in Tasks project picker

Co-authored-by: Orca <[email protected]>

* Hide host labels for single-host project pickers

Co-authored-by: Orca <[email protected]>

* Use saved remote server names in host pickers

Co-authored-by: Orca <[email protected]>

* Use standard add project start for remote servers

Co-authored-by: Orca <[email protected]>

* Use saved host labels in workspace surfaces

Co-authored-by: Orca <[email protected]>

* Route remote browser tabs through runtime hosts

Co-authored-by: Orca <[email protected]>

* Keep sidebar project-first across grouping modes

Co-authored-by: Orca <[email protected]>

* Polish multi-host remote runtime UX

Co-authored-by: Orca <[email protected]>

* Fix CI lint and remove design notes

Co-authored-by: Orca <[email protected]>

* Fix CI test failures

Co-authored-by: Orca <[email protected]>

* Fix Windows CLI path expectation

Co-authored-by: Orca <[email protected]>

* Fix CI renderer test expectations

Co-authored-by: Orca <[email protected]>

* Fix remaining verify test failures

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Orca <[email protected]>
Co-authored-by: Bryant Ung <[email protected]>
Co-authored-by: Claude Fable 5 <[email protected]>
Co-authored-by: Neil <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jinjing <[email protected]>
Co-authored-by: Borja <[email protected]>
Co-authored-by: Parker Rex <[email protected]>
Co-authored-by: Brennan Benson <[email protected]>
Co-authored-by: Trevin Chow <[email protected]>
Co-authored-by: buf0-bot[bot] <252831055+buf0-bot[bot]@users.noreply.github.com>
Co-authored-by: orca-bug-scan-bot <[email protected]>
Traderfuz added a commit to Traderfuz/orca that referenced this pull request Jun 16, 2026
* Fix packaged shell PATH order (#5125)

Co-authored-by: Orca <[email protected]>

* Add Floating Workspace contextual tour (#5062)

* Add floating workspace contextual tour

Co-authored-by: Orca <[email protected]>

* Clarify floating workspace tour intro copy

Co-authored-by: Orca <[email protected]>

* Differentiate floating workspace tour steps instead of repeating examples

Co-authored-by: Orca <[email protected]>

* Lead floating workspace tour with the user benefit

Co-authored-by: Orca <[email protected]>

* Pitch floating workspace tour around cross-repo agents

Co-authored-by: Orca <[email protected]>

* Refine floating workspace tour step 1 copy

Co-authored-by: Orca <[email protected]>

* Anchor floating workspace tour step 2 on the minimize control

Co-authored-by: Orca <[email protected]>

* Restore floating workspace tour step 2

Co-authored-by: Orca <[email protected]>

* Anchor floating workspace tour steps on New Terminal and New Markdown Note

Co-authored-by: Orca <[email protected]>

* Retitle floating workspace tour step 2 as scratchpad

Co-authored-by: Orca <[email protected]>

* Add why-comments for tour selector fallback and placement flipping

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Orca <[email protected]>

* Fix source control compare base ambiguity (#5127)

Co-authored-by: Orca <[email protected]>

* release: v1.4.59-rc.1 [rc-slot:2026-06-10-15]

* release: v1.4.59

* Default-driven create-project flow: name-first form with sensible defaults (#5115)

Co-authored-by: Orca <[email protected]>

* Redesign Connect integrations (#4531)

Co-authored-by: Orca <[email protected]>

* Expose E2E store via build mode

* File search match counts (#5085)

* Add matchCount to SearchFileResult for accurate per-file hit counts

Co-authored-by: Orca <[email protected]>

* Add file search match count design

* rm design doc

---------

Co-authored-by: Orca <[email protected]>

* fix: address review findings (#5139)

* perf(windows): avoid blocking daemon pid checks (#5137)

* release: v1.4.60-rc.0

* release: v1.4.60

* Preserve core workflow terms in English and apply CJK spacing (#5141)

* Preserve core workflow and product terms in English across locales

Update translation policy to prevent localization of key terms such as
"Agent", "Commit", "Markdown", and "Terminal". This ensures consistent
jargon and product branding.

Introduce CJK-Latin term spacing to keep these Latin terms legible
when combined with CJK text, while adjusting Korean particle spacing.
Also add overrides to prevent network proxy settings from being
mistranslated as "Agent".

* Preserve repo terminology in English and localize source control labels

Treat "repo" and "repos" (and their capitalized forms) as brand terms
that should remain in English/Latin across CJK and Spanish locales.
Update translation files and policies to replace translated words like
"repositorio" or "リポジトリ" with "repo"/"repos", and fix an issue where
latin brand terms could be incorrectly matched as substrings in larger
words during cleanup.

Additionally, externalize and localize the "Staged Changes", "Changes",
and "Untracked Files" section labels in the source control sidebar.

* UX (#5143)

* UX/copy tweaks (#5142)

* UX/copy tweaks

* UX/copy tweaks

* Fix missed star UI translations (#5148)

* fix: make windows ssh relay deploy survive session teardown (#5136)

* Add option to remove child projects when deleting repo groups (#4702)

Co-authored-by: Orca <[email protected]>

* fix: remove checks panel response badge (#5147)

* Add read-only `orca linear` CLI with trusted launch-prompt pointer (V1) (#5126)

Co-authored-by: Orca <[email protected]>

* Add AI Vault session history

## Summary
- add AI Vault session scanning and resume command construction
- add the Agents sidebar panel with filtering, grouping, copy/open actions, and local resume launch
- support dragging saved sessions onto terminal split panes

## Validation
- pnpm run lint
- pnpm run typecheck
- pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/register-core-handlers.test.ts src/main/ai-vault/session-scanner.test.ts src/renderer/src/components/right-sidebar/ai-vault-session-filters.test.ts src/renderer/src/lib/ai-vault-session-drag.test.ts src/renderer/src/lib/launch-ai-vault-session.test.ts

* Default agent launches to yolo permissions mode (#5145)

* Default agent launches to yolo mode

* test: update launch default validations

* Fix Claude usage refresh error copy (#5155)

Co-authored-by: Orca <[email protected]>

* Move workspace board to sidebar bottom toolbar (#5146)

Co-authored-by: Orca <[email protected]>

* Rebuild contextual tour positioning on floating-ui; fix hosted dialog placement and arrow seam (#5154)

Co-authored-by: Orca <[email protected]>

* Fix missing spaces in cross-repo switch dialog (#5158)

* Fix Ctrl+Tab switcher selection on release (#5116)

* Fix additional i18n spacing regressions from #4995 (#5159)

* Refine add project selection styling (#5160)

Co-authored-by: Orca <[email protected]>

* improve chinese localization (#5162)

* Fix floating workspace needing two clicks after app switch (macOS) (#5128)

* Autofocus feedback textarea when Send Feedback dialog opens (#5164)

* fix: address pr-bug-scan validated finding from #4683 (#5151)

Isolated CredentialDecryptionError per-item in Linear getClients (client.ts:518) and Jira getClients (client.ts:373) on the 'all' selection so one bad credential no longer collapses healthy workspaces

Co-authored-by: orca-bug-scan-bot <[email protected]>

* fix: enable claude agent teams by default (#5168)

* Refresh Jira and Linear status after credential errors (#5169)

* fix: address pr-bug-scan validated finding from #4683

Isolated CredentialDecryptionError per-item in Linear getClients (client.ts:518) and Jira getClients (client.ts:373) on the 'all' selection so one bad credential no longer collapses healthy workspaces

* Refresh Jira and Linear status to clear stale credential errors

Ensure stale credential decryption errors are cleared from the store
status once a successful API read completes. By updating the check in
shouldRefreshStatusAfterRead to trigger when a credentialError is
currently set, successful issue or list fetches will trigger a status
check and remove stale error flags.

---------

Co-authored-by: orca-bug-scan-bot <[email protected]>

* Hide internal context from AI Vault titles (#5175)

* Fix detached HEAD publish actions (#5173)

* Keep freshly split terminal pane mounted if newborn PTY exits early (#5171)

Prevent a newly split pane from collapsing immediately if its PTY exits
during initial setup before any output is received or input is sent.
This ensures a failed startup session remains visible to the user.

* Route task PR queries by upstream source (#5176)

* Route task PR queries by upstream source

Implements the routing described in docs/tasks-pr-upstream-source.md so task PR and issue queries stay scoped to the selected source.

* rm design doc

* Prevent stale PR refreshes from restoring unlinked review state (#5180)

- Pass `worktreeId` to `fetchPRForBranch` to track active worktree context
- Ignore inflight or queued PR fetches if the worktree has been unlinked
- Include linked PR/MR metadata in the checks panel snapshot key to trigger updates immediately on link/unlink events

* Fix Claude agents management status detection (#5179)

Co-authored-by: Orca <[email protected]>

* fix: address review findings (#5177)

* Allow resolving selected review comments with AI (#5184)

* Allow resolving selected PR/MR review comments with AI

Users can now select specific unresolved review comments or threads in
the Checks panel sidebar, queue them, and trigger an AI agent to address
them, marking resolved threads on the host upon agent launch.

- Adds checkboxes and action/send buttons to select and queue comments.
- Builds a structured, robust prompt with sanitized comment metadata.
- Optimistically marks threads resolved on launch with rollback on error.
- Supports both GitHub PRs and GitLab MRs.

* Consolidate PR comment selection state and eliminate effects

Combine independent selection states and context-tracking into a single
state object. Derive active selection data and prune ineligible comments
during render using useMemo instead of relying on asynchronous
useEffect synchronization hooks.

* Improve source control action dialog layout and recipe saving UX (#5153)

* Improve source control agent action dialog layout and recipe UX

- Constrain dialog and scroll area heights to prevent viewport overflow.
- Add variable chips to easily insert the base prompt with tooltip previews.
- Keep the recipe save controls visible when a recipe is already saved, showing informational status text instead of hiding them.
- Update localized copy across multiple languages and reduce textarea rows.
- Add unit tests for the variable chip preview and save target visibility.

* Fix recipe-saved check in source control action dialog

* Evaluate only the selected save target instead of checking all available targets, as the action only writes to the selected target.
* Update daemon PTY adapter test fake PID to prevent collision with real host OS processes during runtime directory lookups.

* fix: remove unsupported agent launch defaults (#5185)

* Update Chinese and Japanese translations for worktrees and fixes (#5187)

- Correct awkward Chinese translation of "fix" ("使固定") to "修复" and "基本的" to "主工作树" (main worktree).
- Improve Japanese translation of "fix" from physical repair ("修理") to software correction ("修正").

* Embed hosted review creation composer directly in Checks panel (#5140)

* Embed hosted review creation composer directly in the Checks panel

- Replaces the modal pull request/merge request creation dialog with an
  inline composer embedded in the empty state of the Checks sidebar.
- Extracts and moves pull request generation state to a dedicated store
  slice so AI-generated details are persisted across sidebar unmounts.

* Fix hosted review composer feedback

* Combine file search and file explorer right sidebar tabs (#5182)

Unifies file discovery and tree navigation under a single Explorer domain, simplifying the right sidebar activity bar and reducing tab clutter.

* Replaces the standalone 'search' activity bar tab with a nested 'search' subview inside the File Explorer tab
* Introduces 'rightSidebarExplorerView' ('files' | 'search') state to manage the active subview inside the Explorer
* Adds a search button to the File Explorer toolbar and a back button to the search subview for seamless transition
* Exposes 'showRightSidebarFiles' and 'showRightSidebarSearch' store actions to route and seed search queries/include patterns
* Adapts file explorer keybindings, git status polling, and external workspace watchers to respect the active subview
* Maps legacy persisted search tab state to the new explorer search view for backward compatibility

* release: v1.4.61-rc.1

* Add multi-repo folder workspaces (v1) (#5172)

Co-authored-by: Orca <[email protected]>

* release: v1.4.61-rc.2

* release: v1.4.61

* Clarify nested import group copy (#5202)

* release: v1.4.62

* fix(i18n): correct mistranslated Japanese (ja) UI strings (#5191)

* Fix duplicate mobile notifications (#5206)

Co-authored-by: Orca <[email protected]>

* Simplify Linear launch prompt hint (#5211)

* Fix contextual tour arrow overlap (#5213)

Co-authored-by: Orca <[email protected]>

* test: stabilize release e2e checks (#5212)

Co-authored-by: Orca <[email protected]>

* Resize sidebar footer icons (#5215)

Co-authored-by: Orca <[email protected]>

* release: v1.4.63

* feat(mobile): drag-to-reorder terminal shortcut keys in settings (#5076)

Co-authored-by: Orca <[email protected]>

* Allow Claude account switches with unverified live auth (#5217)

* fix(mobile): use Claude icon for Agent Teams

Use the Claude logo for the Claude Agent Teams option on mobile.

* Fix speech model downloads behind proxies (#5210)

Co-authored-by: Orca <[email protected]>

* release: v1.4.64-rc.0 [rc-slot:2026-06-11-15]

* fix(mobile): preserve repeated iOS terminal hyphens (#5222)

Co-authored-by: Orca <[email protected]>

* Fix PR merge dropdown availability when checks pass (#5220)

* fix github pr merge dropdown availability

Co-authored-by: Orca <[email protected]>

* address pr merge review comments

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Orca <[email protected]>

* fix: scope worktree rename updates to project (#5225)

Co-authored-by: Orca <[email protected]>

* Persist PR comment queue selection and clear it when sent to agent (#5208)

- Retain selected comment groups in memory by context key to prevent
  them from being lost when switching contexts or when the list remounts.
- Clear the persisted queue once comments are submitted to the AI agent
  for thread resolution so the queue is spent.
- Make the PR comments list header sticky to keep action buttons visible.
- Simplify translation strings by removing dynamic review kind parameter.

* Improve error messaging for git submodule push failures (#5226)

Detect when git push operations fail due to un-pushed or out-of-sync
submodules, and extract the specific submodule name to provide clear,
actionable guidance to the user.

Additionally, update the Source Control error UI to allow better text
wrapping and word-breaking for detailed error alerts.

* Enable first-input rename for folder workspaces (#5227)

Co-authored-by: Orca <[email protected]>

* Remove startup PTY spawn health probe and guard daemon replacement with live-session check (#5230)

Co-authored-by: Orca <[email protected]>

* release: v1.4.64-rc.1

* Hide saved source control launch dialog (#5229)

* Hide saved source control launch dialog

* rm design doc

* rm design doc

* Allow restoring all terminals to desktop size from mobile overlay (#5228)

Provides a "Resize all terminals" button to bulk-restore all
mobile-held terminals to desktop dimensions, avoiding the need to
reclaim each pane individually.

- Extract local and remote PTY restore logic to a shared helper
- Query all active drivers to identify mobile-controlled terminals
- Update localization bundles with the new resize-all label

* Refine terminal fit restore settings typing and add failure tests (#5233)

* Use undefined instead of null for terminal fit restore settings.
* Extract restoreFailedResult helper to handle failed restore attempts.
* Add remote RPC restore failure test to terminal-fit-restore.test.ts.
* Translate "Resize all terminals" string to Chinese.
* Add assertion to verify driver state map contents before clearing.

* Update create project dialog design (#5231)

Co-authored-by: Orca <[email protected]>

* Fix localized strings getting stuck on language switch (#5150)

* Fix localized strings getting stuck on language switch

Replace static module-level translation evaluations with property
getters and i18n hooks to ensure UI elements update dynamically when
the active language changes.

- Convert static configuration properties to dynamic getters.
- Call `useTranslation()` to trigger re-renders on language updates.
- Recreate Tiptap editor extensions when the active language changes
  to refresh frozen placeholder configurations.

* Evaluate localized strings dynamically in static UI structures

- Use ES6 getters with `translate()` in static object maps (such as SSH
  connection status, usage ranges, and feature tour copy) to evaluate
  strings on demand when the language changes.
- Add the `useTranslation()` hook to `LinearIssueMarkdownToolbar` so it
  subscribes directly to translation updates.
- Extract markdown slash command primitives to a separate file to keep
  catalog configuration clean.

---------

Co-authored-by: Orca <[email protected]>

* Use outline variant for merge abort buttons (#5236)

Change the abort action button variant for merge operations from destructive
to outline, aligning it with rebase abort. This uses a quieter,
non-destructive treatment for aborting operations.

* Implement GitHub issue close reasons and tabbed comment composer (#5235)

- Support closing GitHub issues with specific reasons ('completed', 'not planned', or duplicate) via main-process mutations and gh CLI wrappers.
- Replace the legacy comment composer with a tabbed layout supporting a real-time markdown preview, image/attachment inputs, and state transition buttons.
- Refactor assignee and label popovers into dedicated reusable components to clean up the item dialog.

* 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 <[email protected]>

* 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 <[email protected]>

* Support GitLab MR unlinking and AI generation in ChecksPanel (#5204)

* feat: support GitLab MR unlinking and AI generation in ChecksPanel

Integrate GitLab merge request actions alongside GitHub pull requests in
the sidebar checks panel. This includes unlinking GitLab MRs, enabling
AI-driven title and body generation for GitLab, and dynamically adapting
menu labels (e.g. "More MR actions" vs "More PR actions") depending on
the active provider.

* fix: handle null base ref in hosted review creation and add tests

Co-authored-by: Orca <[email protected]>

* Extract sub-components and hooks from renderer components

To improve component focus and maintainability, extract large inline
sub-components, custom hooks, and logic helpers into dedicated files:

- Extract `HeroPaired` from `MobileHero` to `MobileHeroPairedDevices`.
- Move `ChromePreview` from `ThemeStep` to `theme-chrome-preview`.
- Refactor `HostedReviewActions` to use `useHostedReviewActions` hook.
- Move MCP config loading from `McpConfigSection` to helper file.

* Refactor usage panes to extract shared formatters and tables

Extract duplicated formatting utilities to a shared helper module. Move
the large, inline recent sessions tables into dedicated sub-components to
reduce duplication and simplify the parent pane components.

* Support self-hosted GitLab instances for MR creation eligibility

* Extract and check the remote host against `glab auth status` to
  dynamically recognize and authenticate self-hosted GitLab instances
  without requiring them to be in a hardcoded list.
* Refactor stats usage panes by extracting reusable breakdown sections
  and sessions tables to eliminate duplication.
* Suggest Linear prompts only if the launcher can resolve the CLI.

* Extract GitLab project ref tests and update usage stats translations

- Move GitLab project ref parsing tests into a dedicated test file to
  keep modules focused and add tests for candidate parsing.
- Add missing translations for the usage sessions table and breakdown
  section across multiple locales.

* Optimize GitLab ref parsing, deduplicate formatters, and add locales

- Clean up GitLab ref parsing by extracting normalized known hosts.
- Fix an escaped newline sequence in the self-hosted GitLab mock test.
- Deduplicate stats helper functions into a single shared file.
- Translate path status message strings across ES, JA, KO, and ZH.

---------

Co-authored-by: Orca <[email protected]>

* release: v1.4.64-rc.2

* 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

* Redesign README for clarity and conversion (#5244)

Co-authored-by: Orca <[email protected]>

* 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.

* Constrain right sidebar primary button widths to prevent layout jumps (#5248)

Introduce min-width constraints, truncation, and content-width layouts
for primary actions in the right sidebar and PR dialogs. This prevents
buttons from shifting layout dramatically when labels morph dynamically
as git and review state changes.

* Constrain right sidebar primary action widths (#5249)

* Constrain right sidebar primary button widths to prevent layout jumps

Introduce min-width constraints, truncation, and content-width layouts
for primary actions in the right sidebar and PR dialogs. This prevents
buttons from shifting layout dramatically when labels morph dynamically
as git and review state changes.

* Fix right sidebar split action overflow

* Optimize CI checks caching and polling backoff behavior (#5252)

* Optimize CI checks caching and polling backoff behavior

- Prevent backing off the polling interval when no checks are reported
  yet, keeping polling at the baseline rate to detect newly started jobs.
- Reduce empty checks cache TTL to 10 seconds to allow faster recovery
  from a "no checks" state while preserving the 60-second TTL for active jobs.
- Avoid bypassing the GitHub CLI cache on tab entry, reserving forced
  fetches only for explicit manual user refreshes.
- Update "No checks configured" copy to "No checks reported yet" to avoid
  misleading users before their CI pipelines have started running.
- Ensure manual checks refreshes do not inherit in-flight automatic requests
  which might be backed by cached CLI data.
- Lookup head-specific cache keys during PR refresh events to prevent
  incorrectly deriving neutral check statuses.

* Clarify polling reset comment in ChecksPanel

Update the comment to accurately refer to the entry refresh rather
than a forced fetch establishing a fresh baseline.

* Update manual project order notice wording and add translations (#5253)

Correct a minor grammatical issue in the English notice by adding
"the". Additionally, localize FolderWorkspaceComposerDialog and
ProjectOrderManualDefaultNotice in Spanish, Japanese, Korean, and
Chinese to replace the English fallback strings.

* release: v1.4.65-rc.0

* Add Grok sessions to AI Vault (#5258)

* Add effectiveness telemetry for in-app GitHub stars (#5245)

Co-authored-by: Orca <[email protected]>

* fix(serve): persist active serve session tab so PTY output doesn't snap focus to the last tab (#5131)

* fix(serve): persist active mobile-session tab so PTY output doesn't snap focus

In `orca serve` (headless host + remote/web client), running a command in a
terminal snapped the active tab back to the last-created tab. The renderer
reconcile forces the client's active tab to the host's reported active
(activeTabId / activeTabType / per-tab isActive), but `activateMobileSessionTab`
only called `focusTerminal` — a no-op for serve tabs no renderer has adopted —
and never persisted the chosen tab into the host's in-memory snapshot. So every
`onPtyData` -> `touchMobileSessionSnapshotsForPty` republish re-emitted the stale
"active = last tab" and the client snapped back on each command.

Persist the activation into the headless snapshot (activeTabId, activeTabType,
exclusive per-tab isActive, rebuilt tabGroups) after the focus dispatch, gated on
`!getAvailableAuthoritativeWindow() && isHeadlessMobileSessionPublication(...)` —
the same guard the hydrate path uses, so renderer-owned snapshots (including
`:headless-merge:`) stay authoritative. No-op when the tab is already active;
adds nothing to the `onPtyData` hot path.

Adds 3 regression tests covering: chosen tab survives a PTY republish, no version
bump on redundant activation, and no server-side persist when a renderer is
authoritative.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

* fix(serve): exclude :headless-merge: snapshots from headless active-tab persist

After a renderer detaches there is no authoritative window, so the
!getAvailableAuthoritativeWindow() guard alone let merged (:headless-merge:)
snapshots through this path. A merged snapshot still carries renderer-owned
tabs/groups, so a server-side active-tab rewrite could collapse that mixed
group state. Exclude merged epochs from the persist gate; only pure
`headless:` / `headless-hydrated:` publications are persisted server-side.

Adds a regression test: renderer-detach + `:headless-merge:` snapshot ->
the headless persist is suppressed (no snapshot mutation / event).

Addresses the CodeRabbit review on #5131.

* review: clarify headless active-tab persistence guard

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* Move settings out of help dropdown into dedicated sidebar button (#5272)

- Pulls the Settings option out of the Help dropdown menu and renders it as a standalone button directly in the sidebar.
- Integrates the `useShortcutKeys` hook and `ShortcutKeyCombo` component to display the settings keyboard shortcut in the button's tooltip.
- Updates associated tests to verify the new button's placement, ARIA attributes, and tooltip content.

* Fix active tab scrolling and editor keyboard layout on mobile (#5271)

* Improve mobile session tab scrolling and editor keyboard layout

- Auto-scroll the active session tab into view within the horizontal
  tab strip, using a new layout-aware utility with minimal scrolling.
- Use visual viewport measurements in the editor WebView to accurately
  report keyboard insets and lift floating controls above the keyboard,
  as native events can under-report covered areas.

* Fix active tab scrolling and normalize editor keyboard inset

- Ensure the active session tab is scrolled into view immediately when
  its layout finishes to prevent it from remaining hidden off-screen.
- Round, clamp, and validate WebView visualViewport bottom measurements
  to avoid rendering inconsistencies from fractional or invalid insets.
- Trigger an immediate keyboard inset report on script initialization.

* Update tabStripOffsetRef when scrolling mobile tab strip

Ensure the cached offset is updated to match the next scroll position. Without this update, subsequent scroll calculations would use stale offset values.

* fix: address review findings (#5273)

* release: v1.4.65-rc.1

* fix: address review findings (#5275)

* fix: clarify Korean terminal link routing label (#5277)

* Update Android mobile release links to 0.0.13

Point Android download links at the published mobile-v0.0.13 release.

* Defer project header pointer capture until drag threshold is crossed (#5278)

This allows simple clicks on the repository header to still reach the
inner collapse handler on pointerup. Additionally, body cursor and
user-select styles are only applied when actual dragging begins,
rather than when the session is armed.

* release: v1.4.65-rc.2

* Add Linear write commands for agents (#5165)

Co-authored-by: Orca <[email protected]>

* release: v1.4.65-rc.3

* fix: distinguish remote project paths by SSH connection (#5279)

Co-authored-by: Orca <[email protected]>

* Fix WSL agent setup to use the distro login shell (#5285)

* Fix tab agent identity detection (#5283)

Co-authored-by: Orca <[email protected]>

* feat(mobile): paste clipboard images into terminals (#5264)

* fix: browser url preview with arrow navigation [#5113] (#5221)

* fix: browser url preview with arrow navigation

* Fix browser autocomplete preview cancel

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* Add left sidebar appearance setting (#5280)

Co-authored-by: Orca <[email protected]>

* Fix markdown preview links routing to system browser instead of Orca (#5265)

* Fix markdown preview links opening in system browser instead of Orca

In the markdown preview, a plain (or Cmd/Ctrl) click on an http/https link
called window.api.shell.openUrl() directly, which always routes to
shell.openExternal (the OS default browser). It bypassed openHttpLink, so a
plain click could never open in the Orca built-in browser, regressing the
behavior from #987. The Cmd/Ctrl+Shift escape hatch was already correct.

Route both http click paths through openHttpLink via a new
resolveMarkdownPreviewHttpOpenOptions helper that centralizes the
cross-platform modifier decision (Cmd on Mac, Ctrl on Linux/Windows):
- plain / Cmd-click -> { worktreeId } -> Orca browser (per openLinksInApp),
  falling back to the system browser when the setting is off, no worktree is
  known, or a remote runtime is active.
- Cmd/Ctrl+Shift-click -> { forceSystemBrowser: true } -> system browser.

The remote/SSH case is handled inside openHttpLink (http stays on the client
system browser; file:// blocking is unchanged).

Adds a happy-dom interaction test that renders the real component and fires
real modifier clicks, plus full modifier-matrix coverage for the helper.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

* review: share markdown preview link modifier logic

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* release: v1.4.66-rc.0 [rc-slot:2026-06-12-15]

* Fix Tasks PR detail drawer and GitHub attachment videos (#5288)

Co-authored-by: Orca <[email protected]>

* feat: add Devin CLI as supported TUI agent (#5282)

* feat: add Devin CLI as supported TUI agent

Register Devin across shared agent config, telemetry, desktop/mobile
catalogs, localization, and README. Uses stdin-after-start prompt
delivery with --permission-mode bypass default args.

* test: assert Devin default --permission-mode bypass in startup plans

* Fix Windows multiline terminal paste (#5291)

* Fix Linux dock window class (#5293)

* Fix Windows task issue header overlap (#5295)

* Add keyboard shortcuts to launch agent tabs (default agent + per-agent bindings) (#5214)

* Add keyboard shortcuts to launch agent tabs

Cmd+T opens a plain terminal tab, but launching an agent in a new tab was
mouse-only (tab bar + menu). This adds:

- tab.newAgent ("New agent tab"): launches the default agent in a new tab
  in the active workspace. Default chord Cmd+Alt+T on macOS; unassigned on
  Windows/Linux (AltGr / desktop-terminal chord conflicts), bindable in
  Settings. Resolves the agent via the configured default when detected
  and enabled, otherwise the shared auto-pick order; a 'blank' default
  falls through to auto-pick since an explicit agent chord wants an agent.
- tab.newAgent.<id>: one bindable action per TUI agent so each enabled
  agent can sit on its own chord. All ship unassigned. Settings →
  Shortcuts shows them in a new "Agents" group, hiding disabled agents;
  a per-agent chord launches its agent even when detection hasn't
  confirmed the binary (explicit request fails visibly in the tab).

Launches go through launchAgentInNewTab (same path as the tab-bar quick
launch) with launch_source 'shortcut'. Agent display names move to a
shared module so the keybinding registry can title the generated actions
without importing renderer code. groupDefinitions moves out of
ShortcutsPane.tsx to keep it under the max-lines lint cap.

* Fix recording Option-composed shortcuts on macOS

On macOS, Option changes the produced character (Cmd+Alt+C reports
key 'ç'), so the shortcut recorder rejected Alt combos with 'Press a
key, not only a modifier'. Capture now falls back to the physical key
code when Alt is held, matching the existing matcher behavior.

* fix: ignore disabled agent shortcuts in conflict checks

Co-authored-by: Orca <[email protected]>

* fix: align mac option shortcut capture with matching

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* fix: replace per-5s full-buffer terminal checkpoints with an incremental log (#5292)

Co-authored-by: Orca <[email protected]>

* Fix rich markdown image paste bloat (#5290)

Co-authored-by: Orca <[email protected]>

* Improve Warp custom theme discovery (#5287)

Co-authored-by: Orca <[email protected]>

* Suppress decorative agent title churn (#5294)

* release: v1.4.66-rc.1

* Fallback to system SSH on reachability errors (#5303)

Co-authored-by: Orca <[email protected]>

* Confirm Linear setup after Re-check (#5300)

Co-authored-by: Orca <[email protected]>

* Align Source Control action buttons (#5305)

Co-authored-by: Orca <[email protected]>

* Add Enable auto-merge action to PR merge dropdown (#5296) (#5309)

Co-authored-by: Orca <[email protected]>

* release: v1.4.66-rc.2 [rc-slot:2026-06-13-03]

* fix(sidebar): increase worktree card content inset (#4885)

Co-authored-by: brennanb2025 <[email protected]>

* refactor: simplify runtime service helpers (#4005)

* refactor: simplify runtime service helpers

* fix: keep tui idle cheap checks polling

---------

Co-authored-by: brennanb2025 <[email protected]>

* Own Claude OAuth refresh instead of scraping it back (#5318)

Co-authored-by: Orca <[email protected]>

* Fix agent tabs opening as a bare shell with oh-my-zsh vi-mode (#5315)

* fix(terminal): emit zsh shell-ready marker even when a user zle-line-init hook fails

Orca's zsh wrapper registered its OSC-777 shell-ready marker via
`add-zle-hook-widget line-init`. zsh's azhw dispatcher aborts the whole
hook chain when an earlier hook returns non-zero, and oh-my-zsh's vi-mode
installs a raw `zle-line-init` that exits 1 when VI_MODE_SET_CURSOR is
unset. The marker never fired, so every queued startup command sat on the
daemon's 15s pre-ready timeout — agent quick-launches looked like they
just opened a bare terminal.

Own `zle-line-init` directly: emit the marker first, then chain to any
previously-installed widget (called as a plain function so $WIDGET stays
`zle-line-init` for downstream azhw dispatchers). The registration is
idempotent — a re-source keeps the originally captured widget instead of
clobbering the chain. Applied to both the daemon and local-PTY wrappers
via a shared template helper.

* test(shell-ready): skip global zsh rcs so CI compinit can't block the marker tests

The real-zsh node-pty tests spawned 'zsh -l'/'zsh -i', which on CI runners
sources /etc/zsh/* whose global compinit hits insecure (group-writable) fpath
dirs and blocks on an interactive 'insecure directories [y/n]?' prompt before
zle-line-init fires. The marker never appeared and the tests timed out. Spawn
with -o noglobalrcs so only our ZDOTDIR wrapper/fixtures load; the marker
contract is unaffected.

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* Fix runtime status for legacy transport metadata (#3956)

* Add mobile Review Changes workflow (#5313)

* Add mobile diff review

* Wrap mobile review notes prompt

* Fix mobile review unreviewed navigation

* Clear review completion when a refreshed diff invalidates a reviewed file

mergeMobileDiffReviewState invalidates a file's reviewed flag when its
diff identity changes, but left completedAt set — inconsistent with
markUnreviewed. Drop completedAt on invalidation and add a regression
test.

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* fix(mobile): retry handshake before latching auth-failed (#5200) (#5304)

* Run the file watcher off the main process to fix the serve deadlock (#5308) (#5310)

Co-authored-by: Orca <[email protected]>

* fix: resolve PR workspaces on SSH remotes (fetch via dedicated RPC) (#5320)

* Support full Linear task workflows from the CLI (#5323)

Co-authored-by: Orca <[email protected]>

* Match the sidebar app name to custom sidebar colors (#5324)

* Attach Linear issues from the worktree CLI (#5322)

Co-authored-by: Orca <[email protected]>

* Adjust Linear setup prompt reminders (#5297)

* release: v1.4.67-rc.0 [rc-slot:2026-06-13-15]

* Hide stale workspace chrome during worktree creation (#5328)

* feat: add GitHub Enterprise URL support (#5081)

Co-authored-by: brennanb2025 <[email protected]>

* Keep Linear-linked agent launches workflow-neutral (#5331)

Co-authored-by: Orca <[email protected]>

* fix: handle window-close request at the always-mounted App root (#5144) (#5332)

* fix: prompt to discard unsaved Settings AI prompts on quit instead of silently blocking (#5335)

* fix: WSL agent detection broken for zsh login shells (#5325) (#5337)

* Fix workspace cleanup modal spacing (#5334)

* Make remote hosts first class: concurrent multi-host workbench (#5071)

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Checkpoint multi-host sidebar and project-first notes

Co-authored-by: Orca <[email protected]>

* Add project-first compatibility persistence

Co-authored-by: Orca <[email protected]>

* Expose project host setup APIs

Co-authored-by: Orca <[email protected]>

* Group sidebar rows by project setup

Co-authored-by: Orca <[email protected]>

* Document project-first host model discussion

Co-authored-by: Orca <[email protected]>

* Resolve workspace creation through project host setups

Co-authored-by: Orca <[email protected]>

* Stamp workspace ownership with project host setup

Co-authored-by: Orca <[email protected]>

* Add project host setup existing folder API

Co-authored-by: Orca <[email protected]>

* Summarize project-first host model discussion

Co-authored-by: Orca <[email protected]>

* Add project host setup CLI commands

Co-authored-by: Orca <[email protected]>

* Allow CLI worktree creation by project host setup

Co-authored-by: Orca <[email protected]>

* Add workspace host setup picker

Co-authored-by: Orca <[email protected]>

* Add project host setup settings summary

Co-authored-by: Orca <[email protected]>

* Make project host setup settings navigable

Co-authored-by: Orca <[email protected]>

* Stabilize project host setup settings selector

Co-authored-by: Orca <[email protected]>

* Add project host existing-folder setup form

Co-authored-by: Orca <[email protected]>

* Update project host model implementation status

Co-authored-by: Orca <[email protected]>

* Keep projects outermost in default sidebar view

Co-authored-by: Orca <[email protected]>

* Update project-first sidebar status

Co-authored-by: Orca <[email protected]>

* Show host context in project sidebar groups

Co-authored-by: Orca <[email protected]>

* Show unavailable hosts in workspace run target

Co-authored-by: Orca <[email protected]>

* Import missing project host from composer

Co-authored-by: Orca <[email protected]>

* Clone project host setup from composer

Co-authored-by: Orca <[email protected]>

* Persist project host setup method

Co-authored-by: Orca <[email protected]>

* Clone project hosts over SSH

Co-authored-by: Orca <[email protected]>

* Improve SSH clone cancellation cleanup

Co-authored-by: Orca <[email protected]>

* Backfill workspace project host ownership

Co-authored-by: Orca <[email protected]>

* Gate project host setup runtime capability

Co-authored-by: Orca <[email protected]>

* Preserve independent project host setups

Co-authored-by: Orca <[email protected]>

* Add project host setup update API

Co-authored-by: Orca <[email protected]>

* Add project host setup delete API

Co-authored-by: Orca <[email protected]>

* Add project host setup create API

Co-authored-by: Orca <[email protected]>

* Expose project host setup lifecycle in renderer store

Co-authored-by: Orca <[email protected]>

* Handle independent project host setups in settings

Co-authored-by: Orca <[email protected]>

* Add pending host setup action in project settings

Co-authored-by: Orca <[email protected]>

* Show pending project host setup status in composer

Co-authored-by: Orca <[email protected]>

* Report pending setup state in workspace target resolution

Co-authored-by: Orca <[email protected]>

* Use shared host registry for project setup choices

Co-authored-by: Orca <[email protected]>

* Add settings clone flow for project host setups

Co-authored-by: Orca <[email protected]>

* Gate unavailable project host setup options

Co-authored-by: Orca <[email protected]>

* Gate unavailable project setup hosts in settings

Co-authored-by: Orca <[email protected]>

* Stream SSH clone progress to renderer

Co-authored-by: Orca <[email protected]>

* Update project host model status notes

Co-authored-by: Orca <[email protected]>

* Add CLI project host setup clone command

Co-authored-by: Orca <[email protected]>

* Make add project host aware

Co-authored-by: Orca <[email protected]>

* Complete project host setup validation

Co-authored-by: Orca <[email protected]>

* Recover floating workspace terminal WebGL atlas on reopen (#5069)

Co-authored-by: Orca <[email protected]>

* Fix stale terminal daemon spawn health (#5064)

Co-authored-by: Orca <[email protected]>

* Suspend floating workspace terminal WebGL while the panel is closed (#5073)

Co-authored-by: Orca <[email protected]>

* Fix source control branch compare base (#5074)

Co-authored-by: Orca <[email protected]>

* Fix workspace-creation tour panel clipped by the Create Worktree dialog (#5078)

* Fix workspace-creation tour panel clipped by the composer dialog

The tour panel portals into dialog/sheet content that clips overflow, but
its position was clamped against the window viewport. With the Project
field spanning nearly the dialog's full width, the panel landed past the
dialog's right edge and overflow-hidden cut it down to a sliver. Clamp
hosted panels within the host's bounds instead, so the panel flips below
the target and stays fully visible.

Co-Authored-By: Claude Fable 5 <[email protected]>

* Add JSDoc docstrings to satisfy CodeRabbit docstring coverage check

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* Test hosted contextual tour overlay positioning

---------

Co-authored-by: Claude Fable 5 <[email protected]>
Co-authored-by: Neil <[email protected]>

* release: v1.4.56

* Handle buffer overflows gracefully and truncate diffs fairly (#5083)

- Gracefully fall back to file-name summaries when staged diffs exceed
  node/ssh execution maxBuffer limits, preventing generation failures.
- Split oversized diffs by file and allocate budget via water-filling,
  ensuring single huge files do not starve smaller human changes.
- Clip truncated diff sections on line boundaries to avoid half-lines.

* Wrap AI generation controls with tooltips and clean i18n dependencies (#5087)

- Wrap the AI generation button in a tooltip so users can see the
  disabled reason or the action description on hover.
- Add unit tests verifying tooltip triggers and aria-label safety.
- Simplify memo dependencies in settings metadata and worktree palette
  by using 'useTranslation()' to handle language-change rerenders
  directly without needing 'i18n.language'.

* fix: address review findings (#5088)

* Fix localization in repository hooks and base ref suggestion toast (#5089)

* Fix localization in base ref toast and custom hook description

- Localize the "commit"/"commits" plural nouns in the base ref toast.
- Translate missing suggestion toast strings for JA, KO, and ZH locales.
- Pass `{{artifact_url}}` as a literal template variable to translate
  calls to prevent i18next from treating it as a dynamic placeholder.

* Fix localization reactivity in RepositoryHooksSection

Move static variables containing translation calls into helper functions
and subscribe to translation updates using useTranslation. This ensures
that localized options, descriptions, and error messages refresh
dynamically when the user changes the UI language.

* Fix task page labels after language changes (#5086)

Co-authored-by: Orca <[email protected]>

* release: v1.4.57

* Fix automation tabs showing a shell instead of the live agent (#5099)

* Fix automation tabs showing a shell instead of the live agent

Opening a background automation's terminal tab showed a bare shell while
the agent (Claude) kept running headless — the sidebar updated but the
pane was attached to the wrong PTY.

On first mount the restored ptyId equals the tab ptyId, and
isSessionOwnedByWorktree() returns true for it, so connectPanePty routed
the still-live eagerly-spawned PTY into the daemon-reattach branch
(transport.connect({ sessionId })), which spawns a fresh shell and
orphans the live agent PTY instead of adopting it via attach()+replay.

Part A: gate the deferred reattach on the absence of a live eager buffer.
A live eager buffer means the PTY is a still-running local session to
adopt (attach + replay), not a daemon session to re-connect. Daemon
reattach and remote PTYs are unaffected (gated on the eager buffer).

Part B: publish never-mounted background automation tabs into the runtime
graph (gated on a live eager buffer) so the live agent PTY binds to its
real tab instead of surfacing as an orphan `pty:<id>` terminal — fixing
`orca terminal list`, the CLI, and automation session-reuse.

Adds a characterization test (fails on the old code, passes now) and a
runtime-graph publish test.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

* Harden eager PTY tab adoption

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* Fix i18n label spacing in menus and settings (#5108)

* fix i18n label spacing

* Fix localized account runtime labels

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Jinwoo-H <[email protected]>
Co-authored-by: Orca <[email protected]>

* Improve localization catalog sync workflow (#5110)

Co-authored-by: Orca <[email protected]>

* Add Warp terminal theme import (#4714)

Co-authored-by: Orca <[email protected]>

* release: v1.4.58

* Tidy README badge layout

* Handle integration credential decrypt failures (#4683)

Co-authored-by: Orca <[email protected]>

* Fix git repo telemetry for repo adds (#5121)

Co-authored-by: Orca <[email protected]>

* Add feature interaction usage bucket telemetry (#5119)

Co-authored-by: Orca <[email protected]>

* Reset WebGL glyph atlases globally to stop cross-terminal glyph corruption (#5122)

Co-authored-by: Orca <[email protected]>

* perf(windows): fix 60s startup ACL walk and OpenCode streaming freeze, with benchmark harnesses (#5124)

* release: v1.4.59-rc.0

* Fix packaged shell PATH order (#5125)

Co-authored-by: Orca <[email protected]>

* Add Floating Workspace contextual tour (#5062)

* Add floating workspace contextual tour

Co-authored-by: Orca <[email protected]>

* Clarify floating workspace tour intro copy

Co-authored-by: Orca <[email protected]>

* Differentiate floating workspace tour steps instead of repeating examples

Co-authored-by: Orca <[email protected]>

* Lead floating workspace tour with the user benefit

Co-authored-by: Orca <[email protected]>

* Pitch floating workspace tour around cross-repo agents

Co-authored-by: Orca <[email protected]>

* Refine floating workspace tour step 1 copy

Co-authored-by: Orca <[email protected]>

* Anchor floating workspace tour step 2 on the minimize control

Co-authored-by: Orca <[email protected]>

* Restore floating workspace tour step 2

Co-authored-by: Orca <[email protected]>

* Anchor floating workspace tour steps on New Terminal and New Markdown Note

Co-authored-by: Orca <[email protected]>

* Retitle floating workspace tour step 2 as scratchpad

Co-authored-by: Orca <[email protected]>

* Add why-comments for tour selector fallback and placement flipping

Co-authored-by: Orca <[email protected]>

---------

Co-authored-by: Orca <[email protected]>

* Fix source control compare base ambiguity (#5127)

Co-authored-by: Orca <[email protected]>

* release: v1.4.59-rc.1 [rc-slot:2026-06-10-15]

* release: v1.4.59

* Default-driven create-project flow: name-first form with sensible defaults (#5115)

Co-authored-by: Orca <[email protected]>

* Redesign Connect integrations (#4531)

Co-authored-by: Orca <[email protected]>

* Expose E2E store via build mode

* File search match counts (#5085)

* Add matchCount to SearchFileResult for accurate per-file hit counts

Co-authored-by: Orca <[email protected]>

* Add file search match count design

* rm design doc

---------

Co-authored-by: Orca <[email protected]>

* fix: address review findings (#5139)

* perf(windows): avoid blocking daemon pid checks (#5137)

* release: v1.4.60-rc.0

* release: v1.4.60

* Preserve core workflow terms in English and apply CJK spacing (#5141)

* Preserve core workflow and product terms in English across locales

Update translation policy to prevent localization of key terms such as
"Agent", "Commit", "Markdown", and "Terminal". This ensures consistent
jargon and product branding.

Introduce CJK-Latin term spacing to keep these Latin terms legible
when combined with CJK text, while adjusting Korean particle spacing.
Also add overrides to prevent network proxy settings from being
mistranslated as "Agent".

* Preserve repo terminology in English and localize source control labels

Treat "repo" and "repos" (and their capitalized forms) as brand terms
that should remain in English/Latin across CJK and Spanish locales.
Update translation files and policies to replace translated words like
"repositorio" or "リポジトリ" with "repo"/"repos", and fix an issue where
latin brand terms could be incorrectly matched as substrings in larger
words during cleanup.

Additionally, externalize and localize the "Staged Changes", "Changes",
and "Untracked Files" section labels in the source control sidebar.

* UX (#5143)

* UX/copy tweaks (#5142)

* UX/copy tweaks

* UX/copy tweaks

* Fix missed star UI translations (#5148)

* fix: make windows ssh relay deploy survive session teardown (#5136)

* Add option to remove child projects when deleting repo groups (#4702)

Co-authored-by: Orca <[email protected]>

* fix: remove checks panel response badge (#5147)

* Add read-only `orca linear` CLI with trusted launch-prompt pointer (V1) (#5126)

Co-authored-by: Orca <[email protected]>

* Add AI Vault session history

## Summary
- add AI Vault session scanning and resume command construction
- add the Agents sidebar panel with filtering, grouping, copy/open actions, and local resume launch
- support dragging saved sessions onto terminal split panes

## Validation
- pnpm run lint
- pnpm run typecheck
- pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/register-core-handlers.test.ts src/main/ai-vault/session-scanner.test.ts src/renderer/src/components/right-sidebar/ai-vault-session-filters.test.ts src/renderer/src/lib/ai-vault-session-drag.test.ts src/renderer/src/lib/launch-ai-vault-session.test.ts

* Default agent launches to yolo permissions mode (#5145)

* Default agent launches to yolo mode

* test: update launch default validations

* Fix Claude usage refresh error copy (#5155)

Co-authored-by: Orca <[email protected]>

* Move workspace board to sidebar bottom toolbar (#5146)

Co-authored-by: Orca <[email protected]>

* Rebuild contextual tour positioning on floating-ui; fix hosted dialog placement and arrow seam (#5154)

Co-authored-by: Orca <[email protected]>

* Fix missing spaces in cross-repo switch dialog (#5158)

* Fix Ctrl+Tab switcher selection on release (#5116)

* Fix additional i18n spacing regressions from #4995 (#5159)

* Refine add project selection styling (#5160)

Co-authored-by: Orca <[email protected]>

* improve chinese localization (#5162)

* Fix floating workspace needing two clicks after app switch (macOS) (#5128)

* Autofocus feedback textarea when Send Feedback dialog opens (#5164)

* fix: address pr-bug-scan validated finding from #4683 (#5151)

Isolated CredentialDecryptionError per-item in Linear getClients (client.ts:518) and Jira getClients (client.ts:373) on the 'all' selection so one bad credential no longer collapses healthy workspaces

Co-authored-by: orca-bug-scan-bot <[email protected]>

* fix: enable claude agent teams by default (#5168)

* Refresh Jira and Linear status after credential errors (#5169)

* fix: address pr-bug-scan validated finding from #4683

Isolated CredentialDecryptionError per-item in Linear getClients (client.ts:518) and Jira getClients (client.ts:373) on the 'all' selection so one bad credential no longer collapses healthy workspaces

* Refresh Jira and Linear status to clear stale credential errors

Ensure stale credential decryption errors are cleared from the store
status once a successful API read completes. By updating the check in
shouldRefreshStatusAfterRead to trigger when a credentialError is
currently set, successful issue or list fetches will trigger a status
check and remove stale error flags.

---------

Co-authored-by: orca-bug-scan-bot <[email protected]>

* Hide internal context from AI Vault titles (#5175)

* Fix detached HEAD publish actions (#5173)

* Keep freshly split terminal pane mounted if newborn PTY exits early (#5171)

Prevent a newly split pane from collapsing immediately if its PTY exits
during initial setup before any output is received or input is sent.
This ensures a failed startup session remains visible to the user.

* Route task PR queries by upstream source (#5176)

* Route task PR queries by upstream source

Implements the routing described in docs/tasks-pr-upstream-source.md so task PR and issue queries stay scoped to the selected source.

* rm design doc

* Prevent stale PR refreshes from restoring unlinked review state (#5180)

- Pass `worktreeId` to `fetchPRForBranch` to track active worktree context
- Ignore inflight or queued PR fetches if the worktree has been unlinked
- Include linked PR/MR metadata in the checks panel snapshot key to trigger updates immediately on link/unlink events

* Fix Claude agents management status detection (#5179)

Co-authored-by: Orca <[email protected]>

* fix: address review findings (#5177)

* Allow resolving selected review comments with AI (#5184)

* Allow resolving selected PR/MR review comments with AI

Users can now select specific unresolved review comments or threads in
the Checks panel sidebar, queue them, and trigger an AI agent to address
them, marking resolved threads on the host upon agent launch.

- Adds checkboxes and action/send buttons to select and queue comments.
- Builds a structured, robust prompt with sanitized comment metadata.
- Optimistically marks threads resolved on launch with rollback on error.
- Supports both GitHub PRs and GitLab MRs.

* Consolidate PR comment selection state and eliminate effects

Combine independent selection states and context-tracking into a single
state object. Derive active selection data and prune ineligible comments
during render using useMemo instead of relying on asynchronous
useEffect synchronization hooks.

* Improve source control action dialog layout and recipe saving UX (#5153)

* Improve source control agent action dialog layout and recipe UX

- Constrain dialog and scroll area heights to prevent viewport overflow.
- Add variable chips to easily insert the base prompt with tooltip previews.
- Keep the recipe save controls visible when a recipe is already saved, showing informational status text instead of hiding them.
- Update localized copy across multiple languages and reduce textarea rows.
- Add unit tests for the variable chip preview and save target visibility.

* Fix recipe-saved check in source control action dialog

* Evaluate only the selected save target instead of checking all available targets, as the action only writes to the selected target.
* Update daemon PTY adapter test fake PID to prevent collision with real host OS processes during runtime directory lookups.

* fix: remove unsupported agent launch defaults (#5185)

* Update Chinese and Japanese translations for worktrees and fixes (#5187)

- Correct awkward Chinese translation of "fix" ("使固定") to "修复" and "基本的" to "主工作树" (main worktree).
- Improve Japanese translation of "fix" from physical repair ("修理") to software correction ("修正").

* Embed hosted review creation composer directly in Checks panel (#5140)

* Embed hosted review creation composer directly in the Checks panel

- Replaces the modal pull request/merge request creation dialog with an
  inline composer embedded in the empty state of the Checks sidebar.
- Extracts and moves pull request generation state to a dedicated store
  slice so AI-generated details are persisted across sidebar unmounts.

* Fix hosted review composer feedback

* Combine file search and file explorer right sidebar tabs (#5182)

Unifies file discovery and tree navigation under a single Explorer domain, simplifying the right sidebar activity bar and reducing tab clutter.

* Replaces the standalone 'search' activity bar tab with a nested 'search' subview inside the File Explorer tab
* Introduces 'rightSidebarExplorerView' ('files' | 'search') state to manage the active subview inside the Explorer
* Adds a search button to the File Explorer toolbar and a back button to the search subview for seamless transition
* Exposes 'showRightSidebarFiles' and 'showRightSidebarSearch' store actions to route and seed search queries/include patterns
* Adapts file explorer keybindings, git status polling, and external workspace watchers to respect the active subview
* Maps legacy persisted search tab state to the new explorer search view for backward compatibility

* release: v1.4.61-rc.1

* Add multi-repo folder workspaces (v1) (#5172)

Co-authored-by: Orca <[email protected]>

* release: v1.4.61-rc.2

* Hide unavailable project hosts in worktree composer

Co-authored-by: Orca <[email protected]>

* Remove inline project host setup from composer

Co-authored-by: Orca <[email protected]>

* Mark imported project host setup methods

Co-authored-by: Orca <[email protected]>

* Fix rebase merge fallout

Co-authored-by: Orca <[email protected]>

* Disable unavailable Add Project hosts

Co-authored-by: Orca <[email protected]>

* Compact Add Project host selector

Co-authored-by: Orca <[email protected]>

* Hide redundant SSH target chooser

Co-authored-by: Orca <[email protected]>

* Browse SSH clone destinations

Co-authored-by: Orca <[email protected]>

* Avoid local clone defaults for SSH hosts

Co-authored-by: Orca <[email protected]>

* Polish host-aware Add Project flows

Co-authored-by: Orca <[email protected]>

* Polish remote host add project flows

Co-authored-by: Orca <[email protected]>

* Remove redundant host kind chips

Co-authored-by: Orca <[email protected]>

* Fix remote project setup UX gaps

Co-authored-by: Orca <[email protected]>

* Fix multihost workspace composer project identity

Co-authored-by: Orca <[email protected]>

* Finish host context merge repair

Co-authored-by: Orca <[email protected]>

* Continue host context checklist implementation

Co-authored-by: Orca <[email protected]>

* Route Linear and Jira tasks by source context

Co-authored-by: Orca <[email protected]>

* Preserve Linear task source context in history

Co-authored-by: Orca <[email protected]>

* Scope task retry state by source context

Co-authored-by: Orca <[email protected]>

* Route GitHub drawer reads by source context

Co-authored-by: Orca <[email protected]>

* Guard GitLab selectors with repo context

Co-authored-by: Orca <[email protected]>

* Guard GitHub metadata selectors

Co-authored-by: Orca <[email protected]>

* Route GitHub task row actions by source context

Co-authored-by: Orca <[email protected]>

* Update GitHub source-context checklist status

Co-authored-by: Orca <[email protected]>

* Show host ownership for CLI provider accounts

Co-authored-by: Orca <[email protected]>

* Persist GitLab task detail source context

Co-authored-by: Orca <[email protected]>

* Show host scope for provider API budgets

Co-authored-by: Orca <[email protected]>

* Preserve Jira task source context

Co-authored-by: Orca <[email protected]>

* Scope Jira optimistic task patches

Co-authored-by: Orca <[email protected]>

* Resolve task PR bases on run host

Co-authored-by: Orca <[email protected]>

* Record Jira task workspace usage

Co-authored-by: Orca <[email protected]>

* Scope Linear optimistic task patches

Co-authored-by: Orca <[email protected]>

* Scope GitHub optimistic task patches

Co-authored-by: Orca <[email protected]>

* Clean host copy in onboarding flows

Co-authored-by: Orca <[email protected]>

* Preserve automation CLI run context

Co-authored-by: Orca <[email protected]>

* Add automation CLI source context selector

Co-authored-by: Orca <[email protected]>

* Clarify unavailable task source hosts

Co-authored-by: Orca <[email protected]>

* Surface host model runtime capability skew

Co-authored-b…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant