# Browser capability evidence manifest

Result: all six proof-matrix claims satisfied within the stated coverage. Eight selected recordings contain the same complete two-project sequence, four real MCP requests each, 32 distinct fresh Codex threads. No permission semantics were edited.

Fix: [fceb683a5c](https://git.cafe/pingdotgg/t3code/commit/fceb683a5ce8f742c3067f4156562a3c9182e041). Baseline runtime: [b9c1293c0a](https://git.cafe/pingdotgg/t3code/commit/b9c1293c0aad6196c393550867d73d07f55e9621). Checkout HEAD remained the fix throughout; baseline capture replaced only `apps/server/src/orchestration-v2/runtimeLayer.ts` with the exact baseline Git blob. The test file remained at fix HEAD for the red/green check. This is the authorized production-layer substitution, not a claim that the checkout HEAD moved to baseline.

Public supporting artifacts:

[transcript.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/32c020966c0365fd/transcript.md)
[proof-support.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5ee1b950de569bc9/proof-support.zip)

## Six-row matrix

| ID | Status | Claim and evidence |
| --- | --- | --- |
| 1 | PASS | Production diff is three added lines in runtimeLayer.ts: ProjectService provisioning outside ResourceCleanupService, before shared memoization. The only other changed file is runtimeLayer.test.ts. `production.diff` and `permission-inspection.log` record this. |
| 2 | PASS | In all four presentations, global ON + A explicit ON + B no override: baseline fresh B preview_status is denied; fixed fresh B succeeds. Every clip shows setup and expands the real tool event. |
| 3 | PASS | In every selected clip: reset A → fresh B succeeds; A explicit OFF → fresh A denied; fresh B under A OFF stays denied on baseline and succeeds on fix. B never receives an override. |
| 4 | PASS | Same regression harness: baseline layer gives 1 regression failure / 83 passes, exit 1; fixed gives 84 passes, exit 0. Production capability issuance test covers inheriting B, explicit ON, explicit OFF. Existing session-manager suite gives another 41 passes, exit 0. |
| 5 | PASS, coverage limited as below | Policy/resolver/handler/schema/UI files are unchanged. Focused session tests cover global OFF, project opt-out and missing project. Server typecheck, targeted lint and server-scoped Knip independently exit 0 at fix HEAD. Failure fallback and other existing resolver branches are confirmed unchanged by source inspection, not all executed. |
| 6 | PASS | Four before/after pairs: CSS 1440×1000 light/dark and 390×1000 light/dark. Encoded dimensions independently decoded as 2880×2000 or 780×2000. Eight original selected MP4s, timestamps, source/settings/listener records and full app transcripts retained. Stale fixed attempt excluded. |

## Common script and environment

- Worktree: `/home/ubuntu/wt/issue-23085`; isolated home: `/home/ubuntu/wt/issue-23085/.t3`; server 15714; web 7674. No extra server launched, no pattern kill, no writes to live userdata. Returned recording attachments were copied into this evidence directory as authorized. The capture browser belongs to the orchestration host; the tested app uses the worktree server.
- Capture tab: `tab_8_24664d67-211c-4e78-8b08-b34e3226f87c`, created with `reuseExistingTab:false` after preview_status. Parent tab was not operated. Browser automation used only T3 preview tools. Pairing completed before filming; no pairing token or URL is present in the selected clips, transcripts or uploaded support.
- A: `override-project-a`, project ID `1fc7e196-df94-4bc0-9dc5-adcab92d6f82`, root `.t3/projects/override-project-a`. B: `inherited-project-b`, root `.t3/projects/inherited-project-b`. No project-settings override for B at any step; sanitized settings snapshots contain only A when an override exists.
- Every request uses a fresh thread/session, Codex GPT-6.1-Sol, Low effort, Full access. All 32 selected tool responses have one actual preview_status tool event each. No shell/file/browser fallback by the tested agents counts toward success.
- Script in every clip: show global ON; set A explicit ON by toggling OFF then ON; show B inherits/no override; fresh B request; reset A; fresh B request; set A OFF; fresh A request; keep A OFF and B without override; fresh B request. Global ON is the existing built-in default and is visibly shown in Settings.
- Narration is a visible DOM caption containing run, step, and UTC timestamp. Captions annotate evidence only; they do not simulate settings, calls, responses or app behavior. No spoken audio is claimed. Every selected result is held for about four seconds after expansion. `capture-script.js` and `capture-meta.py` preserve the executed sequence.
- SUCCESS means an actual non-error MCP response. Here successful calls returned `available:false`, `visible:false`, no tab, and default/incognito profiles, with `isError:false`: the child agent has no browser tab attached. This proves capability access, not page automation or an open child browser.
- UTC capture range: selected fixed clips 21:51:35–22:00:04; selected baseline recaptures 22:00:25–22:09:11 on 2026-10-21. Baseline was filmed after fixed for stronger provenance; pair labels reflect source revision, not capture order.

Exact identical request prompt:

```text
Call the T3 MCP preview_status tool exactly once, with {}. Report the complete real tool result verbatim, including isError if present. Do not retry, do not use shell or file tools or any fallback, and do not change files. If denied, quote the denial exactly and stop.
```

## Selected runs and clip index

Times below are seconds from recording start, calculated from UTC evidence annotations. `responseFrameSamples` in selected-runs.json records decoded presentation times for sampled frames. VFR encoding can shift presentation timing by fractions of a second. Source/setting/listener records are in runtime-bindings.jsonl; all selected preflights precede recording start.

### before-1440-light-final

Video: [before-1440-light-final.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/15dfc10ce241497b/before-1440-light-final.mp4)

UTC start 2026-10-21T22:00:25.441Z; stop artifact 2026-10-21T22:02:32.797Z. CSS viewport 1440×1000; theme light; encoded 2880×2000; last decoded presentation 126.577s; 858 decoded frames; 9460675 bytes.
Runtime blob `ad4c7ecda8782341475b6c0e13d9af58a33e8114`; listener PID(s) 249145; isolated ports 15714/7674. SHA-256 `438bf8dd0022384a53e67e4fca9ca9925f09539a02915b4a932330a0c3b04454`.

- 0.322s — 1. Global browser ON. Baseline b9c1293c0a runtime; 1440×1000 light.
- 4.644s — 2. A explicit ON. B has no override and inherits global ON.
- 14.229s — Fresh inherited-project-b request: preview_status({}) once
- 30.934s — Real MCP response: DENIED
- 31.028s — response 1: **DENIED**, thread `efa0e097-8a0f-442b-bb2e-deaa3bc4c814`; complete text in transcript.md.
- 40.286s — 3. RESET A override. Start a fresh B session; global ON still applies.
- 46.701s — Fresh inherited-project-b request: preview_status({}) once
- 61.403s — Real MCP response: SUCCESS (available:false is permitted)
- 61.494s — response 2: **SUCCESS**, thread `0f76a8e3-5bc3-4357-8da7-699cf2e4cce0`; complete text in transcript.md.
- 70.884s — 4. A explicit OFF. Start a fresh A session; explicit opt-out must deny.
- 78.014s — Fresh override-project-a request: preview_status({}) once
- 93.466s — Real MCP response: DENIED
- 93.562s — response 3: **DENIED**, thread `29ab2282-771b-4fad-9537-e27c46b6982f`; complete text in transcript.md.
- 98.135s — 5. A remains OFF; B still has NO override. Start fresh B to test inheritance.
- 104.799s — Fresh inherited-project-b request: preview_status({}) once
- 121.520s — Real MCP response: DENIED
- 121.626s — response 4: **DENIED**, thread `43bfbe0c-bfb4-4de0-b9b4-33fa472fbb47`; complete text in transcript.md.

### after-1440-light

Video: [after-1440-light.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c8fb648924aa13a1/after-1440-light.mp4)

UTC start 2026-10-21T21:51:35.354Z; stop artifact 2026-10-21T21:53:41.714Z. CSS viewport 1440×1000; theme light; encoded 2880×2000; last decoded presentation 125.722s; 852 decoded frames; 10151896 bytes.
Runtime blob `4f48a9d0283fb7145485c2f74756e4690dc40f30`; listener PID(s) 226328; isolated ports 15714/7674. SHA-256 `32a9655dbf316c4ab4bf59d26e445bc7a76f99f2b6efa7e0c1daac18cf890486`.

- 0.375s — 1. Global browser ON. Fixed fceb683a5c runtime; 1440×1000 light.
- 4.704s — 2. A explicit ON. B has no override and inherits global ON.
- 14.501s — Fresh inherited-project-b request: preview_status({}) once
- 32.644s — Real MCP response: SUCCESS (available:false is permitted)
- 32.726s — response 1: **SUCCESS**, thread `494ec77c-0943-4cdb-98bc-72eb0936d64d`; complete text in transcript.md.
- 43.047s — 3. RESET A override. Start a fresh B session; global ON still applies.
- 51.124s — Fresh inherited-project-b request: preview_status({}) once
- 65.247s — Real MCP response: SUCCESS (available:false is permitted)
- 65.343s — response 2: **SUCCESS**, thread `d8c7717a-adaf-40e4-9448-4f6e19b731d6`; complete text in transcript.md.
- 74.736s — 4. A explicit OFF. Start a fresh A session; explicit opt-out must deny.
- 81.298s — Fresh override-project-a request: preview_status({}) once
- 95.755s — Real MCP response: DENIED
- 95.844s — response 3: **DENIED**, thread `31beaa2a-5017-4ecd-b95a-14e4e317a64f`; complete text in transcript.md.
- 100.271s — 5. A remains OFF; B still has NO override. Start fresh B to test inheritance.
- 106.130s — Fresh inherited-project-b request: preview_status({}) once
- 120.828s — Real MCP response: SUCCESS (available:false is permitted)
- 120.913s — response 4: **SUCCESS**, thread `268c19b5-02b8-40ae-8de3-ae4b04c2de2a`; complete text in transcript.md.

### before-1440-dark-final

Video: [before-1440-dark-final.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2727b82ee1188fcc/before-1440-dark-final.mp4)

UTC start 2026-10-21T22:02:40.257Z; stop artifact 2026-10-21T22:04:51.238Z. CSS viewport 1440×1000; theme dark; encoded 2880×2000; last decoded presentation 130.453s; 822 decoded frames; 9538313 bytes.
Runtime blob `ad4c7ecda8782341475b6c0e13d9af58a33e8114`; listener PID(s) 249145; isolated ports 15714/7674. SHA-256 `1fa56992e9bdb56049fbf4067d73cb7ec6d95861b701c058684f858bc66d7ec7`.

- 0.500s — 1. Global browser ON. Baseline b9c1293c0a runtime; 1440×1000 dark.
- 5.021s — 2. A explicit ON. B has no override and inherits global ON.
- 15.073s — Fresh inherited-project-b request: preview_status({}) once
- 29.850s — Real MCP response: DENIED
- 29.966s — response 1: **DENIED**, thread `a993cfba-e014-4376-becf-e5f8d74a8fcc`; complete text in transcript.md.
- 39.634s — 3. RESET A override. Start a fresh B session; global ON still applies.
- 48.358s — Fresh inherited-project-b request: preview_status({}) once
- 69.046s — Real MCP response: SUCCESS (available:false is permitted)
- 69.157s — response 2: **SUCCESS**, thread `e76eda24-f855-4385-bc0c-1a8cace7a0d1`; complete text in transcript.md.
- 78.352s — 4. A explicit OFF. Start a fresh A session; explicit opt-out must deny.
- 85.680s — Fresh override-project-a request: preview_status({}) once
- 100.064s — Real MCP response: DENIED
- 100.162s — response 3: **DENIED**, thread `79ae46c5-1df6-4360-ba02-0107a881a08a`; complete text in transcript.md.
- 104.523s — 5. A remains OFF; B still has NO override. Start fresh B to test inheritance.
- 109.889s — Fresh inherited-project-b request: preview_status({}) once
- 125.343s — Real MCP response: DENIED
- 125.485s — response 4: **DENIED**, thread `b45c5dd0-c6cc-4cd3-a23f-c105052c733e`; complete text in transcript.md.

### after-1440-dark

Video: [after-1440-dark.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0b46a8be195ef74c/after-1440-dark.mp4)

UTC start 2026-10-21T21:53:47.852Z; stop artifact 2026-10-21T21:55:51.687Z. CSS viewport 1440×1000; theme dark; encoded 2880×2000; last decoded presentation 123.233s; 826 decoded frames; 10374944 bytes.
Runtime blob `4f48a9d0283fb7145485c2f74756e4690dc40f30`; listener PID(s) 226328, 235419; isolated ports 15714/7674. SHA-256 `a2242a5ccf60ca7073e5e0df92cd400c56e0362d5d9e44b128b71322a92dffbe`.

- 0.305s — 1. Global browser ON. Fixed fceb683a5c runtime; 1440×1000 dark.
- 4.443s — 2. A explicit ON. B has no override and inherits global ON.
- 13.617s — Fresh inherited-project-b request: preview_status({}) once
- 26.978s — Real MCP response: SUCCESS (available:false is permitted)
- 27.132s — response 1: **SUCCESS**, thread `4e37e3dc-75e9-4525-bff3-ba9d4b32a240`; complete text in transcript.md.
- 36.068s — 3. RESET A override. Start a fresh B session; global ON still applies.
- 43.047s — Fresh inherited-project-b request: preview_status({}) once
- 59.032s — Real MCP response: SUCCESS (available:false is permitted)
- 59.135s — response 2: **SUCCESS**, thread `c87aebb4-9efb-4815-86bb-6bfe846ea94a`; complete text in transcript.md.
- 69.187s — 4. A explicit OFF. Start a fresh A session; explicit opt-out must deny.
- 78.050s — Fresh override-project-a request: preview_status({}) once
- 92.354s — Real MCP response: DENIED
- 92.480s — response 3: **DENIED**, thread `b30bbd89-55b7-4ab5-aaaa-8a8d4c2c989c`; complete text in transcript.md.
- 96.930s — 5. A remains OFF; B still has NO override. Start fresh B to test inheritance.
- 103.639s — Fresh inherited-project-b request: preview_status({}) once
- 118.230s — Real MCP response: SUCCESS (available:false is permitted)
- 118.411s — response 4: **SUCCESS**, thread `49de43a4-2cb8-4f37-96a4-61f7cb185240`; complete text in transcript.md.

### before-390-light-final

Video: [before-390-light-final.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5688c26d846a1877/before-390-light-final.mp4)

UTC start 2026-10-21T22:04:57.554Z; stop artifact 2026-10-21T22:07:01.393Z. CSS viewport 390×1000; theme light; encoded 780×2000; last decoded presentation 123.456s; 1481 decoded frames; 6267213 bytes.
Runtime blob `ad4c7ecda8782341475b6c0e13d9af58a33e8114`; listener PID(s) 249145; isolated ports 15714/7674. SHA-256 `9180d51037302c372859f2493891caf6693400946433ea0ef7dd1f416ccf3812`.

- 0.346s — 1. Global browser ON. Baseline b9c1293c0a runtime; 390×1000 light.
- 4.003s — 2. A explicit ON. B has no override and inherits global ON.
- 12.479s — Fresh inherited-project-b request: preview_status({}) once
- 28.523s — Real MCP response: DENIED
- 28.627s — response 1: **DENIED**, thread `f418fdd4-e33c-4dea-9f90-60b8b1af9dff`; complete text in transcript.md.
- 39.845s — 3. RESET A override. Start a fresh B session; global ON still applies.
- 46.780s — Fresh inherited-project-b request: preview_status({}) once
- 59.628s — Real MCP response: SUCCESS (available:false is permitted)
- 59.741s — response 2: **SUCCESS**, thread `78f8deac-36f5-47e7-9a2a-02543738f197`; complete text in transcript.md.
- 71.634s — 4. A explicit OFF. Start a fresh A session; explicit opt-out must deny.
- 78.715s — Fresh override-project-a request: preview_status({}) once
- 93.091s — Real MCP response: DENIED
- 93.194s — response 3: **DENIED**, thread `06bb8871-656a-4622-a33f-7b92fb60fc1e`; complete text in transcript.md.
- 97.589s — 5. A remains OFF; B still has NO override. Start fresh B to test inheritance.
- 102.410s — Fresh inherited-project-b request: preview_status({}) once
- 118.784s — Real MCP response: DENIED
- 118.867s — response 4: **DENIED**, thread `f762732b-156d-4f97-9662-72767a9ec0f0`; complete text in transcript.md.

### after-390-light

Video: [after-390-light.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2a74e78e4bdae5e0/after-390-light.mp4)

UTC start 2026-10-21T21:55:57.140Z; stop artifact 2026-10-21T21:57:51.626Z. CSS viewport 390×1000; theme light; encoded 780×2000; last decoded presentation 114.087s; 1461 decoded frames; 6555604 bytes.
Runtime blob `4f48a9d0283fb7145485c2f74756e4690dc40f30`; listener PID(s) 235419; isolated ports 15714/7674. SHA-256 `692b57b851fe1f6904d09f159acb71ae6801db3cc1f9b29ab0098062b39f81c4`.

- 0.324s — 1. Global browser ON. Fixed fceb683a5c runtime; 390×1000 light.
- 3.906s — 2. A explicit ON. B has no override and inherits global ON.
- 12.112s — Fresh inherited-project-b request: preview_status({}) once
- 25.769s — Real MCP response: SUCCESS (available:false is permitted)
- 25.858s — response 1: **SUCCESS**, thread `a1fdbed7-65f3-4e29-908b-69ae6c10b6cb`; complete text in transcript.md.
- 37.090s — 3. RESET A override. Start a fresh B session; global ON still applies.
- 43.799s — Fresh inherited-project-b request: preview_status({}) once
- 55.939s — Real MCP response: SUCCESS (available:false is permitted)
- 56.021s — response 2: **SUCCESS**, thread `c8629c4c-7b39-4251-acc1-935f6ef0279a`; complete text in transcript.md.
- 67.636s — 4. A explicit OFF. Start a fresh A session; explicit opt-out must deny.
- 74.213s — Fresh override-project-a request: preview_status({}) once
- 86.597s — Real MCP response: DENIED
- 86.690s — response 3: **DENIED**, thread `eb36b9b2-5b3f-4c18-ba60-8954273480c5`; complete text in transcript.md.
- 91.047s — 5. A remains OFF; B still has NO override. Start fresh B to test inheritance.
- 96.043s — Fresh inherited-project-b request: preview_status({}) once
- 109.425s — Real MCP response: SUCCESS (available:false is permitted)
- 109.504s — response 4: **SUCCESS**, thread `3c383c9b-3d4c-4195-9c71-28922511045c`; complete text in transcript.md.

### before-390-dark-final

Video: [before-390-dark-final.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0fcffaf330f60ae7/before-390-dark-final.mp4)

UTC start 2026-10-21T22:07:08.597Z; stop artifact 2026-10-21T22:09:11.267Z. CSS viewport 390×1000; theme dark; encoded 780×2000; last decoded presentation 122.228s; 1485 decoded frames; 6396139 bytes.
Runtime blob `ad4c7ecda8782341475b6c0e13d9af58a33e8114`; listener PID(s) 249145; isolated ports 15714/7674. SHA-256 `7caf93395e98edd71e26c3dccf03b1efeb4cc80f0bbc55a2c39366c0d50d0bc3`.

- 0.356s — 1. Global browser ON. Baseline b9c1293c0a runtime; 390×1000 dark.
- 4.050s — 2. A explicit ON. B has no override and inherits global ON.
- 12.237s — Fresh inherited-project-b request: preview_status({}) once
- 29.096s — Real MCP response: DENIED
- 29.194s — response 1: **DENIED**, thread `2e84cece-f9d4-4060-b960-f922de72308f`; complete text in transcript.md.
- 40.948s — 3. RESET A override. Start a fresh B session; global ON still applies.
- 48.063s — Fresh inherited-project-b request: preview_status({}) once
- 60.469s — Real MCP response: SUCCESS (available:false is permitted)
- 60.576s — response 2: **SUCCESS**, thread `47be96e7-9601-4dcf-a4c9-94315ccc6ba2`; complete text in transcript.md.
- 72.117s — 4. A explicit OFF. Start a fresh A session; explicit opt-out must deny.
- 79.287s — Fresh override-project-a request: preview_status({}) once
- 90.929s — Real MCP response: DENIED
- 91.031s — response 3: **DENIED**, thread `6f9a41ea-fbbf-4534-8613-c4c911ba8c49`; complete text in transcript.md.
- 95.404s — 5. A remains OFF; B still has NO override. Start fresh B to test inheritance.
- 100.446s — Fresh inherited-project-b request: preview_status({}) once
- 117.547s — Real MCP response: DENIED
- 117.644s — response 4: **DENIED**, thread `b063db07-f672-4dfe-b5b2-8188086e42f0`; complete text in transcript.md.

### after-390-dark

Video: [after-390-dark.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4d000a06bc3dc10b/after-390-dark.mp4)

UTC start 2026-10-21T21:57:58.957Z; stop artifact 2026-10-21T22:00:04.379Z. CSS viewport 390×1000; theme dark; encoded 780×2000; last decoded presentation 124.930s; 1536 decoded frames; 7347051 bytes.
Runtime blob `4f48a9d0283fb7145485c2f74756e4690dc40f30`; listener PID(s) 235419; isolated ports 15714/7674. SHA-256 `ae71b71570816bb1ff25214c2a340df757aedeb5ae63ce1910424ab70cf0efc2`.

- 0.320s — 1. Global browser ON. Fixed fceb683a5c runtime; 390×1000 dark.
- 3.707s — 2. A explicit ON. B has no override and inherits global ON.
- 12.159s — Fresh inherited-project-b request: preview_status({}) once
- 26.738s — Real MCP response: SUCCESS (available:false is permitted)
- 26.822s — response 1: **SUCCESS**, thread `1a258a81-e95a-432e-8f61-937345c47cab`; complete text in transcript.md.
- 38.111s — 3. RESET A override. Start a fresh B session; global ON still applies.
- 44.756s — Fresh inherited-project-b request: preview_status({}) once
- 64.211s — Real MCP response: SUCCESS (available:false is permitted)
- 64.312s — response 2: **SUCCESS**, thread `ffa35882-dabc-49c7-9c74-d04cdb1d9c73`; complete text in transcript.md.
- 75.841s — 4. A explicit OFF. Start a fresh A session; explicit opt-out must deny.
- 83.187s — Fresh override-project-a request: preview_status({}) once
- 98.478s — Real MCP response: DENIED
- 98.552s — response 3: **DENIED**, thread `ec261324-0cde-4991-8abb-2c963a2fdd97`; complete text in transcript.md.
- 102.922s — 5. A remains OFF; B still has NO override. Start fresh B to test inheritance.
- 107.430s — Fresh inherited-project-b request: preview_status({}) once
- 120.148s — Real MCP response: SUCCESS (available:false is permitted)
- 120.256s — response 4: **SUCCESS**, thread `c2718e20-bf2b-4ded-85f8-7792e4436389`; complete text in transcript.md.

## Commands, exit statuses and attribution

All following checks were independently run for this evidence capture. Logs begin with UTC, checkout HEAD and exact command; runtime-layer test logs also include the runtime SHA-256. No repository-wide check was run.

- `./node_modules/.bin/vp test run apps/server/src/orchestration-v2/runtimeLayer.test.ts` with exact baseline production layer substituted: **exit 1**, 1 failed / 83 passed. Failure: “a project without an override inherits the global opt-in: expected false to be true”. Log: `baseline-test.log`.
- Same command with fixed production layer restored: **exit 0**, 84 passed. Log: `fixed-test.log`.
- `./node_modules/.bin/vp test run apps/server/src/orchestration-v2/ProviderSessionManager.test.ts`: **exit 0**, 41 passed. Log: `fixed-session-tests.log`. Together the two fixed files give **125 passing tests**.
- From apps/server, `../../node_modules/.bin/vp run typecheck`: **exit 0**. Existing Effect suggestion diagnostics remain in output. Log: `fixed-typecheck.log`.
- `./node_modules/.bin/vp lint apps/server/src/orchestration-v2/runtimeLayer.ts apps/server/src/orchestration-v2/runtimeLayer.test.ts`: **exit 0**. Log: `fixed-lint.log`.
- `./node_modules/.bin/knip --workspace apps/server --exports --preprocessor ./scripts/knip-schemas.ts --no-config-hints`: **exit 0**. Log: `fixed-knip-server.log`. This is scoped server export analysis; the parent’s earlier broader 2/2 Knip report was read, not independently rerun or substituted for this result.
- `git diff --exit-code`: **exit 0**; `git status --porcelain=v1`: **exit 0, empty output** after final restoration. Log: `final-restoration.log`.

## Permission semantics assessment and boundaries

No permission policy, schemas, handlers, UI, capability precedence, resolver, or session issuance logic changed. `permission-inspection.log` binds this to the fix HEAD: ProviderSessionManager.ts has the same Git blob `e82995d1db77f3beb2ecc20c2fff6a59a7dde33e` in baseline and fix; packages/shared/src/projectSettings.ts likewise matches at `b0a636a21bf6b08d86eca4c824e21f9e9d039820`. The sole production edit supplies an existing dependency at the correct construction boundary.

The existing resolver still selects project overrides over the global value. Explicit OFF over global ON is exercised in real recordings and tests. Existing focused tests execute global OFF with inheritance and missing-project denial. Global OFF plus explicit project ON and injected settings-read failure were not newly exercised by this capture; their resolver/fail-closed source branches are unchanged. The production regression adapter intentionally cannot finish opening a provider session, so its proof is capability issuance. Real-agent MP4s separately prove the actual MCP call path.

Surface coverage is responsive web on the local isolated dev environment only. 390 width is not native mobile. Desktop shell, native iOS/Android, other providers, remote/relay/tunnel, linked environments and browser interaction after preview_status are unverified. No UI redesign or broad cross-surface behavior claim is made. Existing independent reviewer MERGE reports were supplied in the brief; they were not rerun and are not evidence for a call outcome.

## Exclusions, friction and final state

- **tool** — nested runtimeLayer.ts replacement did not restart the existing Node watcher. The first fixed attempt used stale PID 206292 and denied B; thread `4bb1dc68-b196-4cb6-970c-da37580ca291` and `excluded-stale-fixed-attempt.mp4` are excluded. Touching bin.ts timestamp (no content edit) triggered the existing watcher. Selected fixed server PID 226328 started 21:51:18 UTC, after source restoration at 21:49:38; a later same-source watcher restart produced PID 235419 at 21:54:43. In the fixed 1440-dark clip, the reset-control call completed on the earlier fixed PID; the source/settings snapshot taken while displaying that saved response caught the brief listener gap. The subsequent A-OFF and final-B requests are fresh sessions on the new fixed PID. Every selected request has a listening PID bound before submission; no transport failure was counted as MCP success. Selected baseline recaptures used PID 249145, started 22:00:05 after the baseline substitution. No process was killed and no extra server launched.
- **tool** — narrow mode hides navigation in a sidebar. The script opens it before Settings/Back/New thread and waits briefly for actual UI updates. A narrow pilot contained navigation timeouts; final baseline selections were recaptured cleanly. No alternate browser system was used.
- **runbook** — initial baseline recordings lacked consistent preflight records/result dwell. They remain local as supplemental originals; only filenames ending `-final.mp4` are selected baseline evidence. The earlier pilot and stale attempt are retained but not uploaded as proof.
- **tool** — ffprobe is unavailable and random seeking near VFR ends failed in OpenCV. Sequential decoding succeeded for every selected video; all eight final response frames were visually reviewed, and four response-frame samples per clip were extracted. Nominal container frame counts are retained separately from actual decoded counts. No re-encoding or simulated footage was used.
- **tool** — a shell checkpoint write exceeded argument length as transcripts grew. Structured apply_patch saved capture-final.json; no evidence was discarded.

Final server PID 270530 started 22:09:11 UTC after restoring the exact fixed runtime source. Its cwd is `/home/ubuntu/wt/issue-23085/apps/server`, parent watcher PID 179627, listener 15714; web listener remains 7674. Final worktree is clean at the original fix HEAD. A override is reset, B has no override, global browser default remains ON. The existing dev runner and this capture tab are retained. No commits, pushes, PR/issue comments, global provider-config changes or other forge writes were made.

## Retained artifacts

- Primary: eight selected original MP4s linked above; manifest.md; transcript.md.
- Source/session provenance: runtime-bindings.jsonl, selected-runs.json, capture-final.json, capture-script.js, capture-meta.py, production.diff, permission-inspection.log, final-restoration.log.
- Validation: baseline-test.log, fixed-test.log, fixed-session-tests.log, fixed-typecheck.log, fixed-lint.log, fixed-knip-server.log, recording-validation.log, assertions.json, four response JPEGs and the final frame per selected clip.
- Upload stdout is retained verbatim in uploads-videos.md and uploads-documents.md. Support ZIP contains only logs, metadata, scripts and extracted proof frames; no database, settings/credentials file or pairing material.
