Before submitting
Area
apps/web
Steps to reproduce
- Run
t3 serve on a Linux host and connect from the macOS desktop app through the relay.
- Start a new Claude thread and send the first message, on a host where the Claude CLI is slow to boot (in my case the host was heavily loaded).
- Watch the composer and timeline while the provider session starts.
Expected behavior
While the server is starting the provider session and waiting for the first provider event, the UI shows what it is doing (for example "Starting Claude…"), and the "Working for Xs" row appears as soon as the message is sent.
Actual behavior
For about 15s the composer only shows "Syncing messages...", which describes the client's thread-detail sync state, not the provider. After that, "Working for 16s" appears with the timer already partly elapsed. From the UI you can't tell whether the message was received, whether the connection is broken, or whether the agent is starting up.
Server trace for that turn (thread a81c39ea…, all times UTC):
08:08:44.270 orchestration.command.thread.turn.start 93ms
08:08:44.502 processTurnStartRequested 1879ms
08:08:45.024 ensureSessionForThread 1356ms
08:08:45.886 startSession (claudeAgent) 102ms
08:08:46.415 sendTurn 13900ms <- no user-visible state for this whole span
08:08:47.361 ws.rpc.orchestration.subscribeThread Interrupted (4.1s)
08:08:51.395 ws.rpc.orchestration.subscribeThread Interrupted (31.4s)
08:08:59.736 turn.started (first provider event)
Most of the 13.9s sendTurn is Claude CLI boot. On the same host, claude -p took 14.2s to emit system/init even with --strict-mcp-config. That part is environmental. The UI issue is that nothing tells the user this phase is happening, and the working indicator doesn't appear until it ends.
Impact
Nit: minor UX polish. Nothing breaks and no data is lost.
Version or commit
t3 v0.0.42
Environment
Server: Ubuntu, Linux 7.0.0, headless t3 serve (background service), 8 cores and 6.6 GB RAM, heavily loaded (load avg ~100). Client: macOS desktop app over the t3coderelay relay. Provider: Claude Code 2.1.283.
Workaround
None. You just have to wait.
Before submitting
Area
apps/web
Steps to reproduce
t3 serveon a Linux host and connect from the macOS desktop app through the relay.Expected behavior
While the server is starting the provider session and waiting for the first provider event, the UI shows what it is doing (for example "Starting Claude…"), and the "Working for Xs" row appears as soon as the message is sent.
Actual behavior
For about 15s the composer only shows "Syncing messages...", which describes the client's thread-detail sync state, not the provider. After that, "Working for 16s" appears with the timer already partly elapsed. From the UI you can't tell whether the message was received, whether the connection is broken, or whether the agent is starting up.
Server trace for that turn (thread
a81c39ea…, all times UTC):Most of the 13.9s
sendTurnis Claude CLI boot. On the same host,claude -ptook 14.2s to emitsystem/initeven with--strict-mcp-config. That part is environmental. The UI issue is that nothing tells the user this phase is happening, and the working indicator doesn't appear until it ends.Impact
Nit: minor UX polish. Nothing breaks and no data is lost.
Version or commit
t3 v0.0.42
Environment
Server: Ubuntu, Linux 7.0.0, headless
t3 serve(background service), 8 cores and 6.6 GB RAM, heavily loaded (load avg ~100). Client: macOS desktop app over the t3coderelay relay. Provider: Claude Code 2.1.283.Workaround
None. You just have to wait.