Commit Graph
16002 Commits
Author SHA1 Message Date
PMandNeil 438fb753ab fix(terminal): preserve IPv6 host brackets in HTTP links (#37449)
Terminal link detection treated the closing `]` of a bracketed IPv6 host
(e.g. http://[::1]:5173) as trailing punctuation and dropped it, producing
unopenable links. Match an optional bracketed IPv6 authority after the
scheme, and never trim trailing punctuation back past that authority.
Avoids regex lookbehind so the mobile terminal WebView can still parse it.

Co-authored-by: Neil <neil@stably.ai>
2026-11-02 20:07:14 -08:00
Tomk2d 8fba3704bd fix(i18n): correct Korean wording for Host, Idle, Actions, and Source (#37460)
Replace literal mistranslations with the wording ko.json already uses for the
same English words elsewhere:

- Host: 주인 -> 호스트 (workspace cleanup column and sort)
- Idle: 게으른 -> 유휴 상태 (workspace cleanup agent state)
- Actions: 행위 -> 작업 (artifact list header, terminal link actions search keyword)
- Source: 원천 -> 소스 코드 (branch line total chip)

Pin the values in the Korean key overrides so catalog regeneration keeps them.
2026-11-02 19:56:58 -08:00
5c15ac7770 fix(native-chat): honor editorFontFamily for code blocks when terminal matching is off (#37406)
Native chat code blocks always used terminalFontFamily, even with "Match
terminal interface" disabled. Use the editor font stack for code blocks
unless matching is on, and include editorFontFamily in the memoized
appearance settings so changes re-render.

Co-authored-by: phatloi0010 <phatloi0010@users.noreply.github.com>
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-11-02 19:51:41 -08:00
OrcaWin e06621f03a test: remove 139 low-value renderer store tests (#37639) 2026-11-02 19:43:31 -08:00
OrcaWin ec7da75d4f test: remove 164 low-value renderer store tests (#37638) 2026-11-02 19:20:23 -08:00
Neil 174fdd8ca5 refactor: consolidate updater lifecycle and release owners (#37632)
* refactor: consolidate updater lifecycle and release owners

* ci: follow relocated macOS updater workflow path

* ci: retain updater browser owner in reliability selection
2026-11-02 19:15:49 -08:00
Brennan Benson ba5613d5e5 Honor selected chat permissions before accepting input (#37543)
* Honor saved chat permissions at input admission

* Cover fallback and autonomous turns in permission transitions

* Preserve host dispatch refusals and verify saved permission publication
2026-11-02 19:09:32 -08:00
Brennan Benson ca865dd64f Add shared launch controls to Chat UI settings (#37607)
* Add shared launch controls to Chat UI settings

* Register Chat UI launch settings copy

* Load native agent inventory for Chat settings

* Refine Chat UI launch card and agent list spacing

* Use card list size for compact agent settings

* Remove unrelated duplicate translation entry
2026-11-02 19:03:31 -08:00
Neil 3a714906a0 plugins: keep status bar plugins' workers running while enabled (#37630)
A plugin with a worker and status bar items is now started when enabled and kept warm,
like a plugin with hooks, through one shared resident-worker predicate and warmer.
2026-11-02 19:03:21 -08:00
OrcaWin fd62da8acb test: remove 427 low-value renderer store tests (#37623)
* test: remove 427 low-value renderer store tests

* test: mark retirement plan import as type-only

* test: format reconciled reliability gate metadata
2026-11-02 19:00:07 -08:00
Kelvin Amoaba 8eb1d14901 fix(history): retain unreadable transcript errors (#37628)
* fix(history): retain unreadable transcript errors

* test(history): pass nullable sizes to cache fixtures
2026-11-03 02:52:36 +00:00
Kelvin Amoaba 35accd210b fix(editor): highlight selected Markdown table cells (#37624) 2026-11-03 02:44:12 +00:00
Neil 534ecb730d refactor: group workspace removal and retirement owners (#37620) 2026-11-02 18:38:16 -08:00
Brennan Benson 40820c4c5c Open pasted text in structured chats (#35636)
* Open large pasted text and attached text in structured chats

* Read pending pasted text before its host route resolves

* Pass structured attachment eligibility from the owning chat

* Preserve composer and Markdown state when inspecting text attachments

* fix: preserve attachment identity and cancel deferred reads

* test: consolidate phone attachment rendering contracts

* Scope attachment previews to visible chats and share route indexes

* test: consolidate duplicate attachment preview coverage

* perf: share remaining workspace catalog derivations

* feat(chat): open text attachments from structured goal objectives

* fix(chat): reuse preview owner and bind app hooks

* refactor(chat): trim duplicate tests and unused capability initialization

* test(chat): share routing scope mount fixture

* Fix routing performance attribution and folder row imports

* Share attachment capability through its domain module

* Align attachment fixtures and warm routing contracts with current gates

* Preserve relay connection timeout default for ordinary requests

* Share image classification ownership and repair integration fixtures

* Repair real attachment integration fixture boundaries

* Expose e2e compiler diagnostics and prune stale read allowance

* Type the recall fixture row ref as a div

* Keep text attachment capability in its existing capability owner

* Keep image MIME bindings in the media type owner

* Own private bridge response completion at the request boundary

* Complete bridge fixture return and retention types

* Localize native chat text attachment preview controls

* Complete attachment preview localization at presentation boundaries

* Preserve legacy preview locale identity and complete localization controls

* Fix typed mobile host witness lookup

* Commit attachment page edits and reset mobile page scroll

* test(chat): remove duplicate preview localization coverage

* fix(mobile): apply page input font and footer safe area

* fix(chat): commit edited page before admitted navigation

* fix(chat): retain field readiness on pending commit

* fix: preserve attachment field focus until control activation

* fix: restore attachment preview styles and canonical close

* Bind mobile input font role to the central theme

* Type font source fixture cases as tuples

* Attribute inherited owner filter work and qualify folder fixtures

* Keep owner filter fixture input types source-derived

* test: retain attachment capability assertion import

* test: focus attachment coverage on important regressions

* Replace text attachment paging with bounded scrolling and trim tests

* Preserve literal phone attachment whitespace and trim unused test meter

* Keep scroll view refs and measurements out of render

* Keep preview collection independent of native clipboard initialization

* Give the phone scroll fixture coherent measured DOM geometry

* Commit attachment scroll extent before restoring its anchor

* Preserve text viewport geometry across bounded reads

* Unify bounded text scrolling around the viewport

* Preserve the live text anchor across viewport resizing

* Measure committed text viewport bounds from the host

* Preserve live attachment position across native client extent changes

* Use the actual first source block in the resize regression fixture

* Reuse subscription handle type

* Keep attachment effects keyed to their existing triggers

* Keep attachment rows within the committed track

* Allow the full attachment renderer contract to settle

* Open text attachment previews in a large modal

* Preserve attachment modal header layout with primitive-owned styles
2026-11-02 18:36:29 -08:00
Neil aaf4a5d953 refactor: group workspace creation and preparation owners (#37614)
* refactor: group workspace creation and preparation owners

* refactor: coalesce concrete owner type imports

* test: preserve IPC default-ref mock at its concrete owner
2026-11-02 18:20:25 -08:00
OrcaWin dbd0c2448e test: remove 211 low-value renderer store tests (#37613) 2026-11-02 18:18:21 -08:00
Kelvin Amoaba 94f2be1b3d fix(orchestration): fail worker-start promptly when the agent exits to its shell (#37563)
* fix(orchestration): fail worker-start promptly when the agent exits to its shell

* test(orchestration): keep the exit watch helper's void return
2026-11-03 02:15:53 +00:00
Kelvin Amoaba eb55a5a6d3 feat(browser): --expect-url refuses a browser command when the page is at another URL (#37575)
* feat(browser): guard page commands with an expected URL

* fix(browser): refuse an empty --expect-url and check it on dialogs and the forwarding desktop

* fix(browser): recheck the expected URL right before keys go out

* refactor(browser): drop duplicate session type, dialog alias and per-capability sidecar fields

* chore(browser): satisfy the changed-code gates for the expected URL guard
2026-11-03 02:11:23 +00:00
Kelvin Amoaba 8cb1236f62 fix(accounts): keep Claude panes sharing a session from restarting (#37564)
Claude reopens one branch of a shared transcript on resume, so a pane could silently come back showing the other pane's conversation.

Refs #31545
2026-11-03 02:11:07 +00:00
Kelvin Amoaba 5edc05f098 feat(native-chat): reopen a phone chat from its cached rows and only fetch what changed (#37561) 2026-11-03 02:10:51 +00:00
Kelvin Amoaba 4e841b7558 fix(native-chat): name and mark the expired attachment when a send is refused (#37552)
* fix(chat): name the attachment that expired when a send is refused

The claim step knew which uploads were gone but threw a bare error, so the
refusal could only say "This attachment expired". It now carries each expired
upload's id and file name: every client names them, and desktop marks those
image chips. Older hosts and clients keep today's generic words.

* test(chat): read expired-attachment details through the wire reader
2026-11-03 02:10:33 +00:00
Kelvin Amoaba b4618d0f8e fix(agents): stop agent rows showing pasted data as their name (#37551)
* fix(agents): stop agent rows showing pasted data as their name

Fixes #29842

* fix(agents): keep the board card's task as the raw prompt

The card only shows task when no "You" line exists, so the label never rendered.

* refactor(agents): route activity titles and mobile rows through the row label owner
2026-11-03 02:09:58 +00:00
Kelvin Amoaba f4d89b94c9 fix(dsh): show DSH hooks as partial when a profile is missing the hooks package (#37446)
* fix(dsh): report hooks as partial when a DSH profile cannot load the executor package

* fix(dsh): name only the broken profiles and print hook detail for failing states

* refactor(dsh): fold the profile package check into the installed branch
2026-11-03 02:09:18 +00:00
Kelvin Amoaba a2ff999d94 fix(native-chat): send /compact instructions to agents that take them (#37565) 2026-11-03 02:00:38 +00:00
Neil 7983d5064c refactor: group agent launch and workspace hook owners (#37612)
* refactor: group agent launch and workspace hook owners

* refactor: align trust CI scope and reliability paths
2026-11-02 17:51:53 -08:00
OrcaWin 900146b9da test: remove 152 low-value renderer store tests (#37608) 2026-11-02 17:44:05 -08:00
Neil 45a29352ea refactor: group host storage and worker infrastructure (#37606) 2026-11-02 17:34:32 -08:00
OrcaWin 7a038070f8 test: remove 61 low-value renderer store tests (#37603) 2026-11-02 17:18:59 -08:00
Neil b89cfbd09d refactor: group desktop integration and lifecycle owners (#37600)
* refactor: group desktop integration and lifecycle owners

* refactor: preserve runtime literals and mock owner boundaries

* refactor: link historical reliability evidence to current test paths

* refactor: retain the historical lid-sleep baseline path
2026-11-02 17:08:59 -08:00
OrcaWin 7f0b513c64 test: remove 64 low-value renderer catalog tests (#37602) 2026-11-02 16:57:38 -08:00
OrcaWin 4c6f325510 test: remove 102 low-value renderer store tests (#37598)
* test: remove 102 low-value renderer store tests

* test: remove 102 low-value renderer store tests
2026-11-02 16:45:18 -08:00
Brennan Benson 9f1b14d927 Keep pending native chat messages marked as sending (#37590)
* fix(native-chat): keep pending messages marked as sending

* fix(native-chat): keep pending feedback continuous through recording
2026-11-02 16:29:35 -08:00
OrcaWin 43c6ac5c84 test: remove 147 low-value GitHub and Jira store tests (#37597) 2026-11-02 16:25:45 -08:00
OrcaWin 71147f6036 test: remove 174 low-value workspace and GitHub cache tests (#37596) 2026-11-02 16:11:49 -08:00
Brennan Benson 40b660357c fix: remove orchestration panel CPU amplification (#37560)
* fix: remove orchestration panel update amplification

* test: make source cache checks deterministic

* fix: stop irrelevant federation crew rebuilds

* Use fixed federation heartbeat test timestamp

* Verify hidden crew subscription release in native pane

* Require zero SQL preparation for cached crew reads
2026-11-02 16:06:32 -08:00
OrcaWin e850589591 test: remove 153 low-value editor buffer and layout tests (#37595) 2026-11-02 15:59:46 -08:00
OrcaWin 1d2e7f6f52 test: remove 128 low-value editor and workspace state tests (#37591) 2026-11-02 15:47:59 -08:00
Brennan Benson 91f6b3dc05 Fix Grok chat screenshots saved with the conversation (#37555)
* fix(native-chat): resolve Grok screenshots from their owning session

* fix(native-chat): normalize session screenshot paths

* perf(native-chat): scope screenshot lookup to the owning tab

* test(native-chat): use deterministic media fixture clocks

* fix(native-chat): retain selected images during preview refresh
2026-11-02 15:45:27 -08:00
OrcaWin fae90b0cbb test: remove 220 low-value agent status and browser tests (#37586) 2026-11-02 15:34:55 -08:00
OrcaWin c0380f6832 test: remove 215 low-value renderer store tests (#37583) 2026-11-02 15:21:02 -08:00
OrcaWin 566982382d test: remove 407 low-value session and layout tests (#37581)
* test: remove 407 low-value session and layout tests

* test: remove 407 low-value session and layout tests
2026-11-02 15:04:16 -08:00
OrcaWin c3a90529d4 test: remove 399 low-value renderer runtime tests (#37566)
* test: remove 399 low-value runtime tests

* test: make retained close replay assertion independent of wall clock
2026-11-02 14:43:35 -08:00
Jinjing 415e8ad194 Show check fix action alongside conflict resolution (#37559) 2026-11-02 15:23:37 -07:00
Brennan Benson 0e3e6edb7b Make the agent-message status mark a circle (#37541)
* Make the agent-message status mark a circle

The corner badge inherited the chat line box, so it drew as a pill, and the working ring's thick stroke closed into a crescent. The badge is now a circle around the status icon, and the medium working mark keeps a full ring.

* Keep the shared working spinner in the status circle

The medium working mark had its own thinner ring. Agent status uses one spinner everywhere, and the message card only changes the circle behind it.
2026-11-02 14:23:19 -08:00
Jinjing 0e80062119 fix: hide metadata-only PR review summaries (#37562)
* fix: omit metadata-only PR review summaries without hiding code

* fix: inspect nested review Markdown for visible content
2026-11-02 15:22:17 -07:00
Neil c563f68df9 refactor: group workspace cleanup and space diagnostics (#37558)
* refactor: organize workspace diagnostics and cleanup owners

* test: target concrete cleanup and cancellation owners
2026-11-02 14:16:06 -08:00
Jinwoo Hong 5e02b47d11 Reopen a closed terminal worker from its orchestration card (#37210)
* Open a closed terminal worker's conversation as a chat

* Open closed workers through a separate partyOpen call

Keep partyLocation a pure lookup; clients call partyOpen for a sender and fall
back to partyLocation on older hosts. Adopt from the closed pane's recorded
transcript, test terminal liveness by its PTY, keep follow-ups free of chat-host
installation, and report a possibly-created chat as retryable.

* Bring back a closed chat for a follow-up and match recorded sources by identity only

A follow-up to a worker whose conversation a chat holds reveals that chat in
the background when its tab was closed, so the follow-up is delivered there
instead of being refused. Recorded-source adoption passes only the pane identity
and conversation fields source matching reads.

* Reopen a closed terminal worker as a terminal, not a chat

partyOpen now resumes the closed worker's saved conversation in a new terminal
through the follow-up resume path, reusing a terminal that already holds it, and
answers with the terminal location. Removes the chat conversion and everything
only it needed; follow-up placement is as on main.

* Retry an uncertain worker reopen as the same request

* Resume again when the agent left the reopened worker terminal

* Type the hook row in the closed-worker follow-up test

* Find a closed worker's reopened terminal through the resume claim and hook rows

* Retry an uncertain closed-worker resume as the same request; reuse only a terminal whose hook row names the conversation

* Forget an uncertain closed-worker resume once its conversation reports

* Drop the closed-worker open map; overlapping opens share one resume request
2026-11-02 17:02:05 -05:00
Jinwoo Hong f74b1fd72b Tell orchestration workers when to message the coordinator (#37550)
* Tell workers when to message the coordinator, not just where

* Count the brief's one remaining surface mention in the parity test

* Limit the brief's 'only' to messaging the coordinator
2026-11-02 17:01:52 -05:00
OrcaWin 84520199b1 test: remove 235 low-value renderer tests (#37553) 2026-11-02 13:56:09 -08:00
Jinjing b96d19d933 Keep overlays open when focusing the chat composer (#37403)
* Preserve open overlays when focusing the chat composer

* Fix chat composer focus after launch menus close

* Fix chat composer focus handoff after overlays close

* Fix composer focus after custom overlays close

* Prevent chat composer from stealing overlay focus

Scope recovery overlays to their own pane and let menus dismiss before
returning focus to the composer. This keeps the quick launcher open
when delayed chat actions complete.

* Fix composer focus across nested overlays

Track focus ownership through portaled overlays so the launch prompt can
regain focus while its model list is open. Close the context menu before
inserting a quote so the caret lands after it.

* Fix overlay focus CI regressions

* Complete overlay focus ownership for inline and retained surfaces

* Declare public overlay focus hook return type
2026-11-02 14:50:41 -07:00