{
  "failsOnBase": true,
  "passesOnHead": true,
  "baseSha": "dde53b11f3141e8cf9995d23234d00b04421f655",
  "headSha": "cd42683c6a8a33a932fe7742982cfe0edff3cfbc",
  "verdict": "Proven: the scenario fails on base `dde53b11f3` and passes on head `cd42683c6a`.",
  "base": {
    "sha": "dde53b11f3141e8cf9995d23234d00b04421f655",
    "status": "failed",
    "title": "git-annex removal, cleanup, orphan reporting and retained links",
    "message": "ASSERTION_FAILED: expected {\"manualExists\":true,\"manualRegistered\":true,\"cleanupExists\":true,\"cleanupRegistered\":true,\"cleanupOutcome\":\"kept\",\"plainOrphanReason\":\"No thread uses this worktree\",\"dirtyRefused\":true,\"dirtyLinked\":true,\"dirtyContent\":\"Annex content is readable\",\"lockedRefused\":true,\"lockedLinked\":true,\"lockedContent\":\"Annex content is readable\"} to equal {\"manualExists\":false,\"manualRegistered\":false,\"cleanupExists\":false,\"cleanupRegistered\":false,\"cleanupOutcome\":\"removed\",\"orphanReason\":\"No thread uses this worktree\",\"plainOrphanReason\":\"No thread uses this worktree\",\"dirtyRefused\":true,\"dirtyLinked\":true,\"dirtyContent\":\"Annex content is readable\",\"lockedRefused\":true,\"lockedLinked\":true,\"lockedContent\":\"Annex content is readable\"}",
    "steps": [
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /632f7f16-0e1b-4c0d-b94d-4c69d165df8f/mcp:6247f0f2-865f-40a4-8836-166ac4c5bd2b",
        "status": "passed"
      },
      {
        "step": "browser.evaluate ",
        "status": "passed"
      },
      {
        "step": "locator.secondaryTap getByRole(\"button\", name: \"Cleanup unchanged\").first()",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"menuitem\", name: \"Settle thread\")",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /settings/worktrees",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Advanced\").last()",
        "status": "passed"
      },
      {
        "step": "locator.check getByRole(\"switch\", name: \"Delete unchanged worktrees\")",
        "status": "passed"
      },
      {
        "step": "app.screenshot cleanup-rule",
        "status": "passed"
      },
      {
        "step": "browser.evaluate ",
        "status": "passed"
      },
      {
        "step": "browser.evaluate ",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /632f7f16-0e1b-4c0d-b94d-4c69d165df8f/mcp:d9c34c2a-8b43-4a57-8172-d3b3f0942605",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByRole(\"button\", name: \"Attach files\") \u2192 visible",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Control+p",
        "status": "passed"
      },
      {
        "step": "locator.fill getByPlaceholder(\"Search files\u2026\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"option\", name: \"refusal-restores-annex.txt\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"RUNTIME CHECK: refused removals preserve annex links\").first() \u2192 visible",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Maximize panel\")",
        "status": "passed"
      },
      {
        "step": "app.screenshot refusal-restores-annex",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Escape",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /632f7f16-0e1b-4c0d-b94d-4c69d165df8f/mcp:d0a0535d-aad7-4aa5-8895-e11856d3e27e",
        "status": "passed"
      },
      {
        "step": "locator.secondaryTap getByRole(\"button\", name: \"Manual removal\").first()",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"menuitem\", name: \"Delete\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Confirm\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Confirm\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByRole(\"dialog\") \u2192 hidden",
        "status": "passed"
      },
      {
        "step": "app.screenshot manual-removal",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /632f7f16-0e1b-4c0d-b94d-4c69d165df8f/mcp:d9c34c2a-8b43-4a57-8172-d3b3f0942605",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByRole(\"button\", name: \"Attach files\") \u2192 visible",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Control+p",
        "status": "passed"
      },
      {
        "step": "locator.fill getByPlaceholder(\"Search files\u2026\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"option\", name: \"manual-registration.txt\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"RUNTIME CHECK: manual worktree removal\").first() \u2192 visible",
        "status": "passed"
      },
      {
        "step": "app.screenshot manual-registration",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Escape",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /settings/maintenance",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Delete now\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByRole(\"button\", name: \"Delete now\") \u2192 visible",
        "status": "passed"
      },
      {
        "step": "app.screenshot maintenance-cleanup",
        "status": "passed"
      },
      {
        "step": "browser.evaluate ",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Last run\")",
        "status": "passed"
      },
      {
        "step": "locator.scrollIntoView locator(\"[data-slot=\\\"settings-row\\\"]\").filter({ hasText: \"t3-annex-b-c888d912229bb5ff\" })",
        "status": "passed"
      },
      {
        "step": "app.screenshot cleanup-native-results",
        "status": "passed"
      },
      {
        "step": "locator.scrollIntoView locator(\"[data-slot=\\\"settings-row\\\"]\").filter({ hasText: \"/tmp/factory-pr-34065-a1794710111-evidence-4/public-fixture/worktrees/orphan-plain\" })",
        "status": "passed"
      },
      {
        "step": "app.screenshot orphan-native-results",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /632f7f16-0e1b-4c0d-b94d-4c69d165df8f/mcp:d9c34c2a-8b43-4a57-8172-d3b3f0942605",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByRole(\"button\", name: \"Attach files\") \u2192 visible",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Control+p",
        "status": "passed"
      },
      {
        "step": "locator.fill getByPlaceholder(\"Search files\u2026\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"option\", name: \"cleanup-and-orphans.txt\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"RUNTIME CHECK: storage cleanup and orphan report\").first() \u2192 visible",
        "status": "passed"
      },
      {
        "step": "app.screenshot cleanup-and-orphans",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Escape",
        "status": "passed"
      }
    ],
    "captures": [
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e295c74e7c51b30/before-manual-removal.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d2de9b6f3b42015a/before-manual-registration.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/032a092e8b7779a7/before-refusal-restores-annex.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/88a985b8e472cdfd/before-maintenance-cleanup.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/045d2e4ab6bc0ed8/before-cleanup-native-results.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99d2d904213c2156/before-orphan-native-results.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/24526c15dad44338/before-cleanup-and-orphans.png"
    ],
    "videos": [
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/de04ffe6d3f684e4/before-interaction.webm"
    ]
  },
  "head": {
    "sha": "cd42683c6a8a33a932fe7742982cfe0edff3cfbc",
    "status": "passed",
    "title": "git-annex removal, cleanup, orphan reporting and retained links",
    "steps": [
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /3848c347-5676-4b96-a2dc-2793a5b074e4/mcp:996d07da-56fa-49f5-b2f9-eb38291e084d",
        "status": "passed"
      },
      {
        "step": "browser.evaluate ",
        "status": "passed"
      },
      {
        "step": "locator.secondaryTap getByRole(\"button\", name: \"Cleanup unchanged\").first()",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"menuitem\", name: \"Settle thread\")",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /settings/worktrees",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Advanced\").last()",
        "status": "passed"
      },
      {
        "step": "locator.check getByRole(\"switch\", name: \"Delete unchanged worktrees\")",
        "status": "passed"
      },
      {
        "step": "app.screenshot cleanup-rule",
        "status": "passed"
      },
      {
        "step": "browser.evaluate ",
        "status": "passed"
      },
      {
        "step": "browser.evaluate ",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /3848c347-5676-4b96-a2dc-2793a5b074e4/mcp:9d9b1b1a-5088-42f4-b268-1d13a8bca129",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByRole(\"button\", name: \"Attach files\") \u2192 visible",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Control+p",
        "status": "passed"
      },
      {
        "step": "locator.fill getByPlaceholder(\"Search files\u2026\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"option\", name: \"refusal-restores-annex.txt\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"RUNTIME CHECK: refused removals preserve annex links\").first() \u2192 visible",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Maximize panel\")",
        "status": "passed"
      },
      {
        "step": "app.screenshot refusal-restores-annex",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Escape",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /3848c347-5676-4b96-a2dc-2793a5b074e4/mcp:d907d691-ab4c-40e3-bf09-a170b990d79a",
        "status": "passed"
      },
      {
        "step": "locator.secondaryTap getByRole(\"button\", name: \"Manual removal\").first()",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"menuitem\", name: \"Delete\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Confirm\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Confirm\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByRole(\"dialog\") \u2192 hidden",
        "status": "passed"
      },
      {
        "step": "app.screenshot manual-removal",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /3848c347-5676-4b96-a2dc-2793a5b074e4/mcp:9d9b1b1a-5088-42f4-b268-1d13a8bca129",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByRole(\"button\", name: \"Attach files\") \u2192 visible",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Control+p",
        "status": "passed"
      },
      {
        "step": "locator.fill getByPlaceholder(\"Search files\u2026\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"option\", name: \"manual-registration.txt\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"RUNTIME CHECK: manual worktree removal\").first() \u2192 visible",
        "status": "passed"
      },
      {
        "step": "app.screenshot manual-registration",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Escape",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /settings/maintenance",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Delete now\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByRole(\"button\", name: \"Delete now\") \u2192 visible",
        "status": "passed"
      },
      {
        "step": "app.screenshot maintenance-cleanup",
        "status": "passed"
      },
      {
        "step": "browser.evaluate ",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Last run\")",
        "status": "passed"
      },
      {
        "step": "locator.scrollIntoView locator(\"[data-slot=\\\"settings-row\\\"]\").filter({ hasText: \"t3-annex-b-548449c99a3146d3\" })",
        "status": "passed"
      },
      {
        "step": "app.screenshot cleanup-native-results",
        "status": "passed"
      },
      {
        "step": "locator.scrollIntoView locator(\"[data-slot=\\\"settings-row\\\"]\").filter({ hasText: \"/tmp/factory-pr-34065-a1794710111-evidence-4/public-fixture/worktrees/orphan-plain\" })",
        "status": "passed"
      },
      {
        "step": "app.screenshot orphan-native-results",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /3848c347-5676-4b96-a2dc-2793a5b074e4/mcp:9d9b1b1a-5088-42f4-b268-1d13a8bca129",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByRole(\"button\", name: \"Attach files\") \u2192 visible",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Control+p",
        "status": "passed"
      },
      {
        "step": "locator.fill getByPlaceholder(\"Search files\u2026\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"option\", name: \"cleanup-and-orphans.txt\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"RUNTIME CHECK: storage cleanup and orphan report\").first() \u2192 visible",
        "status": "passed"
      },
      {
        "step": "app.screenshot cleanup-and-orphans",
        "status": "passed"
      },
      {
        "step": "browser.keyboard.press Escape",
        "status": "passed"
      }
    ],
    "captures": [
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/686cb2736f3bf83a/after-manual-removal.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ddc164803de08299/after-manual-registration.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/db88c1eac9dc32dc/after-refusal-restores-annex.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5ea1ced70458abe8/after-maintenance-cleanup.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7df6f2e0704b7c3d/after-cleanup-native-results.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e51e06da0fe5dbfb/after-orphan-native-results.png",
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/66fdbf5ec2ce9246/after-cleanup-and-orphans.png"
    ],
    "videos": [
      "https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9113ec6a7e0a2783/after-interaction.webm"
    ]
  },
  "markdown": "## Evidence\n\nCreate a synthetic git-annex repository with committed annex content; start four replay threads in new worktrees. Add an untracked file to one and lock another. Add thread-less annex and regular-gitdir control worktrees under the managed folder and backdate both 3 hours. Settle annex-b in the UI and enable Delete unchanged worktrees. Call the real VCS removal RPC with force=false for the dirty worktree and force=true for the locked worktree, then read their annex content and inspect .git. Delete annex-a through the thread context menu and both confirmations. After the 60-second settle grace, run Settings > Maintenance > Delete now and expand Last run. Display live Git registration, filesystem and server-report observations in the app file viewer.\n\nEnvironment: Linux Chromium, 1280\u00d7800, light theme, fresh isolated T3 homes, git-annex 10.20240129, replay provider. The Git trace forwards unchanged arguments to system Git; verification files contain observed results, with synthetic paths normalized in text. Screenshots are unedited.\n\n| Capture | Before [dde53b11f3](https://github.com/pingdotgg/t3code/commit/dde53b11f3141e8cf9995d23234d00b04421f655) | After [cd42683c6a](https://github.com/pingdotgg/t3code/commit/cd42683c6a8a33a932fe7742982cfe0edff3cfbc) |\n| --- | --- | --- |\n| Manual deletion UI | ![Before: Manual deletion UI](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8e295c74e7c51b30/before-manual-removal.png) | ![After: Manual deletion UI](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/686cb2736f3bf83a/after-manual-removal.png) |\n| Folder and Git registration | ![Before: Folder and Git registration](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d2de9b6f3b42015a/before-manual-registration.png) | ![After: Folder and Git registration](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ddc164803de08299/after-manual-registration.png) |\n| Dirty/locked refusal and restored annex links | ![Before: Dirty/locked refusal and restored annex links](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/032a092e8b7779a7/before-refusal-restores-annex.png) | ![After: Dirty/locked refusal and restored annex links](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/db88c1eac9dc32dc/after-refusal-restores-annex.png) |\n| Maintenance run | ![Before: Maintenance run](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/88a985b8e472cdfd/before-maintenance-cleanup.png) | ![After: Maintenance run](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5ea1ced70458abe8/after-maintenance-cleanup.png) |\n| Native cleanup result | ![Before: Native cleanup result](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/045d2e4ab6bc0ed8/before-cleanup-native-results.png) | ![After: Native cleanup result](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7df6f2e0704b7c3d/after-cleanup-native-results.png) |\n| Native orphan reporting | ![Before: Native orphan reporting](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99d2d904213c2156/before-orphan-native-results.png) | ![After: Native orphan reporting](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e51e06da0fe5dbfb/after-orphan-native-results.png) |\n| Cleanup registration and orphan observations | ![Before: Cleanup registration and orphan observations](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/24526c15dad44338/before-cleanup-and-orphans.png) | ![After: Cleanup registration and orphan observations](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/66fdbf5ec2ce9246/after-cleanup-and-orphans.png) |\n| Full interaction recording | [Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/de04ffe6d3f684e4/before-interaction.webm) | [After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9113ec6a7e0a2783/after-interaction.webm) |\n\n[Scenario and seed/trace driver](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/10ec1573c4a54784/annex-worktree-cleanup.e2e.ts)\n\nObserved: base leaves annex-a registered, keeps annex-b as \u201cNot a linked worktree,\u201d and omits orphan-annex. Head removes both clean worktrees and reports the annex orphan. For dirty and locked refusals, head hands Git a regular gitdir file, then restores the symlink; annex content and untracked work remain readable.\n"
}