diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 14e713e105..6ae5ec75a2 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -44,10 +44,6 @@ jobs: - uses: oven-sh/setup-bun@v2 with: bun-version: 1.4.2 - - uses: actions/setup-go@v5 - with: - go-version-file: ui/go.mod - cache-dependency-path: ui/go.sum - name: Install dependencies run: bun install --frozen-lockfile @@ -76,13 +72,7 @@ jobs: - name: Workflow lint run: | bash <(curl -fsSL https://raw.githubusercontent.com/rhysd/actionlint/v1.7.12/scripts/download-actionlint.bash) 1.7.12 "$RUNNER_TEMP" - "$RUNNER_TEMP/actionlint" .github/workflows/bundle-apps.yml .github/workflows/checks.yml .github/workflows/e2e.yml .github/workflows/purity.yml .github/workflows/renovate.yml - - # The Go helper's own vet + tests, plus the shared protocol fixtures - # both languages golden-test (lib/ui/__tests__/protocol.test.ts runs - # in the unit shards). - - name: rt-ui vet and tests - run: bun run ui:test + "$RUNNER_TEMP/actionlint" .github/workflows/bundle-apps.yml .github/workflows/checks.yml .github/workflows/e2e.yml .github/workflows/purity.yml .github/workflows/renovate.yml .github/workflows/timings.yml # Drift here is invisible until someone runs it by hand, which is how # two commands reached main with no reference page. @@ -95,6 +85,24 @@ jobs: - name: Picker convention is enforced run: bun run picker:check + # The Go helper's own vet + tests, plus the shared protocol fixtures both + # languages golden-test (lib/ui/__tests__/protocol.test.ts runs in the unit + # shards). Its own job: it is a minute of build time nothing else waits on. + go: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.4.2 + - uses: actions/setup-go@v5 + with: + go-version-file: ui/go.mod + cache-dependency-path: ui/go.sum + - name: rt-ui vet and tests + run: bun run ui:test + # macos-latest, matching e2e.yml: much of the tree is macOS-specific (launchd # labels, TCC, codesign, ~/Library paths) and the bunfig preload that isolates # HOME for tests is exercised the same way developers run it locally. @@ -152,7 +160,7 @@ jobs: # would skip unit and this job too, and a skipped required check reads as # passing on GitHub. checks: - needs: [scope, static, unit] + needs: [scope, static, go, unit] if: always() runs-on: ubuntu-latest timeout-minutes: 5 @@ -161,12 +169,14 @@ jobs: env: SCOPE: ${{ needs.scope.result }} STATIC: ${{ needs.static.result }} + GO: ${{ needs.go.result }} UNIT: ${{ needs.unit.result }} MODE: ${{ needs.scope.outputs.mode }} run: | - echo "scope=$SCOPE static=$STATIC unit=$UNIT mode=$MODE" + echo "scope=$SCOPE static=$STATIC go=$GO unit=$UNIT mode=$MODE" [ "$SCOPE" = success ] || { echo "scope did not succeed"; exit 1; } [ "$STATIC" = success ] || { echo "static did not succeed"; exit 1; } + [ "$GO" = success ] || { echo "go did not succeed"; exit 1; } [ "$UNIT" = success ] && exit 0 [ "$UNIT" = skipped ] && [ "$MODE" = skip ] && exit 0 echo "unit was $UNIT with mode $MODE" diff --git a/.github/workflows/timings.yml b/.github/workflows/timings.yml new file mode 100644 index 0000000000..85beb679a7 --- /dev/null +++ b/.github/workflows/timings.yml @@ -0,0 +1,34 @@ +name: Timings + +# Regenerates test-timings.json on the same runner the shards use; a file +# measured on a laptop balances the shards for the laptop, not for CI. +# Download the artifact, commit it at the repo root. +on: + workflow_dispatch: + pull_request: + paths: + - .github/workflows/timings.yml + +jobs: + timings: + runs-on: macos-latest + timeout-minutes: 20 + env: + HOMEBREW_NO_AUTO_UPDATE: "1" + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.4.2 + - name: Install backup dependencies + run: brew install age zstd git-lfs + - name: Install dependencies + run: bun install --frozen-lockfile + - name: Time the unit suite + run: bun run test:timings + - uses: actions/upload-artifact@v4 + if: ${{ !cancelled() }} + with: + name: test-timings + path: test-timings.json + if-no-files-found: error diff --git a/AGENTS.md b/AGENTS.md index 1b02e2d4af..2f0a5cf8a2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -377,17 +377,22 @@ timeout). `test:all` runs all three. A green local `bun run test` says nothing about either of the others, and the difference is invisible in the output. CI runs the unit suite as three macOS shards (`bun test --shard=i/3 ---timings=test-timings.json`, balanced by the committed timings file; -`bun run test:timings` refreshes it) and runs the non-Mac gates on ubuntu. -`scripts/ci/test-scope.ts` decides a PR's scope from its diff: only docs or -Swift files that no unit test reads skips the shards; a TypeScript-only diff -runs `--changed=HEAD^1` plus the `lib/__tests__/no-*.test.ts` guards; any -other change runs the full suite (a non-TypeScript file outside that skip -set, a fixture, the preload or its imports, anything under `scripts/ci/`). -Any other test that spawns `cli.ts` or reads source as text is not selected -by `--changed`; it runs on main, so a TypeScript-only PR can go green and -break main there. Refresh the timings file with `bun run test:timings` when -the shards' printed wall times drift more than a minute apart. +--timings=test-timings.json`, balanced by the committed timings file, +which the Timings workflow regenerates) and runs the non-Mac gates on +ubuntu. `scripts/ci/test-scope.ts` decides a PR's scope from its diff: only +docs or Swift files that no unit test reads skips the shards; a +TypeScript-only diff runs `--changed=HEAD^1` plus every `no-*.test.ts` +guard in the unit directories; any other change runs the full suite (a +non-TypeScript file outside that skip set, a fixture, the preload or its +imports, anything under `scripts/ci/`). Any other test that spawns +`cli.ts` or reads source as text is not selected by `--changed`, so it +must be named `no-*` to run on a PR at all; an un-prefixed one only runs +on main, so a TypeScript-only PR can go green and break main there. When +the shards' printed wall times drift more than a minute apart, refresh +the timings file by running the Timings workflow +(`gh workflow run timings.yml`) and committing its artifact; +`bun run test:timings` on a laptop produces a laptop-balanced file, +which is not the same thing. It matters most for anything asserted verbatim end to end (the chat delivery frame, a CLI's `--json` envelope, a usage string) and for anything glitter or diff --git a/lib/__tests__/flavor.test.ts b/lib/__tests__/flavor.test.ts index f7ebf2ab0d..a34c05a563 100644 --- a/lib/__tests__/flavor.test.ts +++ b/lib/__tests__/flavor.test.ts @@ -63,7 +63,7 @@ describe("captureProcessFlavor", () => { expect(seen.flavor).toBe("dev"); expect(seen.passed).toBe(""); // Bun hands an env-less child the environment the parent started with, - // which no delete can reach: why lib/__tests__/spawn-env.test.ts + // which no delete can reach: why lib/__tests__/no-spawn-without-env.test.ts // requires env on every call. expect(seen.plain).toBe("dev"); } finally { diff --git a/lib/__tests__/no-hand-built-repo-paths.test.ts b/lib/__tests__/no-hand-built-repo-paths.test.ts new file mode 100644 index 0000000000..134053032f --- /dev/null +++ b/lib/__tests__/no-hand-built-repo-paths.test.ts @@ -0,0 +1,92 @@ +/** + * Source-guard tests: everything here reads source as text, so --changed + * cannot select it, and the no-* prefix is what puts it in the always-run + * set. + */ + +import { test, expect } from "bun:test"; +import { readFileSync, readdirSync, statSync } from "fs"; +import { join } from "path"; + +test("log writers resolve the log dir at call time, not at module load", () => { + // Source-guard: a writer that binds its log dir to a module-level const is + // invisible until it silently pollutes the real tree, so pin it here. + for (const file of ["../daemon-logger.ts", "../cli-logger.ts"]) { + const src = readFileSync(join(import.meta.dir, file), "utf8"); + expect(src).toContain("logsDir()"); + expect(src).not.toMatch(/^const LOG_DIR\s*=/m); + } +}); + +/** Walk .ts sources (skipping tests, node_modules, dist) under a root. */ +const walkSources = (root: string, visit: (file: string, src: string) => void) => { + const st = statSync(root); + if (!st.isDirectory()) { + visit(root, readFileSync(root, "utf8")); + return; + } + for (const entry of readdirSync(root)) { + const full = join(root, entry); + if (statSync(full).isDirectory()) { + if (entry === "node_modules" || entry === "__tests__" || entry === "dist") continue; + walkSources(full, visit); + continue; + } + if (!entry.endsWith(".ts") && !entry.endsWith(".tsx")) continue; + if (entry.endsWith(".test.ts")) continue; + if (full.endsWith("/rt-paths.ts")) continue; // the one allowed home + visit(full, readFileSync(full, "utf8")); + } +}; + +test("no code in lib/ reconstructs / by hand", () => { + const libDir = join(import.meta.dir, ".."); + // The old per-repo-at-root shapes. Per-repo paths MUST go through + // repoDataDir(); app-level joins use string literals and are not matched. + const antipatterns = [ + /join\(\s*RT_DIR\s*,\s*[a-zA-Z_$]/, // join(RT_DIR, repoName... + /join\(\s*homedir\(\)\s*,\s*"\.rt"\s*,\s*[a-zA-Z_$]/, // legacy join(homedir(), , repoName) + /["']\.rt["']\s*,\s*repoName/, // legacy literal, repoName + ]; + const offenders: string[] = []; + walkSources(libDir, (file, src) => { + src.split("\n").forEach((line, i) => { + if (antipatterns.some((re) => re.test(line))) { + offenders.push(`${file}:${i + 1} ${line.trim()}`); + } + }); + }); + expect(offenders, `Per-repo paths must use repoDataDir() from rt-paths.ts:\n${offenders.join("\n")}`).toEqual([]); +}); + +test("no source builds a legacy .rt path outside rt-paths.ts", () => { + // The ~/.rt to ~/.mattstack/rt move is complete: nothing may + // reference the legacy tree except rt-paths.ts itself (which owns the + // migration + canary). Catches both quoted literals (".rt") and path-like + // occurrences in strings/comments (~/.rt/..., $HOME/.rt/...). + const repoRoot = join(import.meta.dir, "..", ".."); + const roots = [ + join(repoRoot, "lib"), + join(repoRoot, "commands"), + join(repoRoot, "cli.ts"), + join(repoRoot, "packages", "rt-client", "src"), + ]; + const antipatterns = [ + /["'`]\.rt["'`]/, // the quoted literal ".rt" + /\/\.rt(\/|\b)/, // a /.rt path segment (~/.rt/..., $HOME/.rt) + ]; + const offenders: string[] = []; + for (const root of roots) { + walkSources(root, (file, src) => { + src.split("\n").forEach((line, i) => { + if (antipatterns.some((re) => re.test(line))) { + offenders.push(`${file}:${i + 1} ${line.trim()}`); + } + }); + }); + } + expect( + offenders, + `Legacy .rt paths must go through rt-paths.ts (rtDir() et al.):\n${offenders.join("\n")}`, + ).toEqual([]); +}); diff --git a/lib/__tests__/spawn-env.test.ts b/lib/__tests__/no-spawn-without-env.test.ts similarity index 100% rename from lib/__tests__/spawn-env.test.ts rename to lib/__tests__/no-spawn-without-env.test.ts diff --git a/lib/__tests__/rt-paths.test.ts b/lib/__tests__/rt-paths.test.ts index 4e427e8a6c..59aa1f2a91 100644 --- a/lib/__tests__/rt-paths.test.ts +++ b/lib/__tests__/rt-paths.test.ts @@ -1,20 +1,15 @@ /** * rt-paths — the single source of truth for the ~/.mattstack/rt layout. * - * Includes SOURCE-GUARD tests that fail the build if: - * - the old per-repo-at-root pattern (`join(RT_DIR, repoName, ...)`) reappears - * anywhere in lib/ outside this module, or - * - the legacy `.rt` path literal reappears anywhere under lib/, commands/, - * cli.ts, or packages/rt-client/src outside rt-paths.ts (RT-46: the - * ~/.rt compat symlink is being removed; every path must build the real - * ~/.mattstack/rt tree). - * Those tripwires are the point: they keep a future relayout a one-line change - * here instead of a scavenger hunt. + * The source-scanning tripwires that guard this layout (no hand-built + * / joins, no legacy `.rt` path literal outside rt-paths.ts) + * live in no-hand-built-repo-paths.test.ts, where the always-run glob finds + * them. */ import { describe, test, expect, afterEach, mock } from "bun:test"; import { - existsSync, lstatSync, mkdirSync, mkdtempSync, readdirSync, readFileSync, + existsSync, lstatSync, mkdirSync, mkdtempSync, readFileSync, rmSync, statSync, symlinkSync, writeFileSync, } from "fs"; import * as osReal from "os"; @@ -63,16 +58,6 @@ describe("rt-paths", () => { expect(logsDir()).toBe("/tmp/home-logs-2/.mattstack/rt/logs"); }); - test("log writers resolve the log dir at call time, not at module load", () => { - // Source-guard: a writer that binds its log dir to a module-level const is - // invisible until it silently pollutes the real tree, so pin it here. - for (const file of ["../daemon-logger.ts", "../cli-logger.ts"]) { - const src = readFileSync(join(import.meta.dir, file), "utf8"); - expect(src).toContain("logsDir()"); - expect(src).not.toMatch(/^const LOG_DIR\s*=/m); - } - }); - test("a repo dir is NEVER directly under the rt dir (regression guard for the move)", () => { process.env.HOME = "/tmp/h"; expect(repoDataDir("x")).toBe(join(reposDir(), "x")); @@ -472,80 +457,6 @@ describe("rt-paths", () => { }); }); - // ── Source-guards ──────────────────────────────────────────────────────────── - - /** Walk .ts sources (skipping tests, node_modules, dist) under a root. */ - const walkSources = (root: string, visit: (file: string, src: string) => void) => { - const st = statSync(root); - if (!st.isDirectory()) { - visit(root, readFileSync(root, "utf8")); - return; - } - for (const entry of readdirSync(root)) { - const full = join(root, entry); - if (statSync(full).isDirectory()) { - if (entry === "node_modules" || entry === "__tests__" || entry === "dist") continue; - walkSources(full, visit); - continue; - } - if (!entry.endsWith(".ts") && !entry.endsWith(".tsx")) continue; - if (entry.endsWith(".test.ts")) continue; - if (full.endsWith("/rt-paths.ts")) continue; // the one allowed home - visit(full, readFileSync(full, "utf8")); - } - }; - - test("no code in lib/ reconstructs / by hand", () => { - const libDir = join(import.meta.dir, ".."); - // The old per-repo-at-root shapes. Per-repo paths MUST go through - // repoDataDir(); app-level joins use string literals and are not matched. - const antipatterns = [ - /join\(\s*RT_DIR\s*,\s*[a-zA-Z_$]/, // join(RT_DIR, repoName... - /join\(\s*homedir\(\)\s*,\s*"\.rt"\s*,\s*[a-zA-Z_$]/, // legacy join(homedir(), , repoName) - /["']\.rt["']\s*,\s*repoName/, // legacy literal, repoName - ]; - const offenders: string[] = []; - walkSources(libDir, (file, src) => { - src.split("\n").forEach((line, i) => { - if (antipatterns.some((re) => re.test(line))) { - offenders.push(`${file}:${i + 1} ${line.trim()}`); - } - }); - }); - expect(offenders, `Per-repo paths must use repoDataDir() from rt-paths.ts:\n${offenders.join("\n")}`).toEqual([]); - }); - - test("no source builds a legacy .rt path outside rt-paths.ts (RT-46)", () => { - // The ~/.rt → ~/.mattstack/rt move (RT-33/RT-46) is complete: nothing may - // reference the legacy tree except rt-paths.ts itself (which owns the - // migration + canary). Catches both quoted literals (".rt") and path-like - // occurrences in strings/comments (~/.rt/..., $HOME/.rt/...). - const repoRoot = join(import.meta.dir, "..", ".."); - const roots = [ - join(repoRoot, "lib"), - join(repoRoot, "commands"), - join(repoRoot, "cli.ts"), - join(repoRoot, "packages", "rt-client", "src"), - ]; - const antipatterns = [ - /["'`]\.rt["'`]/, // the quoted literal ".rt" - /\/\.rt(\/|\b)/, // a /.rt path segment (~/.rt/..., $HOME/.rt) - ]; - const offenders: string[] = []; - for (const root of roots) { - walkSources(root, (file, src) => { - src.split("\n").forEach((line, i) => { - if (antipatterns.some((re) => re.test(line))) { - offenders.push(`${file}:${i + 1} ${line.trim()}`); - } - }); - }); - } - expect( - offenders, - `Legacy .rt paths must go through rt-paths.ts (rtDir() et al.):\n${offenders.join("\n")}`, - ).toEqual([]); - }); }); describe("worktreePoolRoot (friendly PATH-safe identity segment)", () => { diff --git a/lib/rt-paths.ts b/lib/rt-paths.ts index 5c73279965..0addf2fcbe 100644 --- a/lib/rt-paths.ts +++ b/lib/rt-paths.ts @@ -7,8 +7,8 @@ * Keeping the construction here means there is exactly one place that knows * the layout, so a future move is a one-line change and stray `join(RT_DIR, * repoName, ...)` callsites can't drift. The source-guard tests - * (lib/__tests__/rt-paths.test.ts) fail the build if that pattern — or any - * legacy `.rt` literal — reappears outside this module. + * (lib/__tests__/no-hand-built-repo-paths.test.ts) fail the build if that + * pattern, or any legacy `.rt` literal, reappears outside this module. * * HOME is resolved at CALL time via `process.env.HOME ?? homedir()` so tests can * point the whole tree at a temp dir by setting process.env.HOME before calling. diff --git a/lib/state/__tests__/source-guards.test.ts b/lib/state/__tests__/no-legacy-state-sources.test.ts similarity index 100% rename from lib/state/__tests__/source-guards.test.ts rename to lib/state/__tests__/no-legacy-state-sources.test.ts diff --git a/package.json b/package.json index 84d94a907b..12118c9a4a 100644 --- a/package.json +++ b/package.json @@ -10,11 +10,11 @@ }, "scripts": { "test": "bun test lib commands packages scripts rt-tray/Tests/stub-rt rt-tray/vm/run/helpers", - "test:watch": "bun test --watch lib commands packages scripts rt-tray/Tests/stub-rt rt-tray/vm/run/helpers", + "test:watch": "bun run test --watch", "test:timings": "rm -f test-timings.json && bun run test --timings=test-timings.json --update-timings", "test:e2e": "bun test --preload ./e2e/setup.ts --timeout 60000 e2e/tests/", "test:pty": "bun test --preload ./e2e/setup.ts --timeout 120000 e2e/pty/", - "test:all": "bun test lib commands packages scripts rt-tray/Tests/stub-rt rt-tray/vm/run/helpers && bun test --preload ./e2e/setup.ts --timeout 60000 e2e/tests/ && bun test --preload ./e2e/setup.ts --timeout 120000 e2e/pty/", + "test:all": "bun run test && bun run test:e2e && bun run test:pty", "docs:gen": "bun scripts/gen-docs.ts", "docs:check": "bun scripts/check-docs.ts", "picker:check": "bun scripts/lib/picker-conformance.ts", diff --git a/packages/rt-client/test/command-call-sites.test.ts b/packages/rt-client/test/no-unlisted-command-call-sites.test.ts similarity index 100% rename from packages/rt-client/test/command-call-sites.test.ts rename to packages/rt-client/test/no-unlisted-command-call-sites.test.ts diff --git a/scripts/ci/__tests__/test-scope.test.ts b/scripts/ci/__tests__/test-scope.test.ts index 39fa18e63a..f912037587 100644 --- a/scripts/ci/__tests__/test-scope.test.ts +++ b/scripts/ci/__tests__/test-scope.test.ts @@ -105,31 +105,38 @@ describe("unitDirs", () => { expect(() => unitDirs({ scripts: { test: "bun test --timeout 20000 lib" } })).toThrow(/bare bun test/); }); - test("the real script parses and test:timings delegates to it", () => { + test("the real script parses and test:timings, test:watch and test:all delegate to it", () => { const pkg = JSON.parse(readFileSync(join(ROOT, "package.json"), "utf8")); const dirs = unitDirs(pkg); expect(dirs).toContain("lib"); expect(dirs).toContain("commands"); expect(pkg.scripts["test:timings"]).toMatch(/\bbun run test\b/); + expect(pkg.scripts["test:watch"]).toMatch(/\bbun run test\b/); + expect(pkg.scripts["test:all"]).toMatch(/\bbun run test\b/); + const dirsList = dirs.join(" "); + for (const [name, script] of Object.entries(pkg.scripts)) { + if (name === "test") continue; + expect(script).not.toContain(dirsList); + } }); }); describe("alwaysRun", () => { - test("resolves the scanner guards and every file exists", () => { + test("resolves every no-* guard across the unit directories and every file exists", () => { const files = alwaysRun(); for (const name of ["no-ui-in-cli", "no-eager-tui", "no-url-pathname", "no-top-level-await", "no-daemon-sync-exec"]) { expect(files).toContain(`lib/__tests__/${name}.test.ts`); } + for (const f of [ + "lib/__tests__/no-spawn-without-env.test.ts", + "lib/__tests__/no-hand-built-repo-paths.test.ts", + "lib/state/__tests__/no-legacy-state-sources.test.ts", + "packages/rt-client/test/no-unlisted-command-call-sites.test.ts", + ]) { + expect(files).toContain(f); + } for (const f of files) expect(existsSync(join(ROOT, f))).toBe(true); }); - - test("includes the explicit scanner guards the no-* glob misses", () => { - const files = alwaysRun(); - expect(files).toContain("lib/__tests__/spawn-env.test.ts"); - expect(files).toContain("lib/state/__tests__/source-guards.test.ts"); - expect(files).toContain("lib/__tests__/rt-paths.test.ts"); - expect(files).toContain("packages/rt-client/test/command-call-sites.test.ts"); - }); }); describe("CHANGED_ARGS", () => { diff --git a/scripts/ci/test-scope.ts b/scripts/ci/test-scope.ts index 4a4d49e2af..adfa726bcc 100644 --- a/scripts/ci/test-scope.ts +++ b/scripts/ci/test-scope.ts @@ -28,21 +28,9 @@ export function unitDirs(pkg: { scripts: Record } = readPackage( return dirs.split(/\s+/); } -// These read source as text, so --changed never selects them, and they are -// not named no-*, so the glob below does not find them. -const SCANNER_GUARDS = [ - "lib/__tests__/spawn-env.test.ts", - "lib/state/__tests__/source-guards.test.ts", - "lib/__tests__/rt-paths.test.ts", - "packages/rt-client/test/command-call-sites.test.ts", -]; - export function alwaysRun(): string[] { - const dir = join(ROOT, "lib", "__tests__"); - const globbed = readdirSync(dir) - .filter((f) => /^no-.*\.test\.ts$/.test(f)) - .map((f) => `lib/__tests__/${f}`); - return [...new Set([...globbed, ...SCANNER_GUARDS])].sort(); + const files = unitDirs().flatMap((dir) => testFiles(join(ROOT, dir))); + return files.filter((f) => /^no-.*\.test\.tsx?$/.test(basename(f))).sort(); } function readPackage() { diff --git a/test-timings.json b/test-timings.json index d7a10fbdd6..bde7b8455c 100644 --- a/test-timings.json +++ b/test-timings.json @@ -1,682 +1,695 @@ { "version": 1, "files": { - "lib/daemon/__tests__/worktree-reconciler.test.ts": 51588, - "lib/worktree/__tests__/dispose.test.ts": 35571, - "lib/daemon/__tests__/worktree-handlers.test.ts": 30318, - "lib/daemon/__tests__/home-snapshot.test.ts": 26333, - "lib/daemon/__tests__/worktree-triage-handlers.test.ts": 25780, - "lib/daemon/reconciler/__tests__/stale-claims.test.ts": 13731, - "rt-tray/vm/run/helpers/__tests__/served-apps-sh.test.ts": 11420, - "lib/daemon/reconciler/__tests__/reactor.test.ts": 10944, - "lib/daemon/reconciler/__tests__/replenish.test.ts": 10710, - "lib/__tests__/run-history.test.ts": 10622, - "lib/mission/__tests__/compose-stash.test.ts": 10263, - "commands/__tests__/flavor-takeover.test.ts": 10214, - "lib/daemon/__tests__/reconciler-concurrency.test.ts": 9963, - "lib/worktree/__tests__/hydrate.test.ts": 9354, - "commands/__tests__/daemon-uninstall-start.test.ts": 9302, - "lib/worktree/__tests__/containment.test.ts": 7775, - "lib/daemon/__tests__/agent-handlers.test.ts": 7398, - "lib/daemon/__tests__/pane-handlers.test.ts": 7188, - "commands/git/__tests__/reset.test.ts": 7027, - "lib/setup/__tests__/validators-rt-health.test.ts": 6789, - "lib/worktree/triage/__tests__/dispose-agreement.test.ts": 6384, - "lib/worktree/triage/__tests__/facts.test.ts": 6364, - "lib/worktree/__tests__/create.test.ts": 6146, - "lib/__tests__/rebase-escalation.test.ts": 5859, - "scripts/__tests__/release-marketplace.test.ts": 5788, - "commands/__tests__/chat.test.ts": 5769, - "lib/worktree/__tests__/restore.test.ts": 5547, - "lib/worktree/__tests__/registry.test.ts": 5349, - "commands/__tests__/settings-dev-mode-store.test.ts": 5334, - "lib/endpoint/__tests__/store.test.ts": 5325, - "lib/__tests__/commit-ops.test.ts": 5187, - "lib/__tests__/repo-locate.test.ts": 4637, - "lib/__tests__/subprocess.test.ts": 4626, - "rt-tray/Tests/stub-rt/stub.test.ts": 4277, - "lib/mission/__tests__/compose.test.ts": 4160, - "lib/daemon/reconciler/__tests__/freshen.test.ts": 4140, - "lib/__tests__/agent-herdr.test.ts": 4134, - "lib/worktree/__tests__/config.test.ts": 3465, - "lib/state/__tests__/presence-store.test.ts": 3171, - "lib/worktree/__tests__/manifest.test.ts": 3100, - "lib/worktree/__tests__/registry-critical.test.ts": 2989, - "lib/daemon/reconciler/__tests__/reconcile.test.ts": 2955, - "lib/__tests__/repo-index-rename.test.ts": 2934, - "lib/mission/__tests__/git-actions.test.ts": 2925, - "lib/daemon/__tests__/herd-handlers.test.ts": 2838, - "packages/rt-client/test/relay.test.ts": 2669, - "lib/__tests__/git-ops.test.ts": 2656, - "lib/worktree/__tests__/ready-held.test.ts": 2367, - "lib/__tests__/repo-index.test.ts": 2359, - "packages/git-core/src/__tests__/conformance.test.ts": 2351, - "commands/__tests__/sync-stack-guard.test.ts": 2312, - "lib/worktree/__tests__/ready-async.test.ts": 2297, - "lib/daemon/__tests__/bg-service.test.ts": 2282, - "packages/git-core/src/__tests__/staging.test.ts": 2279, - "lib/__tests__/repo-locate-heal.test.ts": 2208, - "lib/__tests__/repo-purity.test.ts": 2194, - "lib/worktree/__tests__/git-async.test.ts": 2113, - "lib/daemon/__tests__/endpoint-handlers.test.ts": 2071, - "commands/__tests__/repos.test.ts": 2051, - "packages/git-core/src/__tests__/history-changes.test.ts": 2007, - "packages/git-core/src/__tests__/history-commits.test.ts": 2005, - "lib/__tests__/notifier-fallback.test.ts": 2001, - "packages/git-core/src/__tests__/diff.test.ts": 1976, - "lib/state/__tests__/notifier-store.test.ts": 1975, - "packages/git-core/src/__tests__/desktop-stash.test.ts": 1858, - "lib/__tests__/post-install-sweep.test.ts": 1853, - "packages/git-core/src/__tests__/diff-sources.test.ts": 1836, - "packages/rt-client/test/dist-freshness.test.ts": 1821, - "packages/git-core/src/__tests__/tags-mutations.test.ts": 1721, - "scripts/__tests__/fetch-deps-make-src.test.ts": 1700, - "lib/setup/__tests__/steps-b.test.ts": 1690, - "lib/state/__tests__/db.test.ts": 1675, - "lib/worktree/__tests__/ready-approval.test.ts": 1506, - "lib/daemon/__tests__/project-mrs-store.test.ts": 1469, - "packages/rt-client/src/settings/__tests__/identity.test.ts": 1468, - "commands/__tests__/commit-command.test.ts": 1431, - "lib/endpoint/__tests__/shim.test.ts": 1416, - "commands/__tests__/state-restore-from-backup.test.ts": 1392, - "packages/git-core/src/__tests__/discard.test.ts": 1391, - "commands/__tests__/worktree.test.ts": 1370, - "lib/daemon/__tests__/reconciler-hold.test.ts": 1363, - "lib/daemon/__tests__/chat-delivery.test.ts": 1362, - "lib/worktree/__tests__/dirt-class.test.ts": 1346, - "lib/__tests__/gate-fork-hook.test.ts": 1339, - "lib/setup/__tests__/pack.test.ts": 1230, - "lib/daemon/__tests__/chat-handlers.test.ts": 1187, - "lib/secrets/__tests__/team-store.real-sops.test.ts": 1174, - "lib/__tests__/backup-orchestrator.test.ts": 1169, - "lib/setup/__tests__/skills-materialize.test.ts": 1158, - "lib/state/__tests__/branch-cache.test.ts": 1102, - "packages/git-core/src/__tests__/commits.test.ts": 1089, - "packages/git-core/src/__tests__/branch-ops.test.ts": 1063, - "lib/__tests__/branch-guard.test.ts": 1036, - "lib/daemon/__tests__/repo-tracking.test.ts": 1028, - "lib/__tests__/daemon-client-attribution.test.ts": 1017, - "packages/git-core/src/__tests__/snapshot.test.ts": 996, - "lib/__tests__/chat-room.test.ts": 992, - "lib/__tests__/repo-index-async.test.ts": 964, - "lib/worktree/__tests__/ready.test.ts": 864, - "lib/sdm/__tests__/browser-login.test.ts": 856, - "commands/__tests__/repos-locate.test.ts": 837, - "lib/sdm/__tests__/core-runner.test.ts": 834, - "lib/__tests__/git-worktrees.test.ts": 805, - "commands/__tests__/runs.test.ts": 803, - "packages/git-core/src/__tests__/refs.test.ts": 802, - "lib/__tests__/repo-locate-e2e.test.ts": 789, - "lib/state/__tests__/chat-store.test.ts": 783, - "lib/daemon/__tests__/trust-accept.test.ts": 774, - "commands/git/__tests__/rebase.test.ts": 773, - "packages/git-core/src/__tests__/stash-mutations.test.ts": 765, - "lib/skills/__tests__/compile-native.e2e.test.ts": 758, - "lib/__tests__/repo-index-missing.test.ts": 752, - "lib/endpoint/__tests__/env.test.ts": 731, - "commands/__tests__/skills.test.ts": 730, - "lib/__tests__/backup-lfs.test.ts": 729, - "lib/daemon/__tests__/inject.test.ts": 705, - "packages/git-core/src/__tests__/log.test.ts": 647, - "lib/setup/__tests__/probes.test.ts": 645, - "commands/__tests__/run-picker-rows.test.ts": 629, - "lib/daemon/__tests__/cron.test.ts": 609, - "lib/state/__tests__/legacy-import.test.ts": 606, - "commands/__tests__/run-queue-launch.test.ts": 598, - "lib/runs/__tests__/provenance.test.ts": 598, - "lib/__tests__/nav-fs.test.ts": 581, - "lib/endpoint/__tests__/settings-regen.test.ts": 566, - "lib/daemon/__tests__/cache-refresh-abort.test.ts": 558, - "lib/setup/__tests__/steps-a.test.ts": 555, - "lib/ui/__tests__/spawn.test.ts": 541, - "commands/__tests__/run-preset-launch.test.ts": 522, - "scripts/__tests__/fetch-deps-identity.test.ts": 517, - "commands/__tests__/skills-bind.test.ts": 512, - "packages/git-core/src/__tests__/gitignore.test.ts": 508, - "lib/daemon/__tests__/cache-refresh-gc.test.ts": 497, - "lib/__tests__/repo-index-trash.test.ts": 465, - "lib/__tests__/no-top-level-await.test.ts": 457, - "lib/ui/__tests__/steps.test.ts": 448, - "lib/daemon/__tests__/repos-handlers.test.ts": 432, - "lib/sdm/__tests__/core-login-capture.test.ts": 431, - "commands/__tests__/cd.test.ts": 425, - "packages/git-core/src/__tests__/stash.test.ts": 422, - "lib/__tests__/cd-cache-read.test.ts": 415, - "commands/__tests__/hooks.test.ts": 407, - "lib/daemon/__tests__/events-bus.test.ts": 401, - "commands/__tests__/code-launch.test.ts": 393, - "scripts/__tests__/fetch-deps-skills.test.ts": 389, - "commands/__tests__/settings-keys-hooks-regen.test.ts": 378, - "lib/__tests__/backup-pipeline.test.ts": 378, - "packages/git-core/src/__tests__/fetch-state.test.ts": 366, - "lib/daemon/__tests__/herd-lifecycle.test.ts": 357, - "commands/__tests__/skills-surface.test.ts": 354, - "lib/daemon/__tests__/git-status-sweep.test.ts": 354, - "lib/daemon/__tests__/status-ready-held.test.ts": 350, - "lib/daemon/__tests__/project-sync.test.ts": 339, - "commands/__tests__/code-pref-key.test.ts": 335, - "lib/daemon/__tests__/cache-refresh-coalesce.test.ts": 326, - "lib/daemon/__tests__/status-identity.test.ts": 322, - "lib/daemon/__tests__/safe-timers.test.ts": 321, - "lib/daemon/__tests__/git-badges-store.test.ts": 307, - "packages/git-core/test-support/sandbox.test.ts": 307, - "lib/daemon/reconciler/__tests__/tree-holders.test.ts": 306, - "lib/runs/__tests__/emit.test.ts": 306, - "lib/setup/__tests__/steps-c.test.ts": 304, - "lib/__tests__/repo.test.ts": 302, - "lib/__tests__/plugins.test.ts": 297, - "lib/worktree/__tests__/trash.test.ts": 291, - "lib/__tests__/forge-token-for.test.ts": 263, - "lib/daemon/__tests__/gates-store.test.ts": 258, - "lib/herdr/__tests__/subscribe.test.ts": 243, - "lib/state/__tests__/db-integrity.test.ts": 242, - "lib/daemon/__tests__/hooks-guard.test.ts": 240, - "packages/git-core/src/__tests__/fetch.test.ts": 237, - "packages/git-core/src/__tests__/env-scrub.test.ts": 221, - "commands/__tests__/agent-fallback.test.ts": 216, - "lib/daemon/__tests__/boot-order.test.ts": 214, - "lib/team/__tests__/create.test.ts": 211, - "lib/daemon/__tests__/reconciler-deadline.test.ts": 195, - "lib/daemon/__tests__/freshness-mapping.test.ts": 193, - "lib/daemon/__tests__/gates-handlers.test.ts": 193, - "commands/__tests__/run-resolve.test.ts": 189, - "scripts/__tests__/render-launchagents.test.ts": 186, - "lib/runs/__tests__/store-repo-filter.test.ts": 179, - "commands/__tests__/probe-pid-alive.test.ts": 174, - "lib/daemon/__tests__/boot-migrate.test.ts": 174, - "lib/daemon/__tests__/inbox.test.ts": 166, - "lib/home/__tests__/age-key.test.ts": 162, - "lib/__tests__/notify-bridge.test.ts": 161, - "lib/skills/__tests__/init-compile.e2e.test.ts": 161, - "lib/daemon/__tests__/status-repos-async.test.ts": 157, - "commands/__tests__/runs-write.test.ts": 156, - "packages/git-core/src/__tests__/exec-abort.test.ts": 151, - "commands/__tests__/code-prefs.test.ts": 137, - "lib/daemon/__tests__/gate-answer-executor.test.ts": 136, - "scripts/ci/__tests__/test-scope.test.ts": 135, - "lib/ui/__tests__/session.test.ts": 133, - "scripts/lib/__tests__/app-identity.test.ts": 131, - "lib/daemon/__tests__/reconciler.test.ts": 129, - "lib/herdr/__tests__/client.test.ts": 127, - "lib/state/__tests__/busy.test.ts": 125, - "lib/daemon/__tests__/gate-push.test.ts": 119, - "lib/endpoint/__tests__/intercept-run.test.ts": 115, - "packages/git-core/src/__tests__/exec-exit-code.test.ts": 114, - "rt-tray/vm/run/helpers/__tests__/served-verdict.test.ts": 113, + "lib/daemon/__tests__/home-snapshot.test.ts": 25995, + "lib/daemon/__tests__/worktree-reconciler.test.ts": 25917, + "lib/worktree/__tests__/dispose.test.ts": 17258, + "lib/__tests__/run-history.test.ts": 16468, + "lib/daemon/__tests__/worktree-triage-handlers.test.ts": 14085, + "lib/daemon/__tests__/worktree-handlers.test.ts": 13522, + "rt-tray/vm/run/helpers/__tests__/served-apps-sh.test.ts": 10002, + "commands/__tests__/daemon-uninstall-start.test.ts": 9384, + "lib/daemon/__tests__/reconciler-concurrency.test.ts": 9240, + "lib/state/__tests__/presence-store.test.ts": 8711, + "lib/endpoint/__tests__/store.test.ts": 8283, + "commands/__tests__/settings-dev-mode-store.test.ts": 7897, + "lib/daemon/__tests__/pane-handlers.test.ts": 7372, + "lib/worktree/__tests__/registry.test.ts": 7345, + "lib/worktree/__tests__/registry-critical.test.ts": 6759, + "commands/__tests__/flavor-takeover.test.ts": 6715, + "lib/state/__tests__/notifier-store.test.ts": 6495, + "commands/git/__tests__/reset.test.ts": 6309, + "lib/worktree/__tests__/hydrate.test.ts": 5950, + "lib/daemon/reconciler/__tests__/stale-claims.test.ts": 5669, + "lib/worktree/__tests__/containment.test.ts": 5344, + "lib/daemon/reconciler/__tests__/replenish.test.ts": 5258, + "scripts/__tests__/fetch-deps-make-src.test.ts": 5209, + "lib/daemon/reconciler/__tests__/reactor.test.ts": 4920, + "lib/__tests__/subprocess.test.ts": 4676, + "lib/mission/__tests__/compose-stash.test.ts": 4485, + "rt-tray/Tests/stub-rt/stub.test.ts": 4479, + "lib/setup/__tests__/validators-rt-health.test.ts": 4265, + "lib/__tests__/agent-herdr.test.ts": 4049, + "lib/daemon/__tests__/project-mrs-store.test.ts": 3771, + "lib/__tests__/rebase-escalation.test.ts": 3430, + "lib/daemon/__tests__/herd-handlers.test.ts": 3429, + "lib/worktree/__tests__/create.test.ts": 3391, + "lib/worktree/triage/__tests__/facts.test.ts": 3314, + "commands/__tests__/chat.test.ts": 3063, + "lib/state/__tests__/branch-cache.test.ts": 3049, + "lib/worktree/triage/__tests__/dispose-agreement.test.ts": 3001, + "scripts/__tests__/release-marketplace.test.ts": 2959, + "packages/rt-client/test/dist-freshness.test.ts": 2860, + "lib/state/__tests__/chat-store.test.ts": 2786, + "packages/rt-client/test/relay.test.ts": 2708, + "lib/__tests__/repo-index-async.test.ts": 2630, + "lib/daemon/__tests__/bg-service.test.ts": 2604, + "lib/__tests__/commit-ops.test.ts": 2538, + "lib/__tests__/repo-locate.test.ts": 2460, + "lib/worktree/__tests__/restore.test.ts": 2442, + "commands/__tests__/sync-stack-guard.test.ts": 2272, + "lib/worktree/__tests__/git-async.test.ts": 2203, + "lib/state/__tests__/db.test.ts": 2114, + "lib/__tests__/git-ops.test.ts": 2083, + "lib/worktree/__tests__/manifest.test.ts": 2080, + "lib/__tests__/notifier-fallback.test.ts": 2007, + "lib/state/__tests__/legacy-import.test.ts": 1945, + "lib/__tests__/no-top-level-await.test.ts": 1890, + "lib/daemon/reconciler/__tests__/freshen.test.ts": 1836, + "lib/mission/__tests__/compose.test.ts": 1774, + "lib/daemon/__tests__/chat-delivery.test.ts": 1770, + "lib/__tests__/repo-index-rename.test.ts": 1724, + "lib/mission/__tests__/git-actions.test.ts": 1684, + "packages/git-core/src/__tests__/conformance.test.ts": 1665, + "lib/__tests__/repo-purity.test.ts": 1424, + "commands/__tests__/commit-command.test.ts": 1400, + "packages/git-core/src/__tests__/staging.test.ts": 1303, + "lib/daemon/__tests__/chat-handlers.test.ts": 1297, + "lib/worktree/__tests__/ready-async.test.ts": 1151, + "lib/daemon/reconciler/__tests__/reconcile.test.ts": 1133, + "lib/__tests__/repo-index.test.ts": 1125, + "packages/git-core/src/__tests__/diff.test.ts": 1101, + "lib/__tests__/daemon-client-attribution.test.ts": 1097, + "packages/git-core/src/__tests__/diff-sources.test.ts": 1091, + "packages/git-core/src/__tests__/history-changes.test.ts": 1080, + "lib/daemon/__tests__/git-badges-store.test.ts": 1056, + "packages/git-core/src/__tests__/tags-mutations.test.ts": 1054, + "packages/git-core/src/__tests__/desktop-stash.test.ts": 1018, + "packages/git-core/src/__tests__/history-commits.test.ts": 952, + "commands/__tests__/run-queue-launch.test.ts": 920, + "lib/sdm/__tests__/browser-login.test.ts": 911, + "lib/__tests__/branch-guard.test.ts": 896, + "lib/__tests__/backup-orchestrator.test.ts": 884, + "lib/worktree/__tests__/dirt-class.test.ts": 836, + "lib/daemon/__tests__/inject.test.ts": 833, + "lib/daemon/__tests__/trust-accept.test.ts": 823, + "commands/__tests__/repos.test.ts": 801, + "commands/__tests__/skills.test.ts": 784, + "packages/git-core/src/__tests__/discard.test.ts": 756, + "lib/endpoint/__tests__/env.test.ts": 749, + "lib/daemon/__tests__/endpoint-handlers.test.ts": 732, + "commands/__tests__/worktree.test.ts": 715, + "lib/__tests__/git-worktrees.test.ts": 713, + "lib/worktree/__tests__/config.test.ts": 703, + "lib/__tests__/repo-locate-e2e.test.ts": 697, + "lib/__tests__/chat-room.test.ts": 659, + "lib/sdm/__tests__/core-runner.test.ts": 648, + "lib/setup/__tests__/probes.test.ts": 646, + "lib/daemon/__tests__/reconciler-hold.test.ts": 636, + "lib/__tests__/nav-fs.test.ts": 635, + "lib/daemon/__tests__/cron.test.ts": 635, + "lib/ui/__tests__/spawn.test.ts": 634, + "lib/daemon/__tests__/herd-lifecycle.test.ts": 630, + "packages/git-core/src/__tests__/branch-ops.test.ts": 613, + "commands/git/__tests__/rebase.test.ts": 598, + "scripts/__tests__/fetch-deps-identity.test.ts": 597, + "commands/__tests__/run-preset-launch.test.ts": 572, + "packages/git-core/src/__tests__/commits.test.ts": 569, + "lib/daemon/__tests__/cache-refresh-abort.test.ts": 565, + "lib/setup/__tests__/steps-b.test.ts": 564, + "commands/__tests__/repos-locate.test.ts": 563, + "lib/daemon/__tests__/project-sync.test.ts": 547, + "packages/git-core/src/__tests__/snapshot.test.ts": 538, + "commands/__tests__/state-restore-from-backup.test.ts": 531, + "packages/git-core/src/__tests__/stash-mutations.test.ts": 529, + "lib/endpoint/__tests__/shim.test.ts": 526, + "lib/daemon/__tests__/agent-handlers.test.ts": 520, + "scripts/__tests__/fetch-deps-skills.test.ts": 473, + "lib/worktree/__tests__/ready-held.test.ts": 468, + "packages/git-core/src/__tests__/refs.test.ts": 466, + "lib/state/__tests__/busy.test.ts": 458, + "commands/__tests__/runs-write.test.ts": 456, + "commands/__tests__/runs.test.ts": 456, + "lib/daemon/__tests__/events-bus.test.ts": 456, + "lib/__tests__/repo-locate-heal.test.ts": 446, + "lib/mcp/__tests__/mr-target.test.ts": 436, + "commands/__tests__/agent-fallback.test.ts": 429, + "commands/__tests__/run-picker-rows.test.ts": 429, + "lib/__tests__/repo-index-trash.test.ts": 417, + "lib/__tests__/backup-lfs.test.ts": 416, + "commands/__tests__/skills-bind.test.ts": 411, + "lib/worktree/__tests__/ready.test.ts": 389, + "lib/skills/__tests__/compile-native.e2e.test.ts": 382, + "lib/setup/__tests__/skills-materialize.test.ts": 373, + "lib/daemon/__tests__/safe-timers.test.ts": 371, + "lib/state/__tests__/db-integrity.test.ts": 369, + "lib/daemon/__tests__/cache-refresh-coalesce.test.ts": 362, + "commands/__tests__/probe-pid-alive.test.ts": 353, + "packages/git-core/src/__tests__/log.test.ts": 341, + "lib/worktree/__tests__/ready-approval.test.ts": 330, + "packages/rt-client/src/settings/__tests__/identity.test.ts": 327, + "lib/daemon/__tests__/git-status-sweep.test.ts": 323, + "lib/daemon/__tests__/gate-answer-executor.test.ts": 314, + "lib/runs/__tests__/emit.test.ts": 311, + "commands/__tests__/code-pref-key.test.ts": 309, + "lib/runs/__tests__/provenance.test.ts": 307, + "lib/__tests__/repo-index-missing.test.ts": 303, + "lib/setup/__tests__/steps-a.test.ts": 302, + "packages/git-core/src/__tests__/stash.test.ts": 297, + "lib/__tests__/no-url-pathname.test.ts": 294, + "commands/__tests__/skills-surface.test.ts": 287, + "lib/daemon/__tests__/cache-refresh-gc.test.ts": 283, + "lib/setup/__tests__/pack.test.ts": 283, + "lib/daemon/__tests__/gates-store.test.ts": 281, + "lib/daemon/__tests__/freshness-mapping.test.ts": 279, + "lib/worktree/__tests__/trash.test.ts": 274, + "lib/herdr/__tests__/subscribe.test.ts": 271, + "scripts/lib/__tests__/app-identity.test.ts": 268, + "lib/__tests__/cd-cache-read.test.ts": 259, + "lib/ui/__tests__/steps.test.ts": 253, + "scripts/__tests__/render-launchagents.test.ts": 245, + "lib/__tests__/forge-token-for.test.ts": 242, + "scripts/ci/__tests__/test-scope.test.ts": 238, + "lib/daemon/__tests__/reconciler-deadline.test.ts": 218, + "lib/daemon/__tests__/gates-handlers.test.ts": 215, + "lib/__tests__/no-hand-built-repo-paths.test.ts": 211, + "packages/git-core/src/__tests__/gitignore.test.ts": 209, + "lib/__tests__/no-ui-in-cli.test.ts": 207, + "lib/daemon/__tests__/repos-handlers.test.ts": 201, + "packages/git-core/src/__tests__/fetch-state.test.ts": 201, + "commands/__tests__/daemon-flavor-output.test.ts": 199, + "commands/__tests__/runner-command.test.ts": 195, + "packages/git-core/test-support/sandbox.test.ts": 191, + "lib/home/__tests__/age-key.test.ts": 180, + "lib/daemon/__tests__/reconciler.test.ts": 179, + "lib/daemon/__tests__/inbox.test.ts": 177, + "lib/daemon/__tests__/repo-tracking.test.ts": 175, + "lib/daemon/__tests__/gate-push.test.ts": 173, + "lib/ui/__tests__/session.test.ts": 167, + "commands/__tests__/settings-keys-hooks-regen.test.ts": 159, + "lib/__tests__/notify-bridge.test.ts": 158, + "commands/__tests__/run-resolve.test.ts": 153, + "lib/__tests__/post-install-sweep.test.ts": 152, + "lib/state/__tests__/cursors-store.test.ts": 150, + "lib/daemon/__tests__/herd-watchdog-adapters.test.ts": 149, + "packages/git-core/src/__tests__/env-scrub.test.ts": 147, + "commands/__tests__/skills-compile-source.test.ts": 146, + "lib/__tests__/gate-fork-hook.test.ts": 143, + "lib/__tests__/repo.test.ts": 143, + "lib/endpoint/__tests__/settings-regen.test.ts": 142, + "lib/daemon/__tests__/api-server.test.ts": 141, + "lib/herdr/__tests__/client.test.ts": 141, + "lib/daemon/__tests__/status-repos-async.test.ts": 137, + "lib/setup/__tests__/steps-c.test.ts": 136, + "commands/__tests__/cd.test.ts": 135, + "packages/git-core/src/__tests__/fetch.test.ts": 134, + "lib/ui/__tests__/prompts.test.ts": 129, + "lib/release/__tests__/release-app-run.test.ts": 128, + "lib/state/__tests__/kv-blob.test.ts": 128, + "lib/daemon/__tests__/gate-owner-router.test.ts": 127, + "lib/daemon/__tests__/gate-fork-check-handler.test.ts": 126, + "packages/git-core/src/__tests__/exec-abort.test.ts": 126, + "lib/daemon/__tests__/pollers.test.ts": 125, + "lib/release/__tests__/dev-app-cache.test.ts": 120, + "commands/__tests__/hooks.test.ts": 119, + "lib/state/__tests__/endpoint-claims-store.test.ts": 119, + "lib/daemon/__tests__/hooks-guard.test.ts": 118, + "lib/runs/__tests__/prune.test.ts": 118, + "lib/setup/__tests__/validators-tools.test.ts": 114, + "rt-tray/vm/run/helpers/__tests__/appcast-server.test.ts": 114, + "lib/__tests__/backup-pipeline.test.ts": 113, + "lib/__tests__/command-tree.test.ts": 113, + "lib/__tests__/module-registry.test.ts": 110, + "lib/mcp/__tests__/tools.test.ts": 110, + "lib/skills/__tests__/init-compile.e2e.test.ts": 110, + "lib/state/__tests__/db-schema-convergence.test.ts": 107, + "commands/__tests__/settings-schema.test.ts": 106, + "lib/daemon/__tests__/boot-reconcile.test.ts": 105, + "lib/daemon/__tests__/gate-ask-handler.test.ts": 105, "lib/endpoint/__tests__/config.test.ts": 105, - "lib/daemon/__tests__/boot-reconcile.test.ts": 103, - "rt-tray/vm/run/helpers/__tests__/appcast-server.test.ts": 103, - "lib/state/__tests__/barrel.test.ts": 100, - "lib/daemon/__tests__/pollers.test.ts": 99, - "lib/runs/__tests__/write.test.ts": 97, - "lib/daemon/__tests__/herd-watchdog-adapters.test.ts": 94, - "lib/ui/__tests__/prompts.test.ts": 93, - "lib/__tests__/merge-cleanup-gap.test.ts": 92, - "lib/state/__tests__/source-guards.test.ts": 91, - "lib/daemon/__tests__/gate-owner-router.test.ts": 89, - "packages/rt-client/src/settings/__tests__/write.test.ts": 89, - "commands/__tests__/daemon-tracking.test.ts": 88, - "lib/runs/__tests__/prune.test.ts": 87, - "lib/daemon/__tests__/gate-ask-handler.test.ts": 86, - "lib/skills/__tests__/provenance.test.ts": 86, - "lib/endpoint/__tests__/allocator.test.ts": 84, - "scripts/bundle-ci/__tests__/stage-identity.test.ts": 83, - "lib/__tests__/no-ui-in-cli.test.ts": 81, - "lib/__tests__/backup-sources.test.ts": 80, - "lib/daemon/__tests__/api-server.test.ts": 79, - "lib/release/__tests__/dev-app-cache.test.ts": 79, - "lib/runs/__tests__/store.test.ts": 78, - "lib/__tests__/rt-paths.test.ts": 75, - "lib/state/__tests__/kv-blob.test.ts": 73, - "lib/state/__tests__/run-history-store.test.ts": 70, - "lib/daemon/__tests__/gate-fork-check-handler.test.ts": 69, - "commands/__tests__/daemon-flavor-output.test.ts": 68, - "lib/daemon/__tests__/discussions-file-store.test.ts": 66, - "lib/skills/__tests__/sources.test.ts": 65, - "lib/__tests__/git-worktree-roots-async.test.ts": 64, - "lib/state/__tests__/endpoint-claims-store.test.ts": 62, - "lib/state/__tests__/cursors-store.test.ts": 61, - "lib/__tests__/no-url-pathname.test.ts": 60, - "lib/state/__tests__/db-schema-convergence.test.ts": 59, - "lib/state/__tests__/dm-store.test.ts": 59, - "packages/rt-client/test/test-isolation.test.ts": 59, - "lib/__tests__/no-daemon-sync-exec.test.ts": 58, - "lib/__tests__/pickers.test.ts": 58, - "lib/setup/__tests__/plan.test.ts": 58, - "lib/__tests__/test-home-isolation.test.ts": 57, - "lib/setup/__tests__/validators-tools.test.ts": 57, - "lib/secrets/__tests__/store.test.ts": 54, - "lib/setup/__tests__/uninstall.test.ts": 53, - "lib/__tests__/dev-mode-wrapper.test.ts": 52, - "lib/deps/__tests__/links.test.ts": 52, - "lib/skills/__tests__/surface.test.ts": 52, + "rt-tray/vm/run/helpers/__tests__/served-verdict.test.ts": 104, + "packages/git-core/src/__tests__/exec-exit-code.test.ts": 103, + "lib/runs/__tests__/write.test.ts": 102, + "lib/state/__tests__/run-history-store.test.ts": 100, + "lib/runs/__tests__/store.test.ts": 99, + "lib/__tests__/plugins.test.ts": 98, + "lib/__tests__/no-daemon-sync-exec.test.ts": 96, + "commands/__tests__/code-prefs.test.ts": 94, + "commands/__tests__/daemon-tracking.test.ts": 92, + "lib/__tests__/merge-cleanup-gap.test.ts": 91, + "lib/daemon/__tests__/discussions-file-store.test.ts": 91, + "lib/daemon/__tests__/boot-order.test.ts": 90, + "commands/__tests__/state-backup.test.ts": 86, + "lib/setup/__tests__/plan.test.ts": 84, + "lib/endpoint/__tests__/intercept-run.test.ts": 83, + "lib/state/__tests__/dm-store.test.ts": 82, + "lib/state/__tests__/agents-prune.test.ts": 78, + "lib/setup/__tests__/uninstall.test.ts": 77, + "lib/state/__tests__/identity-migrate.test.ts": 77, + "lib/state/__tests__/no-legacy-state-sources.test.ts": 77, + "lib/daemon/__tests__/status-ready-held.test.ts": 76, + "lib/runs/__tests__/resolve-db.test.ts": 76, + "lib/__tests__/pickers.test.ts": 75, + "commands/__tests__/pane.test.ts": 74, + "commands/__tests__/release-verify.test.ts": 73, + "lib/__tests__/backup-sources.test.ts": 67, + "lib/state/__tests__/barrel.test.ts": 67, + "lib/daemon/__tests__/boot-migrate.test.ts": 66, + "lib/secrets/__tests__/store.test.ts": 65, + "lib/__tests__/notifier-push.test.ts": 64, + "lib/runs/__tests__/store-repo-filter.test.ts": 64, + "lib/state/__tests__/identity-migrate-resolve.test.ts": 64, + "lib/__tests__/repo-arg-resolution.test.ts": 61, + "scripts/bundle-ci/__tests__/stage-identity.test.ts": 61, + "lib/team/__tests__/create.test.ts": 60, + "lib/__tests__/git-worktree-roots-async.test.ts": 59, + "packages/rt-client/src/settings/__tests__/write.test.ts": 59, + "lib/__tests__/test-home-isolation.test.ts": 58, + "scripts/lib/__tests__/deps-lock-cli.test.ts": 58, + "lib/__tests__/exitcode-guard.test.ts": 57, + "lib/state/__tests__/agents-store.test.ts": 57, + "lib/state/__tests__/chat-prune.test.ts": 56, + "scripts/__tests__/deps-lock.test.ts": 56, + "lib/__tests__/legacy-repo-data.test.ts": 55, + "commands/__tests__/home.test.ts": 53, + "commands/__tests__/uninstall.test.ts": 53, + "lib/deps/__tests__/resolve.test.ts": 53, + "lib/sdm/__tests__/verify.test.ts": 53, + "commands/__tests__/team.test.ts": 51, "lib/__tests__/flavor.test.ts": 50, - "lib/runs/__tests__/start.test.ts": 50, - "lib/__tests__/command-tree.test.ts": 48, - "packages/git-core/src/__tests__/smoke.test.ts": 48, - "lib/release/__tests__/release-app-run.test.ts": 45, - "commands/__tests__/pane.test.ts": 44, - "commands/__tests__/state-backup.test.ts": 43, - "lib/runs/__tests__/resolve-db.test.ts": 43, - "scripts/lib/__tests__/deps-lock-cli.test.ts": 42, - "lib/__tests__/exitcode-guard.test.ts": 41, - "lib/sdm/__tests__/state.test.ts": 41, - "commands/__tests__/skills-compile-source.test.ts": 40, - "lib/state/__tests__/identity-migrate.test.ts": 38, - "lib/__tests__/repo-arg-resolution.test.ts": 36, - "lib/__tests__/legacy-repo-data.test.ts": 35, - "lib/state/__tests__/identity-migrate-resolve.test.ts": 35, - "lib/state/__tests__/chat-prune.test.ts": 34, - "commands/__tests__/home.test.ts": 33, - "lib/daemon/__tests__/runs-handlers.test.ts": 33, - "commands/__tests__/daemon-restart.test.ts": 32, - "lib/__tests__/herdr-launch.test.ts": 32, - "lib/state/__tests__/agents-prune.test.ts": 32, - "lib/daemon/__tests__/events-bus-bounds.test.ts": 31, - "lib/worktree/__tests__/patch.test.ts": 31, - "commands/__tests__/runner-command.test.ts": 30, - "lib/skills/__tests__/sync.test.ts": 29, - "lib/__tests__/no-eager-tui.test.ts": 28, - "lib/daemon/__tests__/team-snapshots.test.ts": 28, - "lib/deps/__tests__/resolve.test.ts": 28, - "packages/git-core/src/__tests__/client-shape.test.ts": 28, - "packages/rt-client/src/settings/__tests__/resolve.test.ts": 28, - "lib/mission/__tests__/driver.test.ts": 27, - "lib/sdm/__tests__/scan.test.ts": 27, - "lib/state/__tests__/state-db-guarded.test.ts": 27, - "commands/__tests__/team-join.test.ts": 25, - "lib/__tests__/enrich-cache-identity.test.ts": 25, - "lib/state/__tests__/agents-store.test.ts": 25, - "commands/__tests__/skills-writing-style.test.ts": 23, - "lib/daemon/__tests__/reconciler-expectations.test.ts": 23, - "lib/ui/__tests__/pick.test.ts": 23, - "packages/rt-client/test/transport.test.ts": 23, - "commands/__tests__/runs-find.test.ts": 22, - "lib/__tests__/module-registry.test.ts": 22, - "lib/daemon/__tests__/discussions-semantics.test.ts": 21, - "lib/daemon/__tests__/herd-store.test.ts": 21, - "lib/runs/__tests__/identity.test.ts": 21, - "rt-tray/vm/run/helpers/__tests__/launchctl-print.test.ts": 21, - "lib/__tests__/home-guard.test.ts": 20, - "lib/__tests__/spawn-env.test.ts": 20, - "commands/__tests__/deps.test.ts": 19, - "commands/__tests__/run-abort-message.test.ts": 19, - "commands/__tests__/uninstall.test.ts": 19, - "lib/__tests__/notifier-push.test.ts": 19, - "lib/team/__tests__/join.test.ts": 19, - "lib/worktree/__tests__/pool-root.test.ts": 19, - "commands/__tests__/settings-source-path.test.ts": 18, - "lib/__tests__/notifier-fired-hygiene.test.ts": 18, - "lib/__tests__/plugin-api.test.ts": 18, - "lib/mission/__tests__/stash.test.ts": 18, - "packages/rt-client/test/gate-wrappers.test.ts": 18, - "lib/daemon/__tests__/bg-claim-roundtrip.test.ts": 17, - "lib/daemon/__tests__/bg-handlers.test.ts": 17, - "lib/daemon/__tests__/gates-e2e.test.ts": 17, - "lib/daemon/__tests__/bg-claims-store.test.ts": 16, - "commands/__tests__/team.test.ts": 15, - "lib/daemon/__tests__/discussions-comment-inline.test.ts": 15, - "lib/skills/__tests__/link.test.ts": 15, - "packages/rt-client/test/client.test.ts": 15, - "commands/__tests__/setup-apply.test.ts": 14, - "commands/__tests__/state-backup-init.test.ts": 14, - "lib/daemon/__tests__/discussions-comment.test.ts": 14, - "lib/home/__tests__/snapshot-owners.test.ts": 14, - "commands/__tests__/setup-connect.test.ts": 13, - "lib/__tests__/backup-tools.test.ts": 13, - "lib/daemon/__tests__/events-bus-subscribe.test.ts": 13, - "lib/daemon/__tests__/mr-writeback.test.ts": 13, - "lib/release/__tests__/update-machine.test.ts": 13, - "packages/rt-client/test/events.test.ts": 13, - "commands/__tests__/setup-plan.test.ts": 12, - "lib/__tests__/bundle-layout.test.ts": 12, - "lib/__tests__/sync-config.test.ts": 12, - "lib/home/__tests__/init-exec.test.ts": 12, - "commands/__tests__/cd-identity-match.test.ts": 11, - "lib/__tests__/notifier.test.ts": 11, - "lib/__tests__/variations.test.ts": 11, - "lib/daemon/__tests__/discussions-handlers.test.ts": 11, - "lib/daemon/__tests__/doppler-sync.test.ts": 11, - "lib/runs/__tests__/reconcile.test.ts": 11, - "lib/setup/__tests__/validators-access.test.ts": 11, - "packages/rt-client/src/settings/__tests__/stores.test.ts": 11, - "rt-tray/vm/run/helpers/__tests__/catalog.test.ts": 11, - "commands/__tests__/bg.test.ts": 10, - "commands/__tests__/settings-runaway.test.ts": 10, - "lib/__tests__/run-presets.test.ts": 10, - "lib/daemon/__tests__/router-no-db-key.test.ts": 10, - "lib/daemon/__tests__/settings-handlers.test.ts": 10, - "lib/__tests__/chat-session.test.ts": 9, - "lib/__tests__/daemon-logger.test.ts": 9, - "lib/__tests__/enrich-abort.test.ts": 9, - "lib/__tests__/herd-cli.test.ts": 9, - "lib/runs/__tests__/store-memo.test.ts": 9, - "lib/sdm/__tests__/verify.test.ts": 9, - "lib/setup/__tests__/validators-accounts.test.ts": 9, - "lib/skills/__tests__/packs.test.ts": 9, - "lib/skills/__tests__/writing-style-sources.test.ts": 9, - "lib/team/__tests__/invite.test.ts": 9, - "lib/worktree/__tests__/clonefile.test.ts": 9, - "commands/__tests__/nav.test.ts": 8, - "commands/__tests__/worktree-hook.test.ts": 8, - "lib/daemon/__tests__/api-server-cors-ws.test.ts": 8, - "lib/daemon/__tests__/secrets-handler.test.ts": 8, - "lib/daemon/__tests__/socket-server.test.ts": 8, - "lib/mcp/__tests__/tools.test.ts": 8, - "lib/mission/__tests__/history.test.ts": 8, - "lib/setup/__tests__/skills-link-bundled.test.ts": 8, - "lib/setup/__tests__/validators-repo-root.test.ts": 8, - "lib/skills/__tests__/compile.test.ts": 8, - "scripts/lib/__tests__/vm-served-catalog.test.ts": 8, - "commands/__tests__/release-verify.test.ts": 7, + "lib/__tests__/no-eager-tui.test.ts": 50, + "lib/release/__tests__/update-machine.test.ts": 50, + "lib/daemon/__tests__/gate-escalation.test.ts": 48, + "lib/daemon/__tests__/status-identity.test.ts": 47, + "lib/sdm/__tests__/state.test.ts": 47, + "lib/skills/__tests__/sources.test.ts": 47, + "lib/daemon/reconciler/__tests__/tree-holders.test.ts": 45, + "lib/deps/__tests__/links.test.ts": 45, + "lib/mission/__tests__/driver.test.ts": 44, + "lib/sdm/__tests__/core-login-capture.test.ts": 43, + "commands/__tests__/daemon-restart.test.ts": 42, + "commands/__tests__/runs-find.test.ts": 42, + "lib/skills/__tests__/provenance.test.ts": 42, + "packages/rt-client/test/test-isolation.test.ts": 40, + "commands/__tests__/deps.test.ts": 39, + "lib/skills/__tests__/sync.test.ts": 39, + "lib/state/__tests__/state-db-guarded.test.ts": 39, + "commands/__tests__/code-launch.test.ts": 38, + "lib/__tests__/notifier-fired-hygiene.test.ts": 36, + "lib/mission/__tests__/model.test.ts": 36, + "lib/worktree/__tests__/patch.test.ts": 36, + "commands/__tests__/skills-writing-style.test.ts": 35, + "packages/rt-client/src/settings/__tests__/resolve.test.ts": 35, + "commands/__tests__/team-join.test.ts": 34, + "lib/daemon/__tests__/events-bus-bounds.test.ts": 34, + "lib/daemon/__tests__/events-bus-subscribe.test.ts": 34, + "commands/__tests__/run-abort-message.test.ts": 33, + "lib/__tests__/enrich-cache-identity.test.ts": 33, + "lib/daemon/__tests__/runs-handlers.test.ts": 32, + "lib/runs/__tests__/start.test.ts": 32, + "lib/sdm/__tests__/scan.test.ts": 32, + "lib/skills/__tests__/surface.test.ts": 32, + "packages/rt-client/test/gate-wrappers.test.ts": 32, + "lib/daemon/__tests__/team-snapshots.test.ts": 31, + "lib/home/__tests__/snapshot-owners.test.ts": 31, + "lib/ui/__tests__/pick.test.ts": 31, + "lib/__tests__/no-spawn-without-env.test.ts": 30, + "commands/__tests__/bg.test.ts": 29, + "lib/endpoint/__tests__/allocator.test.ts": 29, + "commands/__tests__/settings-source-path.test.ts": 28, + "lib/daemon/__tests__/socket-server.test.ts": 28, + "lib/mission/__tests__/stash.test.ts": 28, + "packages/rt-client/test/client.test.ts": 28, + "commands/__tests__/setup-apply.test.ts": 27, + "lib/daemon/__tests__/mr-upload.test.ts": 27, + "lib/team/__tests__/join.test.ts": 27, + "lib/daemon/__tests__/herd-store.test.ts": 26, + "lib/runs/__tests__/identity.test.ts": 26, + "rt-tray/vm/run/helpers/__tests__/launchctl-print.test.ts": 26, + "commands/__tests__/cd-identity-match.test.ts": 25, + "commands/__tests__/settings-check.test.ts": 25, + "lib/__tests__/daemon-logger.test.ts": 25, + "lib/daemon/__tests__/bg-handlers.test.ts": 25, + "packages/rt-client/test/transport.test.ts": 25, + "lib/daemon/__tests__/discussions-semantics.test.ts": 24, + "lib/daemon/__tests__/settings-handlers.test.ts": 24, + "packages/rt-client/src/settings/__tests__/check.test.ts": 24, + "scripts/lib/__tests__/vm-served-catalog.test.ts": 24, + "lib/__tests__/dev-mode-wrapper.test.ts": 23, + "lib/daemon/__tests__/gates-e2e.test.ts": 22, + "lib/release/__tests__/preflight.test.ts": 22, + "lib/setup/__tests__/validators-accounts.test.ts": 22, + "packages/git-core/src/__tests__/smoke.test.ts": 22, + "lib/runs/__tests__/store-memo.test.ts": 21, + "lib/setup/__tests__/skills-link-bundled.test.ts": 21, + "commands/__tests__/nav.test.ts": 20, + "commands/__tests__/setup-plan.test.ts": 20, + "lib/__tests__/plugin-api.test.ts": 20, + "lib/__tests__/run-presets.test.ts": 20, + "lib/daemon/__tests__/bg-claim-roundtrip.test.ts": 20, + "lib/runs/__tests__/reconcile.test.ts": 20, + "rt-tray/vm/run/helpers/__tests__/catalog.test.ts": 20, + "commands/__tests__/settings-runaway.test.ts": 19, + "commands/__tests__/state-backup-init.test.ts": 19, + "lib/__tests__/backup-tools.test.ts": 19, + "lib/__tests__/herdr-launch.test.ts": 19, + "lib/daemon/__tests__/api-server-cors-ws.test.ts": 19, + "lib/daemon/__tests__/upload-guard.test.ts": 19, + "lib/__tests__/notifier.test.ts": 18, + "lib/__tests__/rt-paths.test.ts": 18, + "lib/__tests__/variations.test.ts": 18, + "lib/daemon/__tests__/discussions-comment-inline.test.ts": 18, + "packages/rt-client/test/events.test.ts": 18, + "lib/__tests__/chat-session.test.ts": 17, + "lib/daemon/__tests__/mr-writeback.test.ts": 17, + "lib/daemon/__tests__/reconciler-expectations.test.ts": 17, + "lib/home/__tests__/init-exec.test.ts": 17, + "lib/__tests__/doppler-config.test.ts": 16, + "lib/__tests__/release-workflow.test.ts": 16, + "lib/daemon/__tests__/discussions-comment.test.ts": 16, + "lib/release/__tests__/dev-app-stage.test.ts": 16, + "lib/release/__tests__/verify.test.ts": 16, + "lib/setup/__tests__/validators-access.test.ts": 16, + "lib/setup/__tests__/validators-repo-root.test.ts": 16, + "lib/skills/__tests__/init.test.ts": 16, + "commands/__tests__/team-members.test.ts": 15, + "lib/__tests__/home-guard.test.ts": 15, + "lib/daemon/__tests__/bg-claims-store.test.ts": 15, + "lib/daemon/__tests__/doppler-sync.test.ts": 15, + "lib/daemon/__tests__/router-no-db-key.test.ts": 15, + "lib/mission/__tests__/history.test.ts": 15, + "lib/ui/__tests__/protocol.test.ts": 15, + "lib/__tests__/bundle-layout.test.ts": 14, + "lib/setup/__tests__/apply.test.ts": 14, + "lib/team/__tests__/members.test.ts": 14, + "commands/__tests__/worktree-hook.test.ts": 13, + "lib/__tests__/claude-bin.test.ts": 13, + "lib/setup/__tests__/tools-install.test.ts": 13, + "commands/__tests__/setup-connect.test.ts": 12, + "lib/credential-health/__tests__/sweep.test.ts": 12, + "lib/daemon/__tests__/discussions-handlers.test.ts": 12, + "lib/daemon/__tests__/rt-client-commands.test.ts": 12, + "lib/runner/__tests__/runner.test.ts": 12, + "lib/setup/__tests__/finish-gate.test.ts": 12, + "lib/setup/__tests__/linear-mcp.test.ts": 12, + "lib/skills/__tests__/packs.test.ts": 12, + "packages/git-core/src/__tests__/client-shape.test.ts": 12, + "commands/__tests__/home-remote-set.test.ts": 11, + "lib/__tests__/claude-settings.test.ts": 11, + "lib/__tests__/dev-mode.test.ts": 11, + "lib/__tests__/enrich-abort.test.ts": 11, + "lib/__tests__/herd-cli.test.ts": 11, + "lib/daemon/__tests__/api-auth.test.ts": 11, + "lib/daemon/__tests__/handlers-team-snapshot.test.ts": 11, + "lib/daemon/__tests__/supervision-state.test.ts": 11, + "lib/mcp/__tests__/rt-verb.test.ts": 11, + "lib/mission/__tests__/menu-action.test.ts": 11, + "lib/skills/__tests__/link.test.ts": 11, + "commands/__tests__/setup-repo-root.test.ts": 10, + "lib/__tests__/sync-config.test.ts": 10, + "lib/daemon/__tests__/secrets-handler.test.ts": 10, + "lib/release/__tests__/release-app.test.ts": 10, + "scripts/__tests__/docs-render.test.ts": 10, + "commands/__tests__/services.test.ts": 9, + "lib/__tests__/editors.test.ts": 9, + "lib/daemon/__tests__/events-handlers.test.ts": 9, + "lib/secrets/__tests__/team-store.test.ts": 9, + "lib/setup/__tests__/pack-cache-converge.test.ts": 9, + "lib/team/__tests__/invite-crypto.test.ts": 9, + "packages/rt-client/src/settings/__tests__/stores.test.ts": 9, + "commands/__tests__/release-preflight.test.ts": 8, + "commands/__tests__/release-update-machine.test.ts": 8, + "commands/__tests__/skills-init.test.ts": 8, + "lib/daemon/__tests__/api-server-bind.test.ts": 8, + "lib/daemon/__tests__/api-server-path-param.test.ts": 8, + "lib/daemon/__tests__/gate-owner-notify-trace.test.ts": 8, + "lib/daemon/__tests__/herd-watchdog.test.ts": 8, + "lib/mission/__tests__/history-model.test.ts": 8, + "lib/runner/__tests__/engine.test.ts": 8, + "lib/setup/__tests__/repo-root.test.ts": 8, + "lib/setup/__tests__/slack-app.test.ts": 8, + "lib/skills/__tests__/writing-style-sources.test.ts": 8, + "lib/team/__tests__/forge.test.ts": 8, + "lib/team/__tests__/invite.test.ts": 8, + "packages/rt-client/src/settings/__tests__/validate-write.test.ts": 8, + "commands/__tests__/gate-fork-check-cli.test.ts": 7, + "commands/__tests__/intercept.test.ts": 7, + "commands/__tests__/settings-keys-unset.test.ts": 7, + "lib/__tests__/bundled-tool.test.ts": 7, + "lib/__tests__/claude-registry.test.ts": 7, + "lib/__tests__/git-async-timeouts.test.ts": 7, "lib/__tests__/numeric-user-id.test.ts": 7, - "lib/daemon/__tests__/api-server-bind.test.ts": 7, - "lib/daemon/__tests__/events-handlers.test.ts": 7, - "lib/daemon/__tests__/gate-escalation.test.ts": 7, - "lib/mission/__tests__/menu-action.test.ts": 7, - "lib/mission/__tests__/model.test.ts": 7, - "lib/release/__tests__/release-app.test.ts": 7, - "lib/team/__tests__/forge.test.ts": 7, - "commands/__tests__/gate-ask-cli.test.ts": 6, - "lib/__tests__/dev-mode.test.ts": 6, - "lib/daemon/__tests__/gate-owner-notify-trace.test.ts": 6, - "lib/release/__tests__/dev-app-stage.test.ts": 6, - "lib/setup/__tests__/finish-gate.test.ts": 6, - "lib/setup/__tests__/need.test.ts": 6, - "lib/setup/__tests__/tools-install.test.ts": 6, - "lib/team/__tests__/members.test.ts": 6, - "commands/__tests__/team-members.test.ts": 5, - "lib/__tests__/claude-registry.test.ts": 5, - "lib/__tests__/doppler-config.test.ts": 5, - "lib/__tests__/editors.test.ts": 5, - "lib/__tests__/release-workflow.test.ts": 5, + "lib/__tests__/stack-guard.test.ts": 7, + "lib/home/__tests__/init-plan.test.ts": 7, + "lib/setup/__tests__/need.test.ts": 7, + "lib/setup/__tests__/validators-mac.test.ts": 7, + "lib/worktree/__tests__/pool-root.test.ts": 7, + "packages/rt-client/src/settings/__tests__/schema-lock.test.ts": 7, + "packages/rt-client/test/pane-send.test.ts": 7, + "commands/__tests__/endpoint.test.ts": 6, + "commands/__tests__/secrets.test.ts": 6, + "commands/__tests__/team-status.test.ts": 6, + "lib/__tests__/cli-logger-redact.test.ts": 6, + "lib/__tests__/cli-logger.test.ts": 6, + "lib/__tests__/enrich-ondeck.test.ts": 6, + "lib/runner/__tests__/tmux-engine.test.ts": 6, + "lib/setup/__tests__/home-git.test.ts": 6, + "lib/skills/__tests__/compile.test.ts": 6, + "packages/rt-client/src/settings/__tests__/schema-examples.test.ts": 6, + "packages/settings-kit/src/__tests__/server.test.ts": 6, + "commands/__tests__/agent.test.ts": 5, + "commands/__tests__/gate-ask-cli.test.ts": 5, + "commands/__tests__/settings-keys-render.test.ts": 5, + "commands/__tests__/setup-waive.test.ts": 5, + "commands/__tests__/state-backup-status.test.ts": 5, + "lib/__tests__/agent-safe.test.ts": 5, + "lib/__tests__/daemon-logger-resilience.test.ts": 5, + "lib/__tests__/linear-batch.test.ts": 5, + "lib/__tests__/linear.test.ts": 5, + "lib/__tests__/log-janitor.test.ts": 5, + "lib/__tests__/notification-shape-parity.test.ts": 5, + "lib/__tests__/notifier-event.test.ts": 5, "lib/__tests__/repo-cache.test.ts": 5, + "lib/__tests__/repo-locate-dispatch.test.ts": 5, "lib/__tests__/shell-integration-remove.test.ts": 5, - "lib/credential-health/__tests__/sweep.test.ts": 5, - "lib/daemon/__tests__/herd-watchdog.test.ts": 5, - "lib/daemon/__tests__/supervision-state.test.ts": 5, + "lib/__tests__/worktree-cli-args.test.ts": 5, + "lib/daemon/__tests__/bounce.test.ts": 5, + "lib/daemon/__tests__/ignored-mrs.test.ts": 5, + "lib/daemon/__tests__/invite-replies.test.ts": 5, "lib/daemon/__tests__/system-process-scanner.test.ts": 5, - "lib/daemon/__tests__/user-path.test.ts": 5, - "lib/setup/__tests__/apply.test.ts": 5, - "lib/setup/__tests__/linear-mcp.test.ts": 5, + "lib/daemon/__tests__/trust-dialog.test.ts": 5, + "lib/home/__tests__/materialize.test.ts": 5, "lib/skills/__tests__/placeholders.test.ts": 5, - "lib/team/__tests__/invite-crypto.test.ts": 5, - "lib/ui/__tests__/protocol.test.ts": 5, - "lib/__tests__/claude-settings.test.ts": 4, - "lib/__tests__/stack-guard.test.ts": 4, - "lib/daemon/__tests__/rt-client-commands.test.ts": 4, + "lib/worktree/__tests__/clonefile.test.ts": 5, + "packages/rt-client/test/repos.test.ts": 5, + "scripts/bundle-ci/__tests__/validate-manifest.test.ts": 5, + "commands/__tests__/accounts.test.ts": 4, + "commands/__tests__/gate.test.ts": 4, + "commands/__tests__/release-app.test.ts": 4, + "commands/__tests__/skills-sync.test.ts": 4, + "commands/__tests__/verify.test.ts": 4, + "lib/__tests__/command-tree-def.test.ts": 4, + "lib/__tests__/json-store.test.ts": 4, + "lib/__tests__/port-scanner.test.ts": 4, + "lib/daemon/__tests__/heartbeat-file.test.ts": 4, + "lib/daemon/__tests__/park.test.ts": 4, + "lib/daemon/__tests__/user-path.test.ts": 4, "lib/daemon/__tests__/worktree-process-kill.test.ts": 4, - "lib/release/__tests__/preflight.test.ts": 4, - "lib/runner/__tests__/runner.test.ts": 4, - "lib/setup/__tests__/home-git.test.ts": 4, - "lib/setup/__tests__/pack-cache-converge.test.ts": 4, - "lib/setup/__tests__/repo-root.test.ts": 4, - "lib/skills/__tests__/init.test.ts": 4, - "packages/rt-client/test/repos.test.ts": 4, - "commands/__tests__/agent.test.ts": 3, - "commands/__tests__/intercept.test.ts": 3, - "commands/__tests__/release-app.test.ts": 3, - "commands/__tests__/release-update-machine.test.ts": 3, - "commands/__tests__/setup-repo-root.test.ts": 3, - "commands/__tests__/setup-waive.test.ts": 3, - "commands/__tests__/skills-init.test.ts": 3, - "lib/__tests__/agent-safe.test.ts": 3, - "lib/__tests__/cli-logger-redact.test.ts": 3, - "lib/__tests__/json-store.test.ts": 3, - "lib/__tests__/linear.test.ts": 3, - "lib/__tests__/log-janitor.test.ts": 3, - "lib/__tests__/notification-shape-parity.test.ts": 3, - "lib/__tests__/notifier-event.test.ts": 3, - "lib/__tests__/port-scanner.test.ts": 3, + "lib/setup/__tests__/integrations.test.ts": 4, + "lib/setup/__tests__/pack-cache-settle.test.ts": 4, + "lib/setup/__tests__/validators-writing-style.test.ts": 4, + "lib/team/__tests__/relay-client.test.ts": 4, + "packages/rt-client/src/settings/__tests__/registry.test.ts": 4, + "packages/rt-client/test/agent-wrappers.test.ts": 4, + "packages/rt-client/test/no-unlisted-command-call-sites.test.ts": 4, + "packages/rt-client/test/pane-focus.test.ts": 4, + "commands/__tests__/daemon-logdy-config.test.ts": 3, + "commands/__tests__/skills-link.test.ts": 3, + "commands/__tests__/update.test.ts": 3, + "commands/__tests__/verify-mapping.test.ts": 3, + "commands/__tests__/worktree-hydrate-clone.test.ts": 3, + "lib/__tests__/arg-collector.test.ts": 3, + "lib/__tests__/command-tree-help.test.ts": 3, + "lib/__tests__/daemon-client-tray.test.ts": 3, + "lib/__tests__/deck-hand-agent.test.ts": 3, + "lib/__tests__/enrich-branch-segments.test.ts": 3, + "lib/__tests__/enrich-remote.test.ts": 3, + "lib/__tests__/home-env.test.ts": 3, + "lib/__tests__/nav-picker.test.ts": 3, + "lib/__tests__/repo-for-cwd.test.ts": 3, + "lib/__tests__/rt-self.test.ts": 3, + "lib/__tests__/settings-paths-parity.test.ts": 3, "lib/__tests__/sync-log.test.ts": 3, - "lib/__tests__/worktree-cli-args.test.ts": 3, - "lib/daemon/__tests__/agent-status-poller.test.ts": 3, - "lib/daemon/__tests__/api-auth.test.ts": 3, - "lib/daemon/__tests__/invite-replies.test.ts": 3, + "lib/daemon/__tests__/caller-tag.test.ts": 3, + "lib/daemon/__tests__/mr-create.test.ts": 3, + "lib/daemon/__tests__/mr-update.test.ts": 3, + "lib/daemon/__tests__/request-body-size.test.ts": 3, + "lib/daemon/__tests__/sdm-handlers.test.ts": 3, "lib/daemon/__tests__/shutdown.test.ts": 3, - "lib/release/__tests__/verify.test.ts": 3, - "lib/runner/__tests__/engine.test.ts": 3, - "lib/secrets/__tests__/team-store.test.ts": 3, - "lib/setup/__tests__/integrations.test.ts": 3, - "lib/setup/__tests__/slack-app.test.ts": 3, + "lib/runner/__tests__/workspace-registry.test.ts": 3, + "lib/sdm/__tests__/enrichment-cmd.test.ts": 3, + "lib/sdm/__tests__/enrichment.test.ts": 3, + "lib/sdm/__tests__/flow.test.ts": 3, "lib/skills/__tests__/writing-style.test.ts": 3, - "lib/team/__tests__/publish.test.ts": 3, - "lib/team/__tests__/relay-client.test.ts": 3, - "packages/git-core/src/__tests__/patch-formatter.test.ts": 3, "packages/rt-client/src/settings/__tests__/paths.test.ts": 3, - "packages/rt-client/test/agent-wrappers.test.ts": 3, - "packages/rt-client/test/pane-focus.test.ts": 3, - "packages/rt-client/test/pane-send.test.ts": 3, + "packages/rt-client/test/gate-presentation.test.ts": 3, + "packages/rt-client/test/health.test.ts": 3, "packages/settings-kit/src/__tests__/effective.test.ts": 3, - "packages/settings-kit/src/__tests__/server.test.ts": 3, - "commands/__tests__/daemon-logdy-config.test.ts": 2, - "commands/__tests__/endpoint.test.ts": 2, - "commands/__tests__/home-remote-set.test.ts": 2, - "commands/__tests__/secrets.test.ts": 2, - "commands/__tests__/services.test.ts": 2, - "commands/__tests__/settings-keys-unset.test.ts": 2, - "commands/__tests__/skills-link.test.ts": 2, - "commands/__tests__/skills-sync.test.ts": 2, - "commands/__tests__/state-backup-status.test.ts": 2, - "commands/__tests__/team-status.test.ts": 2, - "commands/__tests__/update.test.ts": 2, - "commands/__tests__/verify.test.ts": 2, + "packages/settings-kit/src/__tests__/shapes.test.ts": 3, + "commands/__tests__/daemon-status-render.test.ts": 2, + "commands/__tests__/log-level.test.ts": 2, "commands/__tests__/version.test.ts": 2, - "lib/__tests__/command-tree-help.test.ts": 2, + "lib/__tests__/agent-argv-codex.test.ts": 2, + "lib/__tests__/agent-argv.test.ts": 2, + "lib/__tests__/chat-names.test.ts": 2, + "lib/__tests__/command-tree-resolve.test.ts": 2, + "lib/__tests__/cswap.test.ts": 2, "lib/__tests__/deps-lock-file.test.ts": 2, - "lib/__tests__/enrich-ondeck.test.ts": 2, + "lib/__tests__/deps-lock-live.test.ts": 2, + "lib/__tests__/herd-brief.test.ts": 2, + "lib/__tests__/no-wire-in-ui.test.ts": 2, "lib/__tests__/pick-wrappers.test.ts": 2, - "lib/__tests__/repo-for-cwd.test.ts": 2, - "lib/__tests__/repo-locate-dispatch.test.ts": 2, - "lib/__tests__/settings-paths-parity.test.ts": 2, - "lib/daemon/__tests__/caller-tag.test.ts": 2, - "lib/daemon/__tests__/gate-subject.test.ts": 2, - "lib/daemon/__tests__/ignored-mrs.test.ts": 2, - "lib/daemon/__tests__/park.test.ts": 2, - "lib/daemon/__tests__/reconciler-view.test.ts": 2, - "lib/daemon/__tests__/request-body-size.test.ts": 2, - "lib/daemon/__tests__/sdm-handlers.test.ts": 2, - "lib/mcp/__tests__/rt-verb.test.ts": 2, - "lib/mission/__tests__/history-model.test.ts": 2, - "lib/runner/__tests__/tmux-engine.test.ts": 2, + "lib/__tests__/prompt-secret.test.ts": 2, + "lib/__tests__/relative-time.test.ts": 2, + "lib/__tests__/runaway-process-notifications.test.ts": 2, + "lib/__tests__/worktree-each.test.ts": 2, + "lib/daemon/__tests__/agent-status-poller.test.ts": 2, + "lib/daemon/__tests__/api-server-park-retry.test.ts": 2, + "lib/daemon/__tests__/home-snapshot-plan.test.ts": 2, + "lib/daemon/__tests__/loop-monitor.test.ts": 2, + "lib/daemon/__tests__/system-processes-handlers.test.ts": 2, + "lib/home/__tests__/machine-id.test.ts": 2, + "lib/runner/__tests__/state.test.ts": 2, + "lib/runs/__tests__/attention.test.ts": 2, "lib/runs/__tests__/liveness.test.ts": 2, - "lib/sdm/__tests__/enrichment.test.ts": 2, + "lib/sdm/__tests__/browser-login-live.test.ts": 2, + "lib/sdm/__tests__/core-parsers.test.ts": 2, + "lib/sdm/__tests__/picker.test.ts": 2, + "lib/secrets/__tests__/team-store.real-sops.test.ts": 2, + "lib/setup/__tests__/contract.test.ts": 2, "lib/setup/__tests__/cron-install.test.ts": 2, - "lib/setup/__tests__/validators-mac.test.ts": 2, + "lib/setup/__tests__/pack-cache.test.ts": 2, + "lib/setup/__tests__/permissions.test.ts": 2, + "lib/setup/__tests__/requirements.test.ts": 2, + "lib/setup/__tests__/staging.test.ts": 2, + "lib/setup/__tests__/team-settings.test.ts": 2, "lib/team/__tests__/invite-records.test.ts": 2, + "lib/team/__tests__/publish.test.ts": 2, + "lib/worktree/__tests__/locks.test.ts": 2, + "lib/worktree/__tests__/names.test.ts": 2, + "lib/worktree/triage/__tests__/verdict.test.ts": 2, + "packages/rt-client/src/settings/__tests__/schema.test.ts": 2, "packages/rt-client/test/bg-ensure.test.ts": 2, - "packages/rt-client/test/command-call-sites.test.ts": 2, - "packages/rt-client/test/gate-presentation.test.ts": 2, - "packages/rt-client/test/health.test.ts": 2, - "scripts/__tests__/deps-lock.test.ts": 2, + "packages/rt-client/test/gate-entry.test.ts": 2, + "packages/rt-client/test/gate-options.test.ts": 2, "scripts/__tests__/docs-clean.test.ts": 2, - "scripts/bundle-ci/__tests__/plan-matrix.test.ts": 2, + "scripts/__tests__/release-appcast.test.ts": 2, + "scripts/__tests__/release-notes.test.ts": 2, "scripts/bundle-ci/__tests__/update-lock.test.ts": 2, - "scripts/bundle-ci/__tests__/validate-manifest.test.ts": 2, + "scripts/lib/__tests__/deps-lock-serve-parity.test.ts": 2, "commands/__tests__/code-label.test.ts": 1, - "commands/__tests__/daemon-status-render.test.ts": 1, - "commands/__tests__/gate-fork-check-cli.test.ts": 1, - "commands/__tests__/gate.test.ts": 1, - "commands/__tests__/log-level.test.ts": 1, - "commands/__tests__/release-preflight.test.ts": 1, - "commands/__tests__/settings-keys-render.test.ts": 1, - "commands/__tests__/verify-mapping.test.ts": 1, - "commands/__tests__/worktree-hydrate-clone.test.ts": 1, - "lib/__tests__/agent-argv-codex.test.ts": 1, - "lib/__tests__/agent-argv.test.ts": 1, - "lib/__tests__/arg-collector.test.ts": 1, + "commands/__tests__/daemon-logs-render.test.ts": 1, + "commands/__tests__/run-report-save.test.ts": 1, + "commands/__tests__/status-lines.test.ts": 1, + "lib/__tests__/agent-hooks.test.ts": 1, "lib/__tests__/bundle-ships-deps-lock.test.ts": 1, - "lib/__tests__/chat-names.test.ts": 1, - "lib/__tests__/cli-logger.test.ts": 1, - "lib/__tests__/command-tree-def.test.ts": 1, - "lib/__tests__/command-tree-resolve.test.ts": 1, - "lib/__tests__/cswap.test.ts": 1, - "lib/__tests__/daemon-client-tray.test.ts": 1, + "lib/__tests__/chat-viewer-url.test.ts": 1, "lib/__tests__/daemon-config.test.ts": 1, - "lib/__tests__/daemon-logger-resilience.test.ts": 1, + "lib/__tests__/daemon-logger-level.test.ts": 1, "lib/__tests__/daemon-status.test.ts": 1, - "lib/__tests__/deck-hand-agent.test.ts": 1, "lib/__tests__/doppler-template.test.ts": 1, - "lib/__tests__/enrich-branch-segments.test.ts": 1, - "lib/__tests__/enrich-refresh-detached.test.ts": 1, - "lib/__tests__/enrich-remote.test.ts": 1, + "lib/__tests__/env-scrub-probe.test.ts": 1, + "lib/__tests__/events-cli.test.ts": 1, "lib/__tests__/file-actions.test.ts": 1, "lib/__tests__/fs-canon.test.ts": 1, - "lib/__tests__/git-async-timeouts.test.ts": 1, "lib/__tests__/github-token.test.ts": 1, - "lib/__tests__/herd-brief.test.ts": 1, - "lib/__tests__/home-env.test.ts": 1, - "lib/__tests__/linear-batch.test.ts": 1, - "lib/__tests__/nav-picker.test.ts": 1, - "lib/__tests__/relative-time.test.ts": 1, + "lib/__tests__/mr-map.test.ts": 1, + "lib/__tests__/picker-conformance.test.ts": 1, + "lib/__tests__/repo-index-find.test.ts": 1, "lib/__tests__/repos-status.test.ts": 1, - "lib/__tests__/runaway-process-notifications.test.ts": 1, - "lib/__tests__/worktree-each.test.ts": 1, + "lib/__tests__/tray-query-attribution.test.ts": 1, "lib/__tests__/worktree-groups.test.ts": 1, + "lib/credential-health/__tests__/db.test.ts": 1, "lib/daemon/__tests__/api-server-broadcast.test.ts": 1, - "lib/daemon/__tests__/api-server-path-param.test.ts": 1, "lib/daemon/__tests__/api-server-query-coerce.test.ts": 1, - "lib/daemon/__tests__/bounce.test.ts": 1, + "lib/daemon/__tests__/attend.test.ts": 1, + "lib/daemon/__tests__/branch-enrich-heal.test.ts": 1, "lib/daemon/__tests__/cache-read-max-age.test.ts": 1, + "lib/daemon/__tests__/cache-refresh-token-notice.test.ts": 1, "lib/daemon/__tests__/cd-cache-refresh.test.ts": 1, + "lib/daemon/__tests__/command-attribution.test.ts": 1, "lib/daemon/__tests__/demand-tracker.test.ts": 1, + "lib/daemon/__tests__/discussions-diffs.test.ts": 1, "lib/daemon/__tests__/enrichment-hot-lane.test.ts": 1, "lib/daemon/__tests__/events-seam.test.ts": 1, "lib/daemon/__tests__/freshness-factory.test.ts": 1, "lib/daemon/__tests__/freshness-pending-cap.test.ts": 1, "lib/daemon/__tests__/freshness-poll-userid.test.ts": 1, - "lib/daemon/__tests__/freshness-provider-rotation.test.ts": 1, - "lib/daemon/__tests__/freshness-remote-url.test.ts": 1, + "lib/daemon/__tests__/gate-escape.test.ts": 1, + "lib/daemon/__tests__/gate-subject.test.ts": 1, + "lib/daemon/__tests__/git-ref-validation.test.ts": 1, "lib/daemon/__tests__/git-status-handlers.test.ts": 1, "lib/daemon/__tests__/handle-command-envelope.test.ts": 1, - "lib/daemon/__tests__/handlers-team-snapshot.test.ts": 1, + "lib/daemon/__tests__/health-sampler.test.ts": 1, "lib/daemon/__tests__/health.test.ts": 1, - "lib/daemon/__tests__/heartbeat-file.test.ts": 1, "lib/daemon/__tests__/home-handlers.test.ts": 1, - "lib/daemon/__tests__/home-snapshot-plan.test.ts": 1, + "lib/daemon/__tests__/hooks-handlers.test.ts": 1, "lib/daemon/__tests__/identity-decoder.test.ts": 1, "lib/daemon/__tests__/lifecycle.test.ts": 1, - "lib/daemon/__tests__/mr-create.test.ts": 1, - "lib/daemon/__tests__/repo-index-message.test.ts": 1, + "lib/daemon/__tests__/pane-ref-socket.test.ts": 1, + "lib/daemon/__tests__/pane-resolve-live.test.ts": 1, + "lib/daemon/__tests__/project-sync-health.test.ts": 1, + "lib/daemon/__tests__/reconciler-handlers.test.ts": 1, + "lib/daemon/__tests__/reconciler-view.test.ts": 1, + "lib/daemon/__tests__/refresh-status-ref.test.ts": 1, "lib/daemon/__tests__/system-process-scanner-resilience.test.ts": 1, - "lib/daemon/__tests__/system-processes-handlers.test.ts": 1, - "lib/daemon/__tests__/trust-dialog.test.ts": 1, + "lib/daemon/__tests__/triage-summary.test.ts": 1, "lib/daemon/__tests__/unknown-command.test.ts": 1, "lib/daemon/reconciler/__tests__/job-release.test.ts": 1, - "lib/home/__tests__/init-plan.test.ts": 1, - "lib/home/__tests__/materialize.test.ts": 1, + "lib/home/__tests__/boundary.test.ts": 1, "lib/mission/__tests__/imports.test.ts": 1, - "lib/runner/__tests__/workspace-registry.test.ts": 1, - "lib/runs/__tests__/attention.test.ts": 1, + "lib/runner/__tests__/detect-url.test.ts": 1, "lib/sdm/__tests__/agent-json.test.ts": 1, "lib/sdm/__tests__/app.test.ts": 1, - "lib/sdm/__tests__/browse.test.ts": 1, - "lib/sdm/__tests__/browser-login-live.test.ts": 1, - "lib/sdm/__tests__/core-parsers.test.ts": 1, - "lib/sdm/__tests__/enrichment-cmd.test.ts": 1, - "lib/sdm/__tests__/flow.test.ts": 1, - "lib/sdm/__tests__/picker.test.ts": 1, - "lib/setup/__tests__/contract.test.ts": 1, + "lib/sdm/__tests__/browser-login-helpers.test.ts": 1, + "lib/sdm/__tests__/cdp.test.ts": 1, "lib/setup/__tests__/expiry-probes.test.ts": 1, "lib/setup/__tests__/intent.test.ts": 1, - "lib/setup/__tests__/pack-cache-settle.test.ts": 1, - "lib/setup/__tests__/pack-cache.test.ts": 1, - "lib/setup/__tests__/permissions.test.ts": 1, - "lib/setup/__tests__/requirements.test.ts": 1, "lib/setup/__tests__/semver.test.ts": 1, "lib/setup/__tests__/state.test.ts": 1, - "lib/setup/__tests__/team-settings.test.ts": 1, "lib/setup/__tests__/token-create.test.ts": 1, - "lib/setup/__tests__/validators-writing-style.test.ts": 1, "lib/skills/__tests__/layout.test.ts": 1, + "lib/team/__tests__/forge-token.test.ts": 1, "lib/team/__tests__/redact.test.ts": 1, "lib/team/__tests__/repo-access.test.ts": 1, + "lib/team/__tests__/slug.test.ts": 1, + "lib/team/__tests__/team-local.test.ts": 1, + "lib/tui/__tests__/palette.test.ts": 1, + "lib/ui/__tests__/resolve.test.ts": 1, "lib/worktree/__tests__/claude-hook.test.ts": 1, - "lib/worktree/__tests__/names.test.ts": 1, - "lib/worktree/triage/__tests__/fingerprint.test.ts": 1, - "lib/worktree/triage/__tests__/verdict.test.ts": 1, - "packages/git-core/src/__tests__/diff-selection.test.ts": 1, + "lib/worktree/__tests__/registry-merge.test.ts": 1, + "packages/git-core/src/__tests__/log-parse.test.ts": 1, + "packages/git-core/src/__tests__/patch-formatter.test.ts": 1, "packages/git-core/src/__tests__/vendor-diff-parser.test.ts": 1, - "packages/rt-client/src/settings/__tests__/registry.test.ts": 1, - "packages/rt-client/test/gate-entry.test.ts": 1, - "packages/rt-client/test/gate-options.test.ts": 1, + "packages/rt-client/src/__tests__/smart-pane.test.ts": 1, + "packages/rt-client/test/gate-answers.test.ts": 1, + "packages/rt-client/test/no-zod-in-dist.test.ts": 1, + "packages/rt-client/test/pane-ref.test.ts": 1, "packages/settings-kit/src/__tests__/move.test.ts": 1, - "packages/settings-kit/src/__tests__/shapes.test.ts": 1, - "scripts/__tests__/docs-render.test.ts": 1, + "scripts/__tests__/app-identity-wiring.test.ts": 1, + "scripts/__tests__/docs-coverage.test.ts": 1, "scripts/__tests__/docs-walk.test.ts": 1, - "scripts/__tests__/release-appcast.test.ts": 1, - "scripts/lib/__tests__/deps-lock-serve-parity.test.ts": 1, - "commands/__tests__/accounts.test.ts": 0, - "commands/__tests__/daemon-logs-render.test.ts": 0, - "commands/__tests__/run-report-save.test.ts": 0, - "commands/__tests__/status-lines.test.ts": 0, - "lib/__tests__/agent-hooks.test.ts": 0, - "lib/__tests__/bundled-tool.test.ts": 0, - "lib/__tests__/chat-viewer-url.test.ts": 0, - "lib/__tests__/claude-bin.test.ts": 0, + "scripts/bundle-ci/__tests__/plan-matrix.test.ts": 1, "lib/__tests__/command-tree-devonly.test.ts": 0, - "lib/__tests__/daemon-logger-level.test.ts": 0, - "lib/__tests__/deps-lock-live.test.ts": 0, - "lib/__tests__/env-scrub-probe.test.ts": 0, - "lib/__tests__/events-cli.test.ts": 0, + "lib/__tests__/enrich-refresh-detached.test.ts": 0, "lib/__tests__/jsonc.test.ts": 0, - "lib/__tests__/mr-map.test.ts": 0, - "lib/__tests__/no-wire-in-ui.test.ts": 0, - "lib/__tests__/picker-conformance.test.ts": 0, - "lib/__tests__/prompt-secret.test.ts": 0, - "lib/__tests__/repo-index-find.test.ts": 0, - "lib/__tests__/rt-self.test.ts": 0, "lib/__tests__/self-pane.test.ts": 0, - "lib/__tests__/tray-query-attribution.test.ts": 0, - "lib/credential-health/__tests__/db.test.ts": 0, - "lib/daemon/__tests__/api-server-park-retry.test.ts": 0, - "lib/daemon/__tests__/attend.test.ts": 0, - "lib/daemon/__tests__/branch-enrich-heal.test.ts": 0, "lib/daemon/__tests__/cache-read-bare-branch.test.ts": 0, - "lib/daemon/__tests__/cache-refresh-token-notice.test.ts": 0, - "lib/daemon/__tests__/command-attribution.test.ts": 0, - "lib/daemon/__tests__/discussions-diffs.test.ts": 0, "lib/daemon/__tests__/failure.test.ts": 0, + "lib/daemon/__tests__/freshness-provider-rotation.test.ts": 0, "lib/daemon/__tests__/freshness-redact-credentials.test.ts": 0, - "lib/daemon/__tests__/gate-escape.test.ts": 0, - "lib/daemon/__tests__/git-ref-validation.test.ts": 0, - "lib/daemon/__tests__/health-sampler.test.ts": 0, - "lib/daemon/__tests__/hooks-handlers.test.ts": 0, - "lib/daemon/__tests__/loop-monitor.test.ts": 0, - "lib/daemon/__tests__/pane-ref-socket.test.ts": 0, - "lib/daemon/__tests__/pane-resolve-live.test.ts": 0, - "lib/daemon/__tests__/project-sync-health.test.ts": 0, - "lib/daemon/__tests__/reconciler-handlers.test.ts": 0, + "lib/daemon/__tests__/freshness-remote-url.test.ts": 0, "lib/daemon/__tests__/redact-credentials.test.ts": 0, - "lib/daemon/__tests__/refresh-status-ref.test.ts": 0, - "lib/daemon/__tests__/triage-summary.test.ts": 0, - "lib/home/__tests__/boundary.test.ts": 0, - "lib/home/__tests__/machine-id.test.ts": 0, - "lib/runner/__tests__/detect-url.test.ts": 0, - "lib/runner/__tests__/state.test.ts": 0, - "lib/sdm/__tests__/browser-login-helpers.test.ts": 0, - "lib/sdm/__tests__/cdp.test.ts": 0, + "lib/daemon/__tests__/repo-index-message.test.ts": 0, + "lib/sdm/__tests__/browse.test.ts": 0, "lib/setup/__tests__/emit.test.ts": 0, "lib/setup/__tests__/home-failure-detail.test.ts": 0, - "lib/setup/__tests__/staging.test.ts": 0, "lib/skills/__tests__/chain.test.ts": 0, "lib/skills/__tests__/drift.test.ts": 0, - "lib/team/__tests__/forge-token.test.ts": 0, - "lib/team/__tests__/slug.test.ts": 0, - "lib/team/__tests__/team-local.test.ts": 0, - "lib/tui/__tests__/palette.test.ts": 0, - "lib/ui/__tests__/resolve.test.ts": 0, - "lib/worktree/__tests__/locks.test.ts": 0, - "lib/worktree/__tests__/registry-merge.test.ts": 0, + "lib/worktree/triage/__tests__/fingerprint.test.ts": 0, "packages/git-core/src/__tests__/diff-hunks.test.ts": 0, - "packages/git-core/src/__tests__/log-parse.test.ts": 0, - "packages/rt-client/src/__tests__/smart-pane.test.ts": 0, - "packages/rt-client/test/gate-answers.test.ts": 0, + "packages/git-core/src/__tests__/diff-selection.test.ts": 0, "packages/rt-client/test/index-surface.test.ts": 0, - "packages/rt-client/test/pane-ref.test.ts": 0, - "packages/rt-client/test/settings-warn-sink.test.ts": 0, - "scripts/__tests__/app-identity-wiring.test.ts": 0, - "scripts/__tests__/docs-coverage.test.ts": 0, - "scripts/__tests__/release-notes.test.ts": 0 + "packages/rt-client/test/settings-warn-sink.test.ts": 0 } }