# Sanitized runtime evidence: issue 24383

Environment: Linux fs-29, real development server and real web browser client at 1280×800. The lead executed the browser command; this evidence assembly was read-only and did not rerun the server, browser, or tests.

Fixture: origin is the [fork](https://github.com/juliusmarminge/t3code), upstream is [pingdotgg/t3code](https://github.com/pingdotgg/t3code), and container-use is a local `/tmp/…` Git remote. `remote.origin.gh-resolved=base`. A temporary empty commit was pushed only to the fork; its branch had `gh-merge-base=main`.

## Public runtime transcript

Only createPullRequest request method/path/status/start time and the first error line are exposed. No headers, auth, request bodies, full traces, or private state are included.

| Case | Tested application SHA | Method | Path | Status | Start time (Unix ns) | Error first line |
|---|---|---|---|---|---|---|
| base failure | `3afb9b366f` | POST | `/repos/pingdotgg/t3code/pulls` | 422 | `1792877144139631430` | GitHubApiResponseError: GitHub returned an error: Validation Failed; head invalid |
| base control (remove only container-use) | `3afb9b366f` | POST | `/repos/juliusmarminge/t3code/pulls` | 201 | `1792877195579728050` | — |
| final success (local remote present) | `e9322b87565f6f4e7c72ef7e1a904acb26665cd2` | POST | `/repos/juliusmarminge/t3code/pulls` | 201 | `1792877952987208745` | — |

Provenance: the base failure and control come from the prior sanitized `/tmp/issue-24383-before.json` and reproduction notes. The current trace has rotated/replaced those earlier spans; it contains exactly one createPullRequest span, used above as the LAST final success. The control removed only container-use and created [#2](https://github.com/juliusmarminge/t3code/pull/2). The final attempt retained the local remote and created [#4](https://github.com/juliusmarminge/t3code/pull/4). Temporary PR heads were deleted afterward, as reported by the lead; no forge state was queried during assembly.

An intermediate implementation (`1d05…`) also returned fork 201 ([#3](https://github.com/juliusmarminge/t3code/pull/3)), per lead handoff. It is excluded from the main evidence and is not independently evidenced by the current trace.

## Browser command source

The lead invoked the real client command via browser evaluation because the draft thread disabled Git actions. No mock transport or API responses were used.

```js
const { vcsActionManager } = await import('/src/state/vcs.ts');
const { appAtomRegistry } = await import('/src/rpc/atomRegistry.ts');
await vcsActionManager.runStackedAction({ environmentId, cwd }).run(appAtomRegistry, {
  actionId,
  action: 'create_pr',
});
```

## Validation and scope

- Red test run at `b21d87b362`: expected owner `me`, got `acme`; 1 failed, 3 passed (lead-reported).
- Final implementation at `e9322b87565f6f4e7c72ef7e1a904acb26665cd2`: server scope 270 tests passed; typecheck exit 0 (lead-reported, not rerun during assembly).
- Evidence assembly confirmed final checkout HEAD and clean git status, and inspected fixture remote/config read-only. Fixture branch: `issue-24383-final`; local remote and gh-resolved setting remain present. Remote-head deletion is lead-reported.
- Render-path rows: 0/0. No screenshots or video: zero changed render paths. Server-only exception matrix: EMPTY.
- Limits: a Linux web-client create_pr path only; no independent desktop/mobile, tunnel, or other-provider verification. Empty-commit fixture has no visible file diff. Browser runtime execution and test results were supplied by the lead; final HTTP status was independently extracted from the current trace.
- Friction: earlier spans are absent from the current log, so baseline provenance relies on the pre-existing sanitized capture; draft-thread Git actions required direct invocation of the same client manager command. No additional runtime capture was attempted.
