Commit Graph
10019 Commits
Author SHA1 Message Date
JinjingandOrca 46a26252bb feat(browser): viewport-size emulation via CDP (#1369)
* feat(browser): viewport-size emulation via CDP

Adds a Viewport Size submenu in the browser toolbar "…" menu.
Presets apply width/height/deviceScaleFactor/mobile/touch via
Emulation.setDeviceMetricsOverride + setTouchEmulationEnabled, and
swap the UA to a mobile iPhone CriOS string on mobile presets.
Responsive clears the override. Selection persists per-tab and
re-applies on dom-ready so it survives navigations.

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

* chore(browser): rename 'Responsive' viewport option to 'Default'

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

* fix(browser): harden viewport emulation — serialize, validate, client-hints

- Chain per-tab setViewportOverride calls to prevent rapid-toggle races
- Validate viewport metrics at IPC trust boundary (reject non-finite/out-of-range)
- Emit userAgentMetadata alongside mobile UA to avoid UA/CH mismatch
- Always reapply on dom-ready (incl. null) to clear stale emulation
- Persist viewportPresetId in session schema (optional+nullable for back-compat)
- Convert preset submenu to DropdownMenuRadioGroup for a11y
- Log debugger.attach failures and cover with a unit test

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-05-02 20:22:40 -07:00
Trevin Chow fd3e62603d fix(hooks): generate worktree setup-runner from target worktree's orca.yaml (#1280)
* fix(hooks): generate worktree setup-runner from target worktree's orca.yaml

Extend getEffectiveHooks, getSetupCommandSource, and runHook with an
optional worktreePath parameter. When provided, loadHooks reads the
yaml from that path; otherwise it falls back to repo.path. Update
the worktree-creation paths in worktree-remote.ts and orca-runtime.ts
to thread the new worktreePath through after the worktree exists, so
the generated setup-runner reflects the yaml at the tip of the target
worktree's branch instead of the primary checkout's stale yaml.

Add a regression test in hooks.test.ts that mocks two distinct
orca.yaml files (primary and worktree) and asserts the worktree's
content wins when worktreePath is passed.

The legacy hooks:check IPC handler keeps reading from repo.path
unchanged.

Closes #1256

* fix(hooks): skip auto-setup when worktree script differs from preview

Add setupScriptsMatch helper that compares the primary checkout's
setup script (what the renderer shows the user before worktree
creation) to the target worktree's script (what would actually run
after creation). When they differ, createLocalWorktree skips the
auto-launch and logs a warning, so a base-branch yaml that introduces
or modifies setup commands cannot execute under the trust granted to
the primary's preview. CLI-created worktrees use the worktree-bound
load directly because trust is granted by the CLI invocation context,
which is annotated in orca-runtime.ts.

Adds regression coverage for both matching and differing script cases.

* test(hooks): add setupScriptsMatch to worktree IPC test mocks

The new setupScriptsMatch import in worktree-remote.ts means the
existing vi.mock('../hooks') blocks in worktrees.test.ts and
worktrees-windows.test.ts now need to expose it. Default the mock to
returning true so existing tests continue to exercise the run-setup
path; the new behavior gating is covered by the dedicated
setupScriptsMatch unit tests.
2026-05-02 18:27:09 -07:00
github-actions[bot] 1f99e81be3 release: v1.3.32 v1.3.32 2026-05-03 01:16:21 +00:00
Neil ae0fc9c49a Defer protected app data reads until user action (#1370) 2026-05-02 18:15:52 -07:00
Neil b309f49ee3 Allow large text files to open in editor (#1367) 2026-05-02 18:12:08 -07:00
Neil 0f1b842daf Update project description in package.json 2026-05-02 18:06:32 -07:00
Neil 52803a336b tab jump (#1368) 2026-05-02 18:00:48 -07:00
github-actions[bot] 3a8974c9aa release: v1.3.32-rc.0 v1.3.32-rc.0 2026-05-02 23:20:19 +00:00
SSWSer 6f606114a0 feat: add PowerShell 7+ support for Windows terminals
Adds PowerShell 7+ support for Windows terminal selection, with Auto resolving to pwsh.exe when available and falling back to Windows PowerShell.
2026-05-02 16:06:11 -07:00
github-actions[bot] 20b7456fed release: v1.3.31 v1.3.31 2026-05-02 22:34:44 +00:00
github-actions[bot] 6f796f5eed release: v1.3.31-rc.1 [rc-slot:2026-05-02-15] v1.3.31-rc.1 2026-05-02 22:16:59 +00:00
github-actions[bot] 4673310a91 release: v1.3.31-rc.0 v1.3.31-rc.0 2026-05-02 21:50:03 +00:00
Neil ddd70d650f Restore worktree sidebar scrollbar (#1365) 2026-05-02 14:49:44 -07:00
Neil e7b66d22a7 fix(terminal): bypass xterm for handled app shortcuts (#1364) 2026-05-02 14:48:28 -07:00
Neil 9dfdf6f839 fix(terminal): stabilize DOM renderer scrollbar (#1363) 2026-05-02 14:45:53 -07:00
Neil 8ae119558b fix: simplify release pipeline (#1362) 2026-05-02 14:17:21 -07:00
github-actions[bot] d71c6eef6e release: v1.3.30 v1.3.30 2026-05-02 20:21:39 +00:00
github-actions[bot] c2f6176a30 release: v1.3.30-rc.1 v1.3.30-rc.1 2026-05-02 19:52:46 +00:00
JinjingandOrca 3a40014e29 feat(editor): add CSV/TSV table viewer (#1361)
Adds a virtualized read-only table view for .csv/.tsv files, reusing
the markdown view-mode toggle (source/rich) with a Table icon override.
Hand-rolled RFC 4180 parser handles BOM, quoted fields, CRLF, and
preserves trailing quoted empty fields.

Co-authored-by: Orca <help@stably.ai>
2026-05-02 11:17:52 -07:00
JinjingandOrca 7de1213c54 fix(ssh): trigger reconnect on Enter in disconnected dialog (#1360)
Register a window-level keydown listener while the SSH disconnected
dialog is open so Enter triggers Reconnect regardless of which element
holds focus. Dialog-scoped handlers don't fire when focus is inside
xterm/monaco, which aggressively reclaim focus.

Co-authored-by: Orca <help@stably.ai>
2026-05-02 11:13:11 -07:00
JinjingandOrca c9071078c7 refactor(sidebar): drop agent identity icon + expand chevron from inline rows (#1359)
* wip

* refactor(sidebar): drop agent identity icon + expand chevron from inline rows

In the per-card inline agent list, the user already knows which worktree
they're looking at and clicking a row jumps directly to the agent — the
repeated identity glyph (Claude/Gemini/…) and a separate expand chevron
are redundant. Add hideIdentityIcon/hideExpand props to DashboardAgentRow
(default false) and set both on the inline list only; full dashboard is
unchanged.

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-05-02 11:12:29 -07:00
686ed33544 feat: close settings on Escape key press (#1348)
* feat: close settings on Escape key press

* fix(settings): skip Escape-to-close when focus is in editable field

Why: Escape in an input/textarea/select or contenteditable region usually
means 'cancel this edit', not 'close Settings'. Closing the entire page
would discard in-progress typing. Defer to the field's own handler; a
subsequent Escape with focus on the body will close the page.

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

---------

Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
Co-authored-by: Orca <help@stably.ai>
2026-05-02 11:01:48 -07:00
JinjingandOrca 34f9e84d78 feat(sidekick): make overlay draggable with persisted position (#1357)
Allows the user to reposition the sidekick overlay by pressing and dragging. Position is clamped to the viewport (including on resize) and persisted to localStorage. Uses pointer capture so drag state can't get stuck if the pointer is released outside the window.

Co-authored-by: Orca <help@stably.ai>
2026-05-02 10:36:50 -07:00
github-actions[bot] cc28007071 release: 1.3.30-rc.0 [rc-slot:2026-05-02-03] v1.3.30-rc.0 2026-05-02 10:15:37 +00:00
Neil 2ed089d006 fix(terminal): preserve copy with kitty keyboard (#1347) 2026-05-02 00:48:10 -07:00
github-actions[bot] e2447dc961 release: v1.3.29 v1.3.29 2026-05-02 07:44:03 +00:00
Leynier Gutiérrez GonzálezandClaude Opus 4.7 37b2996ee0 feat(editor): add toggle to show minimap in file editor (#1346)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-02 00:40:53 -07:00
github-actions[bot] 812f13a627 release: v1.3.29-rc.0 v1.3.29-rc.0 2026-05-02 07:04:38 +00:00
f2d58e06e4 fix(browser): clean up closed browser sessions and webviews (#1321)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Nikolatesla-lj <Nikolatesla-lj@users.noreply.github.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-05-02 00:04:33 -07:00
Neil 9f2ab5ed0d fix(terminal): mirror VS Code GPU rendering controls (#1344) 2026-05-02 00:04:14 -07:00
github-actions[bot] 5dc7fbdabc release: v1.3.28 v1.3.28 2026-05-02 06:01:53 +00:00
github-actions[bot] fb39a4954a release: v1.3.28-rc.0 v1.3.28-rc.0 2026-05-02 05:34:53 +00:00
NeilandOrca 74a7a3c790 fix(release): grant actions:write on callers of release.yml (#1341)
release.yml's publish-release job got `actions: write` in f6cc2aee so it
can dispatch homebrew-bump.yml, but reusable-workflow permissions are
capped by the caller. release-cut.yml and release-rc.yml only listed
`contents: write`, so the first cut after f6cc2aee died with
startup_failure (run 25244518794) before any job could start.

Grant `actions: write` on both callers to match what release.yml needs.

Co-authored-by: Orca <help@stably.ai>
2026-05-01 22:34:26 -07:00
NeilandOrca 1db7839570 revert(sidebar): restore unread bell, keep bold-title treatment (#1340)
Co-authored-by: Orca <help@stably.ai>
2026-05-01 22:13:06 -07:00
NeilandOrca e6d61d2f6c feat(sidebar): add Search button to nav, restore task-provider icons (#1339)
Co-authored-by: Orca <help@stably.ai>
2026-05-01 22:04:55 -07:00
Brennan BensonandOrca 70befde774 feat(github): per-repo issue-source selector (#1317)
Co-authored-by: Orca <help@stably.ai>
2026-05-01 21:48:51 -07:00
2c7dddbbc4 fix(terminal): dirty-file close prompts for split, bulk, and quit flows (#1338)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: shamounY <shamoun.yousuf04@gmail.com>
2026-05-01 21:39:15 -07:00
NeilandOrca f6cc2aee92 fix(release): grant actions:write + drop broken auto-merge on tap (#1336)
Two bugs surfaced on the v1.3.26 release:

1. release.yml's new `Trigger Homebrew cask bump` step failed with
   HTTP 403 "Resource not accessible by integration". The publish-release
   job's permissions block only listed `contents: write`, but
   POST /actions/workflows/:id/dispatches requires `actions: write` on the
   scoped-down GITHUB_TOKEN. Added the permission.

2. Even when the bump workflow does run, its `gh pr merge --auto` was
   silently no-op'ing against the homebrew-orca tap, leaving bump PRs
   open. `--auto` only activates when there's a required check or
   branch-protection rule to wait on; the tap intentionally has neither.
   Switched to a direct squash-merge so the tap stays hands-free as
   originally intended.

Co-authored-by: Orca <help@stably.ai>
2026-05-01 20:24:41 -07:00
github-actions[bot] dfee883f8a release: v1.3.27 v1.3.27 2026-05-02 03:15:09 +00:00
NeilandOrca 6303bdb50f fix(release): recover orphan tags instead of hard-failing the cut (#1335)
If a cut pushes the tag but the workflow is cancelled (or the dependent
release.yml job otherwise fails to start) before a GitHub release is
published, every subsequent patch cut recomputes the same version and
dies on "Tag already exists." This wedged the pipeline on 2026-05-01
when v1.3.26 was pushed by cancelled run 25237882049 — patch cuts kept
failing for hours until release.yml was dispatched by hand.

When the tag exists but no published release is attached, skip the
bump/push steps and emit the existing tag as the job output so
release.yml runs against it and finishes what the prior attempt
started. Still refuse the collision when a real published release
exists — that's a genuine conflict (e.g. a hand-tagged version) and
needs human attention.

Co-authored-by: Orca <help@stably.ai>
2026-05-01 20:13:46 -07:00
Leynier Gutiérrez GonzálezandAmp 6faf406511 fix(claude-hook): use forward slashes in Windows managed hook command path (#1329)
Co-authored-by: Amp <amp@ampcode.com>
2026-05-01 18:50:22 -07:00
github-actions[bot] 0e06d2e9b5 release: v1.3.26-rc.3 v1.3.26-rc.3 2026-05-02 01:41:53 +00:00
JinjingandOrca 547448e15c refactor: rename pet → sidekick across codebase (#1334)
Renames the experimental pet overlay to "sidekick" with themed character
names (Claude the Mage, OpenCode the Rogue, Gremlin the Trickster).
Covers IPC channels, preload API, persisted UI state, settings flag,
on-disk userData path, components, and types.

Deletes the standalone pet-overlay design mock.

Co-authored-by: Orca <help@stably.ai>
2026-05-01 18:40:52 -07:00
github-actions[bot] fe17888104 release: v1.3.26 v1.3.26 2026-05-01 23:40:18 +00:00
Brennan BensonandOrca f12c3005ed feat(sidebar): bold unread workspaces instead of bell icon (#1330)
Co-authored-by: Orca <help@stably.ai>
2026-05-01 16:20:58 -07:00
github-actions[bot] c167e4e6e9 release: v1.3.26-rc.2 v1.3.26-rc.2 2026-05-01 23:19:15 +00:00
JinjingandOrca d287342f99 feat: add experimental pet overlay (#1331)
* feat: add experimental pet overlay

Adds an opt-in 3D pet overlay pinned to the bottom-right. Gated behind
an experimental flag so three.js + GLB models stay out of the renderer
bundle for users who never enable the feature. Ships with four bundled
models plus user-uploaded custom GLBs via a pet:import IPC; a status-bar
segment provides model picker + hide toggle.

See docs/design/pet-overlay.md for the full design.

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

* refactor(pet): replace 3D GLB models with 2D webp images

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

* chore(pet): compress pet webp images and remove unused assets

Reduce resources/claude.webp, gremlin.webp, opencode.webp sizes; drop
the obsolete pet-overlay design doc and compress-pet-glb script now
that the GLB pipeline has been replaced by 2D webp images.

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-05-01 16:18:21 -07:00
github-actions[bot] d26cb4b898 release: 1.3.26-rc.1 [rc-slot:2026-05-01-15] v1.3.26-rc.1 2026-05-01 22:13:14 +00:00
bbd77c2449 fix(worktree): restore sparse checkout without per-poll git subprocesses (#1316)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Colin <colin.chambachan@gmail.com>
2026-05-01 13:25:22 -07:00
d4bbf473c1 Support wiki-style Markdown document links (#1282)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-05-01 13:15:08 -07:00