Commit Graph
28 Commits
Author SHA1 Message Date
OrcaWinandOrcaWin 9576e55773 test: remove 1,144 low-value declarations (#41177)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-11 09:11:06 -08:00
Neil bfd2bd7486 refactor: group CLI installation and crash lifecycle owners (#41142) 2026-11-11 04:02:20 -08:00
OrcaWinandOrcaWin 2d2056b2d0 test: remove 117 low-value test definitions and orphaned fixtures (#41085)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-11 00:49:08 -08:00
Brennan Benson c28414c10a fix: reclaim timed-out prepared checkouts without exceeding capacity (#40486)
* fix: retain prepared checkout cleanup ownership after timeout

* test: retain capacity for unregistered preparation leftovers

* fix: keep expired cleanup admission outside retry budget

* fix: verify original preparation registration before removal

* Retain preparation authority through bounded capacity recovery

* Exercise preparation cleanup failures through real filesystem fixtures

* Inject root mkdir failure without obstructing checkout absence proof

* Match the host filesystem path in preparation failure coverage

* Align preparation fixtures with physical cleanup ownership

* Await owned recovery in the fleet cleanup control

* Release abandoned preparation cleanup maintenance leases

* Match cleanup test identity paths on Windows

* Wait for completed preparation disposal in maintenance regression

* Await final cleanup state in maintenance controls
2026-11-09 22:02:16 -08:00
Neilandm4air dddc1260e5 chore(lint): oxlint 1.91, cheap perf/correctness rules, return-await fixes (#39730)
* chore(lint): bump oxlint to 1.91, add perf lint rules and perf audits

* fix(lint): await promises returned inside try/catch/finally for return-await

Prepare typescript/return-await with error-handling-correctness-only: await
returns whose catch or finally was meant to cover them, and suppress the eight
sites where the catch must not re-handle the returned promise.

* chore(lint): enable return-await (error-handling-correctness-only); exempt secondary-scan directives in the changed gate

* refactor(mobile): move file preview discard modal into its own module

Keeps MobileFilePreviewScreen under the 400-line limit after merging main.

---------

Co-authored-by: m4air <m4air@m4airs-MacBook-Air.local>
2026-11-08 06:21:54 -08:00
Neil 656a05de0d perf(main): overlap independent fs probes; skip per-entry copies (#39729)
* perf(main): overlap independent fs probes on git status, agent detection and orcad startup

* perf: skip per-entry copies in git change list and tab hydration; drop unused activity barrel
2026-11-08 05:05:19 -08:00
Brennan Benson 3659c0b787 Bound the lifetime of claimed worktree preparations (#38773)
* Keep a lifetime owner for claimed worktree preparation

* Record preparation ownership loss before retirement

* Type the preparation lock-write fixture without an assertion

* Revoke preparation cleanup when ownership changes
2026-11-06 02:15:14 -08:00
Brennan Benson b53db37643 Refuse unsafe branch switches and share one check across phone and desktop (#38744)
* fix(git): refuse unsafe branch switches in an existing workspace

The phone's Switch branch ran `git checkout` with no checks: uncommitted
files moved to the other branch, and a switch could land under a working
agent or mid-rebase. One host check now covers every client: it refuses,
with a plain reason, when files are uncommitted, a merge/rebase/
cherry-pick/revert is in progress, HEAD is detached or unborn, another
git action is running, or an agent in the checkout is working or waiting
for approval. Checks and the checkout run under a per-checkout lock.

After a switch the host clears the old branch's review links and push
target and tells every client, so a phone-only host stays correct, and
records that the user chose the branch so first-work naming never
renames it. The open Commits list follows the new branch.

* fix(git): review round 1 repairs for the guarded branch switch

- check out through the provider so the user's switch keeps the interactive git queue
- a landed switch that Windows left files behind on now tells the user instead of reporting success
- never let a Windows yes/no prompt hold the switch lock
- refuse submodule edits that submodule ignore config hides from status
- record the switch on the target host's metadata row and never fail a landed switch on bookkeeping
- read workspace paths from their ids instead of scanning the catalog on every switch
- admit agent rows like the sidebar roster (listed tab, or a live terminal by pane, tab or handle)
- move the host-side switch hooks into their own module

* test: type the new switch test fakes instead of casting them

* fix(git): second repair round for the guarded branch switch

- report files Windows left behind from git's own unlink warnings, not a status re-read, so
  ordinary branch differences and submodule commit changes are never called failures
- the phone refreshes its branch and files after a switch that landed with a warning
- refuse only edits inside a submodule its ignore config hides, never a commit mismatch alone,
  reading status without optional locks in the interactive queue
- read the agent process probe when a switch runs, not while the runtime is constructed
- check the agent's checkout path before terminal liveness and build the tab list once per switch
- the runtime wiring test no longer reaches real git

* fix(git): scope the switch's agent check to the checkout and keep landed-switch outcomes honest

- find candidate agents by checkout path first; build terminal liveness once, only from this
  checkout's terminals and its workspaces' saved tabs; probe candidates together and re-read
  the snapshot once; no work for unrelated workspaces (contract test at N and 10N)
- a checkout that fails after HEAD moved is recorded as landed; files left behind are named only
  when git reports it could not replace them, otherwise git's own error is shown
- parse git's unlink warnings for paths with apostrophes
- the phone keeps the refusal or warning visible while it reloads the branch
- cover a submodule that is only at another commit

* fix(git): name git's own error when a switch lands after a failing hook; use the shared unlink parser

* fix(git): keep the switch's agent check flat for unrelated folder workspaces

- read folder workspace directories once per switch instead of a linear search per row and terminal
- re-read each candidate's current status by pane key instead of rebuilding the whole snapshot
- skip the hidden-submodule status pass in repos without submodules
- the cost contract covers folder workspaces, many in-checkout agents and PTY passes
- a real-git test covers a switch that lands before a failing post-checkout hook

* fix(git): never quote git's progress line as a landed switch's error; fixed clock in the cost test

* fix(git): decide the hidden-submodule check from the index, not a visible .gitmodules

* perf(git): read only index modes for the submodule shortcut so large repos stay under the output cap
2026-11-05 20:16:50 -08:00
OrcaWinandOrcaWin 480842c82a test: remove 1186 low-value Git and IPC tests (#38812)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-05 20:00:50 -08:00
OrcaWinandCodex 0a06fe9621 Remove 552 low-value test registrations and 58 whole suites (#38255)
Co-authored-by: Codex <codex@openai.com>
2026-11-04 15:27:41 -08:00
OrcaWinandCodex bcb6dd0102 Remove 129 low-value test cases and 45 whole suites (#38233)
* Remove low-value renderer and main tests

129 registrations removed; 45 whole suites deleted.

* Clean deleted-suite CI reference and retained type import

---------

Co-authored-by: Codex <codex@openai.com>
2026-11-04 13:44:42 -08:00
OrcaWinandCodex 31d0f53cd9 Remove 230 low-value main, renderer, and mobile test cases (#38223)
Delete 19 whole suites and update coverage metadata and reduced flaky-pattern counts.

Co-authored-by: Codex <codex@openai.com>
2026-11-04 12:59:51 -08:00
OrcaWinandCodex a19de98085 Remove 249 low-value test cases and 10 whole suites (#38198)
Co-authored-by: Codex <codex@openai.com>
2026-11-04 10:36:55 -08:00
OrcaWinandOrcaWin 45b4fb3ab7 test: remove 152 low-value test declarations (#38182)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-04 09:43:36 -08:00
OrcaWinandOrcaWin 2270f75780 test: remove 189 low-value test declarations (#38169)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-04 08:50:29 -08:00
OrcaWinandOrcaWin 2724b03166 test: remove 482 low-value test declarations (#38145)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-04 06:32:36 -08:00
OrcaWinandOrcaWin b17646a5d9 test: remove 2191 low-value test declarations (#38113)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-04 03:40:25 -08:00
OrcaWinandOrcaWin 6792990b83 test: remove 1015 low-value test declarations (#38087)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-04 01:39:49 -08:00
OrcaWinandOrcaWin 74df8bf42e test: remove 997 low-value test declarations (#38058)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-03 23:59:28 -08:00
OrcaWinandOrcaWin e98c6a439a test: remove 2816 low-value test declarations (#38030)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-03 21:45:29 -08:00
Neil da96fadec3 refactor: organize source-control contract owners (#37990) 2026-11-03 19:12:25 -08:00
OrcaWin e95b0ca056 test: remove 58 low-value test declarations (#37853) 2026-11-03 08:53:10 -08:00
OrcaWin f9f825aa1a test: remove 71 low-value test declarations (#37851) 2026-11-03 08:40:30 -08:00
OrcaWin a29d2e3f7f test: remove 68 low-value test declarations (#37847) 2026-11-03 08:16:05 -08:00
OrcaWin 0a1340bf40 test: remove 83 low-value checks across 30 whole suites (#37835) 2026-11-03 07:23:57 -08:00
OrcaWin f63a887ab9 test: remove 73 low-value main-process tests (#37830)
* test: remove 47 low-value main-process test registrations

* test: remove 10 further low-value main-process checks

* test: remove 16 low-value main-process test registrations

* test: retire deleted ZCode suite from transcript contract command
2026-11-03 06:58:16 -08:00
OrcaWinandNeil c0cb95d62e test: remove 131 low-value harness, main, and renderer tests (#37825)
* test: remove 20 low-value harness and client tests

* test: retire fake-agent and layout-oracle self-tests

* test: retire source route for removed usage smoke

* test: include 21 further low-value tests and remove unused fixture helper

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-11-03 06:29:47 -08:00
Neil 2169b791b7 refactor(git): group worktree operations and ref owners (#37783)
* refactor(git): group worktree operations and ref owners

* test(git): retarget remaining concrete executor mocks
2026-11-03 02:52:13 -08:00