Commit Graph
719 Commits
Author SHA1 Message Date
Neil 470d46ecea 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
2026-06-11 12:50:57 -07:00
Brennan BensonandOrca 388d0a90b4 Add read-only orca linear CLI with trusted launch-prompt pointer (V1) (#5126)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:50:57 -07:00
Neil 63f1f39d56 UX/copy tweaks (#5142)
* UX/copy tweaks

* UX/copy tweaks
2026-06-11 12:48:35 -07:00
Jinjing 44f6f6c82a fix: address review findings (#5139) 2026-06-11 12:47:32 -07:00
JinjingandOrca bc4390f568 File search match counts (#5085)
* Add matchCount to SearchFileResult for accurate per-file hit counts

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

* Add file search match count design

* rm design doc

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:47:31 -07:00
Brennan BensonandOrca 16d9e03c49 Add Floating Workspace contextual tour (#5062)
* Add floating workspace contextual tour

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

* Clarify floating workspace tour intro copy

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

* Differentiate floating workspace tour steps instead of repeating examples

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

* Lead floating workspace tour with the user benefit

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

* Pitch floating workspace tour around cross-repo agents

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

* Refine floating workspace tour step 1 copy

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

* Anchor floating workspace tour step 2 on the minimize control

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

* Restore floating workspace tour step 2

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

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

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

* Retitle floating workspace tour step 2 as scratchpad

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

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

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:39:58 -07:00
Jinwoo Hong a1a816769b perf(windows): fix 60s startup ACL walk and OpenCode streaming freeze, with benchmark harnesses (#5124) 2026-06-11 12:39:57 -07:00
Brennan BensonandOrca a0ab184f13 Add feature interaction usage bucket telemetry (#5119)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:39:57 -07:00
Brennan BensonandOrca 9a9f9d63b4 Fix git repo telemetry for repo adds (#5121)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:38:44 -07:00
Brennan BensonandOrca cdb886df2b Handle integration credential decrypt failures (#4683)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:36:57 -07:00
Brennan BensonandOrca 94f37ef7fb Add Warp terminal theme import (#4714)
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:36:57 -07:00
Jinjing 4ebbecf578 fix: address review findings (#5088) 2026-06-11 12:35:04 -07:00
Jinjing 7ea3cd5afe 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.
2026-06-11 12:35:04 -07:00
Jinwoo-HandOrca 16cbd773e3 Use shared host registry for project setup choices
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:34:00 -07:00
Jinwoo-HandOrca c622bd746f Add project host setup create API
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:59 -07:00
Jinwoo-HandOrca beb7cbaade Add project host setup delete API
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:59 -07:00
Jinwoo-HandOrca 4c146ce394 Add project host setup update API
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:59 -07:00
Jinwoo-HandOrca 4e9bc9b6c6 Gate project host setup runtime capability
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:59 -07:00
Jinwoo-HandOrca 359cb1baef Persist project host setup method
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:59 -07:00
Jinwoo-HandOrca b57f9e4914 Clone project host setup from composer
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:59 -07:00
Jinwoo-HandOrca cbdd3618d1 Add project host setup existing folder API
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 15a04d18a9 Stamp workspace ownership with project host setup
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:58 -07:00
Jinwoo-HandOrca 6641845285 Add project-first compatibility persistence
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:57 -07:00
Jinwoo-HandOrca d637222c2e Checkpoint multi-host sidebar and project-first notes
Co-authored-by: Orca <help@stably.ai>
2026-06-11 12:33:57 -07:00
Jinwoo Hong b5d9f3da8b Add Simplified Chinese, Korean, and Japanese UI localization (#5046) 2026-06-11 12:26:34 -07:00
Jinwoo-HandOrca 6b437f9820 Per-host setting overrides, host rename/remove, regression fixes
- hostSettingOverrides on GlobalSettings with effective = host override
  ?? client default (src/shared/host-setting-overrides.ts, tested);
  Apply-to scope selector on Workspace Directory with override
  indicator and reset
- Host display-label overrides flow through the registry so Rename in
  the host header menu updates every sidebar surface; Remove confirms
  then reuses the existing ssh-target cleanup (runtime hosts deep-link
  to the servers pane)
- Fix branch test regressions vs main: lineage fixture gains the
  workspaceHostScope field, dropdown mock gains DropdownMenuLabel, CLI
  terminal-create assertion reflects owner-scoped environmentId, repo
  fixtures expect intentional executionHostId stamping
- Split launch-work-item-direct types and WorktreeMetaDialog issue-link
  hook + save-payload builder into focused modules (max-lines)

Co-authored-by: Orca <help@stably.ai>
2026-06-09 20:03:50 -07:00
Jinwoo-HandOrca 3412919373 Route mutations by owner host; host header actions; per-host session persistence
- Fix ~30 owner-routing bugs found by call-site audit: SourceControl git
  ops, agent launch/notes, work-item preflight, repo icon, TabBar shell
  capabilities, GitHub project row edits, repo.update preference write
- Per-host splits for repo reorder and worktree sort-order persistence
- Host section headers gain a connection menu (focus, manage, ssh
  reconnect/disconnect, runtime check) and blocked-host update guidance
- Cmd+J palette shows owning-host badges when multiple hosts exist
- Partition persisted workspace session by execution host: host-keyed
  get/set/patch + IPC + preload, runtime-owned entries split to their
  partitions on write and merged on boot; legacy blob stays the local
  partition (zero-copy, idempotent migration)
- Keepalive regression tests pin no-teardown on runtime switch and
  boot-gated worktree purge; host scope documented as filter-only
- Fix host grouping for explicitly runtime-owned repos in All hosts view

Co-authored-by: Orca <help@stably.ai>
2026-06-09 19:25:51 -07:00
Jinwoo-HandOrca ea42a5c18d Multi-host groundwork: execution host identity, owner routing, host-scoped sidebar and ports
Inherited verified slice toward #4697 (multi-host Orca):
- ExecutionHostId/-Scope types, parse/build helpers, host registry
- Repos stamped with executionHostId; owner-host routing for github,
  hosted review, browser, diff comments, hooks, checks, terminals,
  file watching, activation
- Sidebar host scope strip + menu, host section rows, visibility filter
- Host-partitioned port scans with all-hosts aggregate projection

Typecheck, oxlint (touched files), and ownership/port suites green.

Co-authored-by: Orca <help@stably.ai>
2026-06-09 18:07:23 -07:00
Brennan BensonandOrca 1e7e494e9a Add "Use Orca's browser" onboarding milestone (#4855)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 13:50:46 -07:00
Jinjing ffe96c8f06 fix: remove amp archive flag (#5036) 2026-06-09 11:55:09 -07:00
Jinwoo HongandOrca 9369708f6b Add English localization infrastructure (#4995)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 10:43:04 -07:00
4d6c291eff fix(windows): stop main-thread PowerShell ACL storm on env-store reads (#5011)
* fix(windows): stop main-thread PowerShell storm on env-store reads

Two changes fix the v1.4.52+ Windows performance regression (#4901 regression
against #4840) where 49 powershell.exe processes were spawned in 27 seconds
during load, saturating the Electron main thread and causing black terminals
and runtimeEnvironments:call timeouts.

Root cause: `readEnvironmentStore` calls `hardenExistingSecureFile` on every
read. The env-store parent directory's mtime churns constantly (every secure
write updates it), so the mtime-keyed idempotency cache never matched →
`bestEffortRestrictWindowsPath` (powershell, ~1-1.5s synchronous) fired on
every call. After #4901, the remote-runtime tab-sync loop reads the store
~2×/s, turning sporadic mtime misses into a continuous main-thread storm.

Fix 1 – path-cached directory hardening: add `hardenedDirectoryPathsThisProcess
(Set<string>)` that caches directory hardening by PATH for the process lifetime.
A directory's required ACL does not change when its mtime changes; only file
hardening retains the metadata-keyed cache so post-rename inode changes are
detected correctly.

Fix 2 – async ACL application: replace `execFileSync(powershell.exe, ...)` with
`execFile` (fire-and-forget). PowerShell cold-start is ~1-1.5s; the function is
already named `bestEffortRestrictWindowsPath` so async/optimistic caching is
correct. `applySecurePathRestriction` returns `true` optimistically on win32 so
the cache entry is written before the background process completes.

Tests: new regression tests verify the directory is hardened exactly once even
when its mtime changes between calls, that unchanged files are not re-hardened,
and that ACL application goes through async execFile (not execFileSync).

* fix(windows): apply credential-file ACL synchronously on write path

Follow-up rigor on the env-store PowerShell ACL storm fix (#5006). The
read-path storm fix (path-cached async directory hardening + async file
re-harden) is retained, but switching ALL ACL application to async opened a
narrow Windows-only security window: because writeFileSync({mode}) is a no-op
on Windows, writeSecureFile returned with the credential file still carrying
the parent directory's inherited (broader) ACL for the ~1-1.5s PowerShell
cold-start, affecting the e2ee keypair, device registry, and runtime env auth
store.

Fix: apply the credential FILE's ACL synchronously (execFileSync) on the
infrequent write path, before the atomic rename publishes it, and cache the
path as hardened only on confirmed success so a failed apply retries. Keep the
DIRECTORY hardening async + path-cached for the process lifetime (that is what
killed the #4901/#5006 main-thread storm). The read path's existing-file
re-harden stays async + metadata-cached (fires at most once per file, no storm).

Also:
- Document the dir-path cache process-lifetime known limitation (deleted+
  recreated dir not re-hardened until restart).
- Remove the redundant double dir-cache write in writeSecureFile.
- Add docs/windows-secure-file-acl-hardening.md describing the sync-file/
  async-dir model and a manual Windows e2e test plan (the cross-platform
  Playwright harness runs on Linux and cannot reach the PowerShell path).

Tests (src/shared/secure-file.test.ts, 13 passing): credential file hardened
synchronously while dir stays async (no async file-ACL window); failed sync
file-ACL apply is not cached and retries; dir hardened exactly once across many
writes despite mtime churn; no PowerShell spawned on non-win32.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: keep POSIX secure directory hardening metadata-aware

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-06-09 01:47:29 -07:00
98d02bca47 fix: support windows ssh hosts (#5004)
* feat: add windows ssh relay base support

* feat: support windows ssh relay runtime services

* fix: default windows ssh pty cwd to user profile

* fix: support windows hosts over system ssh

* fix: preserve degraded windows relay native deps

* fix: gate windows shell args by relay platform

* fix: preserve windows relay fallback pipes

* test: align windows native deps relay fixture

* fix: build valid windows install lock command

* fix: address windows SSH relay review findings

Resolve correctness, efficiency, and reuse issues found reviewing the
Windows SSH native-host support:

- GC liveness on Windows now probes the actual named pipe (via node
  net.connect against markers + deterministic candidates) instead of
  substring-matching Win32_Process command lines, which could remove a
  live relay dir. Reports ALIVE conservatively only when there is no
  liveness signal at all (no markers and no seed pipes).
- Resolve the remote node path once per deploy and thread it through
  install/repair/launch instead of re-resolving 3-7x.
- Replace the 200ms node -e poll loop with a single long-lived remote
  wait process during Windows relay startup.
- Skip the no-op executable command on Windows in uploadRelay.
- Make the Windows fallback pipe name deterministic and recoverable
  (drop the global counter), with an extra reconnect attempt.
- Normalize the prepended node bin dir to backslashes on Windows PATH.
- Batch the system-SSH Windows directory upload into a single streamed
  JSON package instead of one ssh process per file.
- Extract relay endpoint/marker helpers into ssh-relay-endpoints.ts and
  consolidate the PowerShell EncodedCommand encoding into the shared
  powershell-command-encoding module.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Support cancellation and timeouts in Windows port scanning

- Propagate the request AbortSignal and a 5-second timeout to both
  PowerShell and netstat child processes during Windows port scanning.
- Avoid spawning the netstat fallback process if the port scan has
  already been aborted.
- Wrap the .NET OSArchitecture check in a try/catch block during SSH
  Windows platform detection to robustly fall back to environment
  variables if needed.

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
2026-06-09 01:17:34 -07:00
Jinwoo HongandOrca 00f3849669 Use quick command labels for new tab titles (#4933)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 19:32:34 -07:00
Neil edadb1d7b7 Allow Linux terminal auto WebGL on safe renderers 2026-06-08 18:28:52 -07:00
Jinjing 19392cc066 Add emulator keyboard capture, edge gestures, and stream cleanup (#4927) 2026-06-08 18:10:16 -07:00
Brennan BensonandOrca 12340ee525 Surface branch auto-name failures with detailed CLI errors (#4906)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 17:55:54 -07:00
Jinwoo HongandOrca 04205acd76 Graduate compact worktree card setting (#4924)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 17:37:11 -07:00
Brennan BensonandOrca cd4ca13080 feat: make status bar empty usage CTA dismissible (#4898)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 15:47:29 -07:00
Brennan BensonandOrca 0aad9f8d03 Point browser tour 'Stay logged in' step at the visible Import button (#4902)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 15:22:26 -07:00
2338c42ef9 fix(ssh): sync ~/.ssh/config on import and Manage open (#4899)
* fix(ssh): sync ~/.ssh/config on import and Manage open

importFromSshConfig only inserted unknown hosts and never updated an
existing target, so a rotated port (or any changed config field) was
silently ignored on re-import. Make it an upsert: config-sourced targets
are refreshed in place, genuinely new hosts are inserted, and the SSH
Manage pane auto-syncs when it opens so changes appear without a manual
Import click.

A new optional SshTarget.source ('ssh-config' | 'manual') protects
user-created and user-edited targets from being overwritten by sync —
editing a target in the UI detaches it from config-sync. Unchanged
targets are skipped so a repeat sync performs no disk write. Editing a
target now also carries cleared optional fields (identity file, proxy
command, jump host) so removing a config-derived value actually deletes
it instead of silently keeping the stale value through the partial merge.

Resolves item #1 of #4684 (item #2 was fixed in #4860).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(ssh): preserve legacy manual targets during config sync

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

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-08 18:15:55 -04:00
JinjingandOrca 006a4ef3a5 Customizable Source Control AI action recipes with per-action agent and command templates (#4868)
* WIP: Changes before auto-review fixes

* Customize Source Control AI action recipes

- Add per-action CLI arguments for generation and launch flows so saved
  recipes can select model flags without putting prompts in argv.
- Share the text-generation dialog between commit messages and hosted-review
  details, with first-run defaults and repo/global recipe support.
- Launch fix-check agents directly from saved recipes and harden prompt/template
  handling for invalid args, blank prompts, and inherited variables.

* Allow custom commands for source control action recipes

- Let text action recipes save and resolve the custom-command sentinel
- Add settings UI for custom command recipes and preserve per-action defaults
- Split large source-control dialogs and direct launch helpers into focused modules
- Keep launch actions from treating custom text agents as runnable TUI agents

* Add per-repo Source Control AI enablement, custom command, and save-targ

- Repo overrides now support `enabled` and `customAgentCommand`, letting
  repositories opt in/out of Source Control AI independently and supply a
  repo-scoped custom command that takes precedence over the global one.
- Recipe-save dialogs gained a save-target selector ("Don't save / Save for
  this repo / Save as global default") replacing the old boolean checkbox,
  routing saves through the new `saveSourceControlActionRecipe` helper in
  `source-control-ai-recipe-save.ts`.
- `normalizeRepoSourceControlAiOverrides` now returns `undefined` for empty
  objects and passes the `null` sentinel through the IPC/RPC layer so the
  persistence layer can clear repo overrides cleanly.
- `resolveSourceControlLaunchPlatform` resolves the correct shell platform
  for SSH and WSL worktrees so agent launch commands are built correctly.
- Settings UI gained `RepositorySourceControlAiEnablement` and
  `RepositorySourceControlAiCustomCommand` rows; draft/label logic was
  extracted into focused modules to stay within lint line limits.

* Extract action recipe defaults into own component and use id-prefixed wo

- Move action recipe draft state and UI out of CommitMessageAiPane into SourceControlAiActionRecipeDefaults and source-control-ai-action-recipe-draft.ts to respect the max-lines lint rule
- Use toRuntimeWorktreeSelector() across all runtime git RPC calls so the runtime can resolve worktrees by ID rather than path
- Fix SSH launch platform resolution to use the repo's connection when the newly created worktree isn't hydrated yet
- Add edit and delete handlers for PR conversation comments with confirmation dialog
- Use text-status-success design token instead of hardcoded text-emerald-500

* add more search keyword

* Rename "Enable Source Control AI defaults" to "Show Source Control AI ac

* fix test

* Remove unused imports and variable assignment in launch-work-item-direct

* Fix test mocks to use `mocks.store` instead of `storeState.value` for di

* Extract Source Control AI logic into focused modules with fix-checks dia

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-08 14:08:35 -07:00
Neil e5fe0f14d1 Use work item titles for create-from workspace names 2026-06-08 13:36:15 -07:00
Trevin ChowandNeil 5337e93cb4 feat: non-blocking worktree creation with in-tab progress (#4729)
* feat: non-blocking worktree creation with in-tab progress

The Create Worktree modal stayed open with a spinning button for the full
create IPC (base-ref git fetch + `git worktree add`, ~10-15s on heavy
repos) and only dismissed once it resolved, so the user stared at a frozen
modal with no way to work elsewhere.

Run creation in the background instead. On submit the modal closes
immediately and an in-tab "Creating worktree…" panel shows live setup
status, wiring the previously-unused `createWorktree:progress` main->renderer
event via a per-creation correlation id. A sidebar row tracks each
in-flight create, the user can navigate to other worktrees or cancel while
it runs, and on success it swaps to the real worktree + terminal in one
frame. Failure shows the error in the panel with retry; remote/runtime
targets (no progress events) show an indeterminate spinner.

Pending creations live in a separate store map rather than a faked Worktree
row, so git-status, the tab model, persistence, and PTY spawning are
untouched. Only the composer quick-create path changes; other createWorktree
callers keep their synchronous behavior.

* refactor: present in-flight worktree creates as inline tabs and rows

Rework the two surfaces that show an in-flight create so each reads like
the real thing it stands in for.

The in-tab panel is now a faux tab: a tab strip carrying the new
worktree's name (the title) over a quiet top-left status line, instead of
a centered card with a step checklist. An in-flight create reads as a real
workspace tab whose content is loading, the title and status never
duplicate each other, and the handoff to the terminal stays a same-frame
swap. Failure shows the error inline with retry.

In the sidebar, a pending create now renders as an inline row under its
target repo group — where the worktree will land — replacing the separate
strip that pinned every in-flight create to the top of the list.

* fix: keep pending worktree rows visible without repo metadata

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-06-08 13:30:13 -07:00
Brennan BensonandOrca 5424582b51 Suggest enabling local-main freshness when a new workspace finds it stale (#4888)
* Suggest enabling local-main freshness when a new workspace finds it stale

Adds a "Keep Local Main Up to Date" suggestion path: when the setting is
off and a new workspace's local base branch is behind its remote, Orca
surfaces a one-time, dismissible toast nudging the user to enable it. The
toast is sticky (no auto-expire) so it can't be missed, with explicit
Turn On / Dismiss actions; dismissing (button, close X, or swipe) persists
localBaseRefSuggestionDismissed so the nudge — and its backend probe —
never runs again.

Also refactors the refresh logic so the advisory and mutating paths share
one fast-forward-safety evaluator, adds an SSH relay RPC for the ref
mutation, and fixes remote-tracking base parsing for fully-qualified refs.

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

* fix: restore update-ref fast-forward for un-checked-out local base ref

The refactor that split refresh into evaluate + mutate dropped the
non-owner case: a local base branch checked out in no worktree was left
stale (return undefined) instead of fast-forwarded. Restore it across all
three layers — local evaluator/mutator, SSH evaluator, and relay handler
(which also removes the dead duplicated throw) — using the expected-old-OID
compare-and-swap form of update-ref so a concurrent ref move is a no-op.
The suggestion toast now also fires for this case.

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

* refactor: restore resultBase spread in local-base-ref mutators

The evaluate/mutate split spelled out { baseRef, localBranch, status }
literally in the mutating paths; main used a resultBase spread. Restore
that pattern in both the local and SSH mutators — behavior-preserving,
collapses two identical skipped_error returns.

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-08 13:19:45 -07:00
Jinwoo HongandOrca 7ea359bd60 Add Claude Agent Teams native pane launcher (#4892)
* Add Claude Agent Teams native pane launcher

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

* Fix Agent Teams CI coverage checks

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

* Fix Claude Agent Teams split direction mapping

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-08 16:11:32 -04:00
Brennan BensonandOrca 61cb7d692a Add a browser tour step for importing cookies to stay signed in (#4836)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 11:44:49 -07:00
Jinjing bcfd84d14c Make Smart New Tab launcher the default (remove experimental flag) (#4834) (#4889)
- Remove `experimentalUnifiedNewTabLauncher` flag and gate; the unified
  launcher is now always enabled
- Drop the settings toggle from ExperimentalPane and search index
- Update placeholder/aria text to "Open any file, URL, agent, ..."
- Restyle the input: borderless, flush with dropdown edge, no search icon
- Update test fixtures to include agent-detection state fields now
  unconditionally read by TabBarCreateEntry
2026-06-08 11:05:58 -07:00
Neil f15dcd928c Stabilize OpenCode terminal rendering before release (#4850) 2026-06-08 01:00:29 -07:00
Jinwoo HongandOrca 1b363b4d9c Add mobile emulator (#4754)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 00:08:57 -07:00