# Runtime transcript

Read through authenticated `orchestration.getThreadProjection` RPC on each build. Synthetic threads only; no database access. Missing resetAt fields are normalized to null. All timestamps are UTC.

AI-assisted; verified with the tests and tools listed above.

## U

### Before — [c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939)

```json
{
  "runId": "run:thread:thread%3Api-evidence-U-capture:ordinal:1",
  "status": "failed",
  "title": "Provider error",
  "persistedAt": "2026-11-09T09:21:56.345Z",
  "failure": {
    "class": "provider_error",
    "message": "Codex error: The usage limit has been reached",
    "code": null,
    "retryable": null,
    "resetAt": null
  },
  "retry": null
}
```

Runs:
```json
[
  {
    "id": "run:thread:thread%3Api-evidence-U-capture:ordinal:1",
    "ordinal": 1,
    "status": "failed",
    "requestedAt": "2026-11-09T09:21:54.998Z",
    "startedAt": "2026-11-09T09:21:55.897Z",
    "completedAt": "2026-11-09T09:21:56.387Z"
  }
]
```

### After — [107c62505b](https://git.cafe/pingdotgg/t3code/commit/107c62505bbaa56b1f7d2c9cdd73a5fd66fc0831)

```json
{
  "runId": "run:thread:thread%3Api-evidence-U-capture:ordinal:1",
  "status": "failed",
  "title": "Usage limit reached",
  "persistedAt": "2026-11-09T09:21:56.364Z",
  "failure": {
    "class": "usage_limit",
    "message": "Codex error: The usage limit has been reached",
    "code": null,
    "retryable": null,
    "resetAt": null
  },
  "retry": null
}
```

Runs:
```json
[
  {
    "id": "run:thread:thread%3Api-evidence-U-capture:ordinal:1",
    "ordinal": 1,
    "status": "failed",
    "requestedAt": "2026-11-09T09:21:55.077Z",
    "startedAt": "2026-11-09T09:21:56.053Z",
    "completedAt": "2026-11-09T09:21:56.400Z"
  }
]
```

## T

### Before — [c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939)

```json
{
  "runId": "run:thread:thread%3Api-evidence-T:ordinal:1",
  "status": "failed",
  "title": "Provider error",
  "persistedAt": "2026-11-09T09:24:48.607Z",
  "failure": {
    "class": "provider_error",
    "message": "You have hit your ChatGPT usage limit (plus plan). Try again in ~131 min.",
    "code": null,
    "retryable": null,
    "resetAt": null
  },
  "retry": null
}
```

Runs:
```json
[
  {
    "id": "run:thread:thread%3Api-evidence-T:ordinal:1",
    "ordinal": 1,
    "status": "failed",
    "requestedAt": "2026-11-09T09:24:47.571Z",
    "startedAt": "2026-11-09T09:24:48.312Z",
    "completedAt": "2026-11-09T09:24:48.629Z"
  }
]
```

### After — [107c62505b](https://git.cafe/pingdotgg/t3code/commit/107c62505bbaa56b1f7d2c9cdd73a5fd66fc0831)

```json
{
  "runId": "run:thread:thread%3Api-evidence-T:ordinal:1",
  "status": "failed",
  "title": "Usage limit reached",
  "persistedAt": "2026-11-09T09:24:48.611Z",
  "failure": {
    "class": "usage_limit",
    "message": "You have hit your ChatGPT usage limit (plus plan). Try again in ~131 min.",
    "code": null,
    "retryable": null,
    "resetAt": "2026-11-09T11:36:18.557Z"
  },
  "retry": null
}
```

Runs:
```json
[
  {
    "id": "run:thread:thread%3Api-evidence-T:ordinal:1",
    "ordinal": 1,
    "status": "failed",
    "requestedAt": "2026-11-09T09:24:47.550Z",
    "startedAt": "2026-11-09T09:24:48.320Z",
    "completedAt": "2026-11-09T09:24:48.640Z"
  }
]
```

## D

### Before — [c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939)

```json
{
  "runId": "run:thread:thread%3Api-evidence-D:ordinal:1",
  "status": "failed",
  "title": "Provider error",
  "persistedAt": "2026-11-09T09:29:32.309Z",
  "failure": {
    "class": "provider_error",
    "message": "You have hit your ChatGPT usage limit (plus plan). Try again in ~1 min.",
    "code": null,
    "retryable": null,
    "resetAt": null
  },
  "retry": null
}
```

Runs:
```json
[
  {
    "id": "run:thread:thread%3Api-evidence-D:ordinal:1",
    "ordinal": 1,
    "status": "failed",
    "requestedAt": "2026-11-09T09:29:30.546Z",
    "startedAt": "2026-11-09T09:29:31.563Z",
    "completedAt": "2026-11-09T09:29:32.385Z"
  }
]
```

Recovery immediately after failure:
```json
null
```

Messages after deadline:
```json
[
  {
    "role": "user",
    "text": "Reply with the synthetic recovery confirmation.",
    "createdBy": "user",
    "creationSource": "web",
    "runId": "run:thread:thread%3Api-evidence-D:ordinal:1",
    "createdAt": "2026-11-09T09:29:30.546Z"
  }
]
```

### After — [107c62505b](https://git.cafe/pingdotgg/t3code/commit/107c62505bbaa56b1f7d2c9cdd73a5fd66fc0831)

```json
{
  "runId": "run:thread:thread%3Api-evidence-D:ordinal:1",
  "status": "failed",
  "title": "Usage limit reached",
  "persistedAt": "2026-11-09T09:29:32.375Z",
  "failure": {
    "class": "usage_limit",
    "message": "You have hit your ChatGPT usage limit (plus plan). Try again in ~1 min.",
    "code": null,
    "retryable": null,
    "resetAt": "2026-11-09T09:31:02.032Z"
  },
  "retry": null
}
```

Runs:
```json
[
  {
    "id": "run:thread:thread%3Api-evidence-D:ordinal:1",
    "ordinal": 1,
    "status": "failed",
    "requestedAt": "2026-11-09T09:29:30.533Z",
    "startedAt": "2026-11-09T09:29:31.524Z",
    "completedAt": "2026-11-09T09:29:32.434Z"
  },
  {
    "id": "run:thread:thread%3Api-evidence-D:ordinal:2",
    "ordinal": 2,
    "status": "completed",
    "requestedAt": "2026-11-09T09:31:02.212Z",
    "startedAt": "2026-11-09T09:31:02.274Z",
    "completedAt": "2026-11-09T09:31:02.728Z"
  }
]
```

Recovery immediately after failure:
```json
{
  "requestId": "limit-arm:thread:pi-evidence-D:run:thread:thread%3Api-evidence-D:ordinal:1:1794216662032",
  "runId": "run:thread:thread%3Api-evidence-D:ordinal:1",
  "resetAt": "2026-11-09T09:31:02.032Z",
  "autoResume": true,
  "snooze": false
}
```

Messages after deadline:
```json
[
  {
    "role": "user",
    "text": "Reply with the synthetic recovery confirmation.",
    "createdBy": "user",
    "creationSource": "web",
    "runId": "run:thread:thread%3Api-evidence-D:ordinal:1",
    "createdAt": "2026-11-09T09:29:30.533Z"
  },
  {
    "role": "user",
    "text": "Continue where you left off.",
    "createdBy": "agent",
    "creationSource": "server",
    "runId": "run:thread:thread%3Api-evidence-D:ordinal:2",
    "createdAt": "2026-11-09T09:31:02.212Z"
  },
  {
    "role": "assistant",
    "text": "Synthetic recovery succeeded. The thread resumed automatically after the usage limit reset.",
    "createdBy": "agent",
    "creationSource": "provider",
    "runId": "run:thread:thread%3Api-evidence-D:ordinal:2",
    "createdAt": "2026-11-09T09:31:02.629Z"
  }
]
```

## R

### Before — [c6ca605630](https://git.cafe/pingdotgg/t3code/commit/c6ca6056309904f89b90b6055d797973be0a0939)

```json
{
  "runId": "run:thread:thread%3Api-evidence-R:ordinal:1",
  "status": "failed",
  "title": "Provider error",
  "persistedAt": "2026-11-09T09:27:09.239Z",
  "failure": {
    "class": "provider_error",
    "message": "Codex error: The usage limit has been reached",
    "code": null,
    "retryable": false,
    "resetAt": null
  },
  "retry": {
    "attempt": 1,
    "maxAttempts": 1,
    "retryDelayMs": 100
  }
}
```

Runs:
```json
[
  {
    "id": "run:thread:thread%3Api-evidence-R:ordinal:1",
    "ordinal": 1,
    "status": "failed",
    "requestedAt": "2026-11-09T09:27:08.108Z",
    "startedAt": "2026-11-09T09:27:08.840Z",
    "completedAt": "2026-11-09T09:27:09.263Z"
  }
]
```

### After — [107c62505b](https://git.cafe/pingdotgg/t3code/commit/107c62505bbaa56b1f7d2c9cdd73a5fd66fc0831)

```json
{
  "runId": "run:thread:thread%3Api-evidence-R:ordinal:1",
  "status": "failed",
  "title": "Usage limit reached",
  "persistedAt": "2026-11-09T09:27:09.155Z",
  "failure": {
    "class": "usage_limit",
    "message": "Codex error: The usage limit has been reached",
    "code": null,
    "retryable": false,
    "resetAt": null
  },
  "retry": {
    "attempt": 1,
    "maxAttempts": 1,
    "retryDelayMs": 100
  }
}
```

Runs:
```json
[
  {
    "id": "run:thread:thread%3Api-evidence-R:ordinal:1",
    "ordinal": 1,
    "status": "failed",
    "requestedAt": "2026-11-09T09:27:08.075Z",
    "startedAt": "2026-11-09T09:27:08.769Z",
    "completedAt": "2026-11-09T09:27:09.186Z"
  }
]
```
