Skip to content

fix/sandbox child thread blank - #48

Merged
OmarAlex24 merged 1 commit into
feat/sandbox-environmentsfrom
fix/sandbox-child-thread-blank
Nov 13, 2026
Merged

OmarAlex24 merged 1 commit into
feat/sandbox-environmentsfrom
fix/sandbox-child-thread-blank

Conversation

@OmarAlex24

@OmarAlex24 OmarAlex24 commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

Problem

Opening a sandbox chat's subagent or delegated task (by link or from Lineage) showed a blank pane.

Change

An idle child thread is not in its environment's list, so its route waits on the thread's own detail, and that wait sat behind the list's live gate: while a sandbox's connection was reconnecting the child stayed loading, and ThreadRouteView rendered nothing for loading, a load error or a missing thread.

  • An unlisted thread whose detail has arrived opens once its environment's list has loaded, without waiting for that list to be live. On a cold open (no list yet) it still waits, so the sidebar and its filters can judge the thread first.
  • The pane now says "Opening thread…" and why, the load error, or "Thread not found" instead of nothing.
  • isThreadRoutePathname decodes path segments, so ?prompt links work on threads whose ids hold : or %.

Scope and approval

Requested by the fork owner in a T3 Code session, after installing stack pingdotgg#43. Part of stack pingdotgg#52 on feat/sandbox-environments.

Verification

  • threadRoutes.test.ts: a loaded child opens while its list reconnects, a cold open stays loading, and pathnames with encoded ids match; each row failed on the base
  • Whole stack: vp run check:changed omar/feat/sandbox-environments passes format, lint, knip, typecheck, 17 test files (144 tests) and react compiler
  • ChatView.sandboxLaunch and ChatView.sandboxLaunchReleased browser tests pass 6/6 runs at this layer and at the top

Not yet run in a real client.

Model and harness: Claude Opus 5.5 (implementation subagents at high effort, coordinated by Claude Opus 5.5) in Claude Code, running in T3 Code.

🤖 Generated with Claude Code

An idle subagent or delegated task is left out of its environment's shell,
so its route waits on the thread's own detail. That wait sat behind the
shell's live gate, so while a sandbox's shell was still reconnecting the
child stayed "loading" even with its detail loaded, and ThreadRouteView
rendered nothing for loading, a stuck load error, or a missing thread.

- An unlisted thread whose detail has arrived opens without waiting for a
  live shell.
- The route pane now says "Opening thread…", why it is waiting, the load
  error, or "Thread not found" instead of rendering nothing.
- isThreadRoutePathname decodes the router's pathname segments, so a
  ?prompt link works on threads whose ids hold ":" or "%".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@OmarAlex24
OmarAlex24 added this pull request to stack #52 November 13, 2026 15:43
@OmarAlex24
OmarAlex24 merged commit 5b5b1b5 into feat/sandbox-environments Nov 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant