Skip to content

fix(server): handle missing thread workspaces safely - #222

Merged
incognitojam merged 3 commits into
mainfrom
t3code/diagnose-runtime-stream-failure
Aug 20, 2026
Merged

fix(server): handle missing thread workspaces safely#222
incognitojam merged 3 commits into
mainfrom
t3code/diagnose-runtime-stream-failure

Conversation

@incognitojam

Copy link
Copy Markdown
Collaborator

A thread whose workspace had been moved or deleted would reach provider startup, produce a provider-specific failure, and could replace the actionable error with a generic stream failure.

This validates the resolved project or worktree path before any provider session starts, reports a controlled actionable error through the existing session UI, and keeps raw Claude result failures in native logs while exposing only a bounded generic message to clients.

Verification

  • vp test run apps/server/src/orchestration/Layers/ProviderCommandReactor.test.ts apps/server/src/provider/Layers/ClaudeAdapter.test.ts — 121 tests passed
  • vp run --filter t3 typecheck — passed
  • git diff --check origin/main...HEAD — passed

Written by an agent (T3 Code, gpt-5.6-sol).

@github-actions github-actions Bot added size:L and removed size:M labels Aug 20, 2026
@incognitojam
incognitojam merged commit 39e725e into main Aug 20, 2026
8 of 9 checks passed
@incognitojam
incognitojam deleted the t3code/diagnose-runtime-stream-failure branch August 20, 2026 11:21
incognitojam added a commit that referenced this pull request Aug 20, 2026
> [!NOTE]
> TL;DR: Add ledger coverage for the seven substantive fork capabilities
merged after the latest nightly promotion, so the next upstream rebase
reports their semantic overlap before release.

The fork feature ledger did not yet cover draft pull request status,
missing-workspace startup guards, attention-state sidebar prominence,
provider subscription limits, active-terminal close confirmation, fork
analytics identity, or arbitrary file attachments. This records the
behavioral invariants, implementation and upstream watch paths, focused
test evidence, and retirement criteria for PRs #219, #222, #224, #225,
#226, #227, and #228.

Draft status and terminal close confirmation cite their partial upstream
counterparts in [upstream
pingdotgg#7148](pingdotgg#7148) and [upstream
pingdotgg#7592](pingdotgg#7592). The smaller #220,
#221, and #223 fixes intentionally remain patch-stack-only under the
ledger's incremental coverage policy.

The ledger mutation tests now select fixtures by the property they need
instead of assuming the alphabetically first capability has multiple PRs
and an unassessed upstream status.

Verification:

- `vp run --filter @t3tools/scripts ledger:check`
- `vp test run scripts/fork-feature-ledger.test.ts
scripts/generate-fork-features-summary.test.ts` — 34 tests passed
- `vp check .github/fork-features.yml
scripts/fork-feature-ledger.test.ts`

---
Written by an agent (T3 Code, gpt-5.6-sol).
yngatech-nightly Bot pushed a commit that referenced this pull request Aug 20, 2026
A thread whose workspace had been moved or deleted would reach provider
startup, produce a provider-specific failure, and could replace the
actionable error with a generic stream failure.

This validates the resolved project or worktree path before any provider
session starts, reports a controlled actionable error through the
existing session UI, and keeps raw Claude result failures in native logs
while exposing only a bounded generic message to clients.

## Verification

- `vp test run
apps/server/src/orchestration/Layers/ProviderCommandReactor.test.ts
apps/server/src/provider/Layers/ClaudeAdapter.test.ts` — 121 tests
passed
- `vp run --filter t3 typecheck` — passed
- `git diff --check origin/main...HEAD` — passed

---
Written by an agent (T3 Code, gpt-5.6-sol).
yngatech-nightly Bot pushed a commit that referenced this pull request Aug 20, 2026
> [!NOTE]
> TL;DR: Add ledger coverage for the seven substantive fork capabilities
merged after the latest nightly promotion, so the next upstream rebase
reports their semantic overlap before release.

The fork feature ledger did not yet cover draft pull request status,
missing-workspace startup guards, attention-state sidebar prominence,
provider subscription limits, active-terminal close confirmation, fork
analytics identity, or arbitrary file attachments. This records the
behavioral invariants, implementation and upstream watch paths, focused
test evidence, and retirement criteria for PRs #219, #222, #224, #225,
#226, #227, and #228.

Draft status and terminal close confirmation cite their partial upstream
counterparts in [upstream
pingdotgg#7148](pingdotgg#7148) and [upstream
pingdotgg#7592](pingdotgg#7592). The smaller #220,
#221, and #223 fixes intentionally remain patch-stack-only under the
ledger's incremental coverage policy.

The ledger mutation tests now select fixtures by the property they need
instead of assuming the alphabetically first capability has multiple PRs
and an unassessed upstream status.

Verification:

- `vp run --filter @t3tools/scripts ledger:check`
- `vp test run scripts/fork-feature-ledger.test.ts
scripts/generate-fork-features-summary.test.ts` — 34 tests passed
- `vp check .github/fork-features.yml
scripts/fork-feature-ledger.test.ts`

---
Written by an agent (T3 Code, gpt-5.6-sol).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant