The project catalog keys a repo by its first network remote (upstream,
origin, then the rest), but GitHub issue and PR lookups only read the
remotes named origin and upstream. A repo whose origin is a local bare
repo and whose GitHub remote has another name showed as GitHub-backed
yet Tasks said no GitHub source was detected. Origin's role now falls to
the same remote the project identity picks.
Fixes#42102
* feat(native-chat): show each subagent's model, current tool and result in the roster
Subagent roster rows now carry the child's role, model, reasoning effort,
the tool it is running and the last thing it said, so a row says what the
subagent is doing and, once done, what it found. Codex children take model
and effort from the spawn call; Claude children take the model from their
own messages. A hover card shows the longer text.
* feat(native-chat): name subagent models and roles the way people say them
Show Opus 5.5 · High instead of claude-opus-5-5 · high, reusing the
model-id label and effort picker copy, and General purpose instead of
general-purpose.
* fix(native-chat): read Codex subagent model and effort from its started activity
Current Codex announces a spawn only through subAgentActivity, which carries
the model and reasoning effort the child resolved to.
* fix(native-chat): use the hover card's own spacing variant for the subagent preview
* fix(native-chat): show a subagent's reply as plain text in its roster row and preview
Its last message is markdown; the row now drops backticks, emphasis, list
and heading marks and joins lines into one readable line.
* feat(worktrees): archive and restore a workspace's checkout (backend, off)
* fix(worktrees): keep archived rows through startup GC and Windows path checks
* fix(worktrees): serialize archive and restore, finish interrupted restores
* fix(worktrees): restore prior archive flag, drop leftover marks, keep archived rows out of offline listings
* test(worktrees): fixed timestamp in archived GC test; drop path cast
* feat(workspace-cleanup): archive inactive workspaces from the runner once archive is on
* fix(worktrees): queue bare-id restores and forget the archive mark when deleting an archived workspace
* fix(worktrees): import archive params from their new contract folder
A paired desktop that sleeps with its socket open let every agent tab create
wait out the full 15 s host-request timeout until the server's heartbeat
dropped the socket. The request registry now remembers a desktop that let an
ask time out and fails the next ask for it at once, until the desktop answers
anything or subscribes again. A new subscription also gets any ask that is
still pending.
When a desktop is paired, a tab the server's own agent opens (orca tab create
with no placement) goes on that desktop as a This-device page; otherwise it
stays in the server's own browser. orcad engine tabs reach no client, so on
Linux servers agent tabs were invisible even with a desktop paired.
With a browser of its own to fall back on, the server asks a desktop each time:
a desktop on "Server (streamed)" declines and the tab streams, and a desktop
that does not answer (asleep or gone) leaves it on the server after the
request times out.
* test: remove low-value push and relay coverage
* test: delete orphaned fixture and closure support
* test: trim runner and mobile recording matrices
---------
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
* test: remove low-value automation and shared suites
* test: retire stale gate references and stabilize retained fixture date
---------
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>