38 KiB
Daemon Startup Sequence Analysis - 2026-05-27
Source log: log.txt at repository root.
Scope: current sliced startup log, starting at daemon worker startup and ending after workspace registry reconciliation and the first OpenCode heartbeat.
This report is descriptive only. It does not propose optimizations.
Executive Summary
The daemon becomes ready quickly, then does a heavy post-listen startup pass driven by reconnecting clients and workspace/app hydration.
- Worker start:
16:03:46.678, line 1. - Server listening:
16:03:48.285, line 47, elapsed602ms. - First client hello:
16:03:50.285, line 66. - Workspace registries reconciled:
16:04:33.666, line 1777, elapsed45983ms.
The startup shape is therefore:
- Daemon listen readiness: about
0.6s. - Client reconnect plus workspace/app/provider hydration: about
45s. - No git commands after workspace registry reconciliation in this slice.
Method
I parsed structured trace lines from log.txt, especially:
Git command closedagent.session.inboundagent.session.outboundws_slow_request- provider snapshot warnings
- provider resume events
Important limitation: git command logs do not carry a websocket request id, so per-request attribution is inferred from timing and server code paths. Per-workspace git counts, command shapes, durations, and failures are exact for this log.
Relevant code paths checked:
packages/server/src/server/session.tsfetch_workspaces_requestcallssyncWorkspaceGitObservers(payload.entries).checkout_status_requestcallsworkspaceGitService.getSnapshot(resolvedCwd).checkout_pr_status_requestcallsworkspaceGitService.getSnapshot(cwd).
packages/server/src/server/workspace-git-service.ts- checkout snapshot/root resolution uses
git rev-parse --show-toplevel. - snapshot refresh collects dirty state, upstream/ahead/behind, ref existence, and base divergence.
- checkout snapshot/root resolution uses
packages/app/src/contexts/session-context.tsx- initial workspace hydration calls
client.fetchWorkspaces({ sort: activity_at desc, subscribe, page limit 200 }).
- initial workspace hydration calls
packages/app/src/hooks/use-sidebar-workspaces-list.ts- sidebar workspace refresh also calls
client.fetchWorkspaces({ sort: activity_at desc, page limit 200 }).
- sidebar workspace refresh also calls
Startup Timeline
| time | line | event |
|---|---|---|
16:03:46.678 |
1 | DaemonRunner starts daemon worker |
16:03:47.683 |
4 | worker spawned |
16:03:47.684 |
6 | daemon keypair loaded |
16:03:48.281 |
44 | bootstrap complete, ready to listen |
16:03:48.285 |
47 | server listening on 0.0.0.0:6767 |
16:03:50.274 |
60 | first websocket awaiting hello |
16:03:50.285 |
66 | first client connected via hello |
16:04:22.466 |
987 | OpenCode provider snapshot timeout for /Users/moboudra/dev/paseo |
16:04:22.482 |
1002 | OpenCode provider snapshot timeout for /Users/moboudra |
16:04:24.183 |
1201 | OpenCode provider subscribe starts |
16:04:24.183 |
1202 | OpenCode provider subscribe ready |
16:04:24.306 |
1214 | OpenCode server connected event |
16:04:25.933 |
1321 | OpenCode agent resumed from persistence |
16:04:33.666 |
1777 | workspace registries reconciled |
16:04:34.197 |
1783 | OpenCode heartbeat |
16:04:44.200 |
1789 | OpenCode heartbeat |
Git Command Totals
Total git commands in the sliced startup: 444.
| phase | commands | failures | summed process time |
|---|---|---|---|
| daemon bootstrap before listen | 13 | 4 | 445ms |
| post-listen before first client | 1 | 0 | 2020ms |
| client reconnect + reconcile | 430 | 71 | 120813ms |
| after reconcile | 0 | 0 | 0ms |
| total | 444 | 75 | 123278ms |
Summed process time is not wall-clock time. Many commands overlap.
Git Command Categories
| category | commands | failures | summed process time | max duration |
|---|---|---|---|---|
ahead/behind: rev-list --count ... |
115 | 30 | 35815ms | 1557ms |
refs: show-ref --verify --quiet ... |
86 | 2 | 14680ms | 1303ms |
upstream config: config --get branch.* |
85 | 13 | 26437ms | 1624ms |
root detection: rev-parse --show-toplevel |
80 | 30 | 24164ms | 1426ms |
dirty status: status --porcelain |
50 | 0 | 12670ms | 2020ms |
base divergence: rev-list --left-right --count ... |
28 | 0 | 9512ms | 1085ms |
What those categories mean in the app:
- Root detection: determine whether a cwd is inside a git repo and find its checkout root.
- Dirty status: show dirty/clean workspace state.
- Upstream config and ahead/behind: show branch tracking and sync state.
- Ref existence and base divergence: compare checkout branch against candidate base refs for checkout/PR status.
Per-Workspace Git Work
Columns:
phase:pre/warm/reconnect/aftercats:root/dirty/upstream/ahead/refs/base/othertotal_ms: summed process time for that workspace
| workspace | cmds | fail | phase | cats | total_ms | max_ms | window | failing command shapes |
|---|---|---|---|---|---|---|---|---|
~/.paseo/worktrees/1luy0po7/fix-compaction-cancel-loading |
33 | 9 | 0/0/33/0 |
3/3/3/9/12/3/0 |
8255 | 1460 | 16:03:52.908-16:04:24.019 |
3x config --get branch.fix-compaction-cancel-loading.remote; 3x rev-list --count fix-compaction-cancel-loading..origin/fix-compaction-cancel-loading; 3x rev-list --count origin/fix-compaction-cancel-loading..fix-compaction-cancel-loading |
~/.paseo/worktrees/1luy0po7/hopeful-eel |
33 | 9 | 0/0/33/0 |
3/3/3/9/12/3/0 |
8468 | 1544 | 16:03:53.245-16:04:27.334 |
3x config --get branch.feat/markdown-annotations.remote; 3x rev-list --count feat/markdown-annotations..origin/feat/markdown-annotations; 3x rev-list --count origin/feat/markdown-annotations..feat/markdown-annotations |
~/.paseo/worktrees/1luy0po7/merry-ladybug |
33 | 9 | 0/0/33/0 |
3/3/3/9/12/3/0 |
7154 | 1099 | 16:03:53.696-16:04:29.644 |
3x config --get branch.feat/mcp-configuration.remote; 3x rev-list --count feat/mcp-configuration..origin/feat/mcp-configuration; 3x rev-list --count origin/feat/mcp-configuration..feat/mcp-configuration |
~/dev/paseo |
30 | 0 | 2/0/28/0 |
5/5/10/10/0/0/0 |
7457 | 1624 | 16:03:48.171-16:04:27.284 |
|
~/.paseo/worktrees/0vpo9h4b/dazzling-duck |
27 | 0 | 0/0/27/0 |
3/3/6/6/6/3/0 |
7617 | 1269 | 16:03:51.918-16:04:23.971 |
|
~/.paseo/worktrees/1luy0po7/epic-paseo-client-sdk |
27 | 0 | 0/0/27/0 |
3/3/6/6/6/3/0 |
7428 | 1426 | 16:03:52.445-16:04:23.991 |
|
~/.paseo/worktrees/1luy0po7/fix-provider-diagnostic-binary-resolution |
27 | 0 | 0/0/27/0 |
3/3/6/6/6/3/0 |
7764 | 1091 | 16:03:52.681-16:04:23.971 |
|
~/dev/emdash |
22 | 6 | 0/0/22/0 |
2/2/2/6/8/2/0 |
3031 | 453 | 16:04:27.351-16:04:29.583 |
2x config --get branch.heads/main.remote; 2x rev-list --count heads/main..origin/heads/main; 2x rev-list --count origin/heads/main..heads/main |
~/dev/opencode |
22 | 4 | 0/0/22/0 |
2/2/2/6/8/2/0 |
2279 | 313 | 16:04:24.058-16:04:24.970 |
2x rev-list --count ecosystem-paseo..origin/ecosystem-paseo; 2x rev-list --count origin/ecosystem-paseo..ecosystem-paseo |
~/.paseo/worktrees/1luy0po7/integration-session-mcp-command-stack |
18 | 0 | 0/0/18/0 |
3/3/6/6/0/0/0 |
7467 | 1242 | 16:03:53.781-16:04:23.971 |
|
~/dev/blankpage/editor |
18 | 0 | 2/0/16/0 |
3/3/6/6/0/0/0 |
2418 | 520 | 16:03:48.174-16:04:26.411 |
|
~/dev/konbert/web |
18 | 0 | 1/1/16/0 |
3/3/6/6/0/0/0 |
7324 | 2020 | 16:03:48.190-16:04:23.685 |
|
~/dev/openchamber |
12 | 0 | 0/0/12/0 |
2/2/4/4/0/0/0 |
1554 | 336 | 16:04:27.399-16:04:29.616 |
|
~/dev/superset |
12 | 0 | 0/0/12/0 |
2/2/4/4/0/0/0 |
1019 | 215 | 16:04:27.341-16:04:29.617 |
|
~/dev/t3code |
12 | 0 | 0/0/12/0 |
2/2/4/4/0/0/0 |
2761 | 588 | 16:04:27.356-16:04:29.603 |
|
~/.paseo/worktrees/0vpo9h4b/breezy-toad |
11 | 5 | 0/0/11/0 |
1/1/1/3/4/1/0 |
6465 | 1290 | 16:03:51.307-16:04:18.112 |
1x config --get branch.fix/user-delete-dark-mode.remote; 1x rev-list --count fix/user-delete-dark-mode..origin/fix/user-delete-dark-mode; 1x rev-list --count origin/fix/user-delete-dark-mode..fix/user-delete-dark-mode; 2x show-ref --verify --quiet refs/remotes/origin/my-branch |
~/.paseo/worktrees/1luy0po7/fix-archive-worktree-session-history |
11 | 3 | 0/0/11/0 |
1/1/1/3/4/1/0 |
4303 | 757 | 16:03:52.539-16:04:19.011 |
1x config --get branch.fix-archive-worktree-session-history.remote; 1x rev-list --count fix-archive-worktree-session-history..origin/fix-archive-worktree-session-history; 1x rev-list --count origin/fix-archive-worktree-session-history..fix-archive-worktree-session-history |
~/.paseo/worktrees/0vpo9h4b/codex-github-mention-implement-db-garbage |
9 | 0 | 0/0/9/0 |
1/1/2/2/2/1/0 |
4986 | 1005 | 16:03:51.261-16:04:16.878 |
|
~/.paseo/worktrees/1luy0po7/feat-find-in-pane |
9 | 0 | 0/0/9/0 |
1/1/2/2/2/1/0 |
5273 | 1130 | 16:03:52.391-16:04:17.682 |
|
~/.paseo/worktrees/1luy0po7/feat-voice-runtime-on-demand |
9 | 0 | 0/0/9/0 |
1/1/2/2/2/1/0 |
5176 | 839 | 16:03:52.110-16:04:18.254 |
|
~/.paseo/worktrees/steering-policy-refactor-detached |
9 | 0 | 0/0/9/0 |
1/1/2/2/2/1/0 |
5993 | 1243 | 16:03:53.984-16:04:17.673 |
|
~/dev/faro/main |
6 | 0 | 2/0/4/0 |
1/1/2/2/0/0/0 |
4964 | 1603 | 16:03:48.168-16:04:03.748 |
|
~/dev/paseo-cloud |
6 | 0 | 2/0/4/0 |
1/1/2/2/0/0/0 |
2123 | 1154 | 16:03:48.159-16:03:56.377 |
|
~/dev/assistant |
3 | 3 | 1/0/2/0 |
3/0/0/0/0/0/0 |
85 | 29 | 16:03:48.165-16:04:24.048 |
3x rev-parse --show-toplevel |
~/dev/benchmark/dashboard-2026-05-25/review |
3 | 3 | 1/0/2/0 |
3/0/0/0/0/0/0 |
224 | 105 | 16:03:48.197-16:04:26.560 |
3x rev-parse --show-toplevel |
~/dev/research/orchestrator-worker |
3 | 3 | 1/0/2/0 |
3/0/0/0/0/0/0 |
285 | 144 | 16:03:48.194-16:04:26.575 |
3x rev-parse --show-toplevel |
/tmp |
2 | 2 | 0/0/2/0 |
2/0/0/0/0/0/0 |
113 | 77 | 16:04:27.388-16:04:27.471 |
2x rev-parse --show-toplevel |
~/dev |
2 | 2 | 0/0/2/0 |
2/0/0/0/0/0/0 |
86 | 58 | 16:04:27.384-16:04:27.457 |
2x rev-parse --show-toplevel |
~/dev/benchmark/dashboard-2026-05-25/01-claude-opus |
2 | 2 | 0/0/2/0 |
2/0/0/0/0/0/0 |
216 | 185 | 16:04:26.525-16:04:26.543 |
2x rev-parse --show-toplevel |
~/dev/benchmark/dashboard-2026-05-25/02-codex-gpt55 |
2 | 2 | 0/0/2/0 |
2/0/0/0/0/0/0 |
98 | 68 | 16:04:26.353-16:04:26.554 |
2x rev-parse --show-toplevel |
~/dev/benchmark/dashboard-2026-05-25/03-opencode-zai-glm51 |
2 | 2 | 0/0/2/0 |
2/0/0/0/0/0/0 |
209 | 158 | 16:04:26.512-16:04:26.576 |
2x rev-parse --show-toplevel |
~/dev/benchmark/dashboard-2026-05-25/04-opencode-zen-minimax27 |
2 | 2 | 0/0/2/0 |
2/0/0/0/0/0/0 |
148 | 101 | 16:04:26.431-16:04:26.549 |
2x rev-parse --show-toplevel |
~/dev/benchmark/dashboard-2026-05-25/05-opencode-zen-kimi26 |
2 | 2 | 0/0/2/0 |
2/0/0/0/0/0/0 |
231 | 172 | 16:04:26.517-16:04:26.577 |
2x rev-parse --show-toplevel |
~/dev/benchmark/dashboard-2026-05-25/06-opencode-or-deepseek4pro |
2 | 2 | 0/0/2/0 |
2/0/0/0/0/0/0 |
93 | 73 | 16:04:27.365-16:04:27.380 |
2x rev-parse --show-toplevel |
~/dev/benchmark/dashboard-2026-05-25/07-opencode-zen-gemini35flash |
2 | 2 | 0/0/2/0 |
2/0/0/0/0/0/0 |
78 | 66 | 16:04:27.363-16:04:27.375 |
2x rev-parse --show-toplevel |
~/dev/benchmark/dashboard-2026-05-25/08-opencode-zen-gpt55 |
2 | 2 | 0/0/2/0 |
2/0/0/0/0/0/0 |
120 | 65 | 16:04:27.359-16:04:27.430 |
2x rev-parse --show-toplevel |
~/dev/assistant/game |
1 | 1 | 1/0/0/0 |
1/0/0/0/0/0/0 |
13 | 13 | 16:03:48.155-16:03:48.155 |
1x rev-parse --show-toplevel |
Git Failure Shape
There were 75 nonzero git exits.
Most failures were not timeouts. They were expected probe failures:
- Non-repo checks:
rev-parse --show-toplevelfails for paths that are not git repositories. - Missing upstream config:
config --get branch.<branch>.remotefails for branches without configured upstream. - Missing remote branch graph:
rev-list --count <branch>..origin/<branch>fails when the remote branch/ref does not exist. - Missing ref checks:
show-ref --verify --quiet refs/remotes/origin/my-branchfails when a candidate ref does not exist.
The ~/dev/opencode git failures are branch graph probes for ecosystem-paseo versus origin/ecosystem-paseo, not OpenCode provider startup failures.
Inbound Client Work
Inbound session messages during the startup window:
| request | count |
|---|---|
client_heartbeat |
19 |
checkout_pr_status_request |
18 |
fetch_agents_request |
11 |
fetch_workspaces_request |
9 |
get_providers_snapshot_request |
9 |
project_icon_request |
9 |
fetch_agent_timeline_request |
7 |
clear_agent_attention |
6 |
list_terminals_request |
5 |
subscribe_terminals_request |
5 |
list_available_editors_request |
2 |
subscribe_checkout_diff_request |
2 |
checkout_status_request |
1 |
fetch_agent_request |
1 |
file_explorer_request |
1 |
read_project_config_request |
1 |
workspace_setup_status_request |
1 |
Inbound by client:
| client | count | top work |
|---|---|---|
Electron cid_d555..., origin http://localhost:8082 |
68 | checkout_pr_status_request:18, project_icon_request:9, clear_agent_attention:6, fetch_agent_timeline_request:4, fetch_workspaces_request:3, fetch_agents_request:3, get_providers_snapshot_request:3 |
HeadlessChrome cid_d39..., origin http://localhost:8081 |
13 | client_heartbeat:4, fetch_workspaces_request:2, fetch_agents_request:2, get_providers_snapshot_request:2 |
local web cid_a2b..., origin http://localhost:6767 |
13 | client_heartbeat:4, fetch_workspaces_request:2, fetch_agents_request:2, get_providers_snapshot_request:2 |
Android cid_24c..., origin http://10.0.2.2:6767 |
11 | client_heartbeat:2, fetch_workspaces_request:2, fetch_agents_request:2, get_providers_snapshot_request:2 |
cid_70d..., host 0.0.0.0:6767 |
2 | fetch_agents_request:2 |
Outbound Client Work
Outbound session messages during the startup window:
| message | count |
|---|---|
providers_snapshot_update |
129 |
workspace_update |
81 |
checkout_status_update |
76 |
agent_update |
47 |
checkout_pr_status_response |
18 |
fetch_agents_response |
11 |
fetch_workspaces_response |
9 |
get_providers_snapshot_response |
9 |
project_icon_response |
9 |
fetch_agent_timeline_response |
7 |
list_terminals_response |
5 |
terminals_changed |
5 |
list_available_editors_response |
2 |
subscribe_checkout_diff_response |
2 |
checkout_status_response |
1 |
fetch_agent_response |
1 |
file_explorer_response |
1 |
read_project_config_response |
1 |
workspace_setup_status_response |
1 |
Provider snapshot updates were large and repeated:
- Around lines 982-986: five
providers_snapshot_updatemessages, each215932bytes. - Around lines 997-1001: five
providers_snapshot_updatemessages, each215898bytes. - Around lines 1250-1254: five
providers_snapshot_updatemessages, each414735bytes.
Slow Requests
Slow requests logged during startup:
| time | request | duration | client | line |
|---|---|---|---|---|
16:04:29.702 |
fetch_agent_timeline_request |
39372ms | HeadlessChrome | 1767 |
16:04:29.702 |
fetch_agent_timeline_request |
39212ms | Electron | 1768 |
16:04:29.702 |
fetch_agent_timeline_request |
38914ms | local web | 1769 |
16:04:33.665 |
checkout_pr_status_request |
20181ms | Electron | 1776 |
16:04:08.109 |
subscribe_checkout_diff_request |
17618ms | Electron | 565 |
16:04:29.702 |
fetch_agent_timeline_request |
16216ms | Electron | 1770 |
16:04:06.624 |
fetch_agent_timeline_request |
16134ms | Electron | 524 |
16:04:29.396 |
checkout_pr_status_request |
15911ms | Electron | 1671 |
16:04:29.256 |
checkout_pr_status_request |
15772ms | Electron | 1651 |
16:04:29.149 |
checkout_pr_status_request |
15665ms | Electron | 1638 |
16:04:29.054 |
checkout_pr_status_request |
15569ms | Electron | 1628 |
16:04:28.932 |
checkout_pr_status_request |
15448ms | Electron | 1611 |
16:04:28.809 |
checkout_pr_status_request |
15324ms | Electron | 1601 |
16:04:28.672 |
checkout_pr_status_request |
15188ms | Electron | 1582 |
16:04:28.555 |
checkout_pr_status_request |
15071ms | Electron | 1567 |
16:04:28.421 |
checkout_pr_status_request |
14936ms | Electron | 1556 |
16:04:28.323 |
checkout_pr_status_request |
14839ms | Electron | 1549 |
16:04:28.324 |
checkout_status_request |
14839ms | Electron | 1550 |
16:04:28.189 |
checkout_pr_status_request |
14705ms | Electron | 1536 |
16:04:29.634 |
fetch_agents_request |
14590ms | 0.0.0.0:6767 client |
1759 |
16:04:28.006 |
checkout_pr_status_request |
14522ms | Electron | 1526 |
16:04:27.628 |
checkout_pr_status_request |
14143ms | Electron | 1496 |
16:04:27.061 |
checkout_pr_status_request |
13576ms | Electron | 1405 |
16:04:29.645 |
fetch_agents_request |
13384ms | 0.0.0.0:6767 client |
1762 |
16:04:02.812 |
fetch_agent_timeline_request |
12321ms | Electron | 440 |
16:04:25.740 |
checkout_pr_status_request |
12256ms | Electron | 1309 |
16:04:25.352 |
checkout_pr_status_request |
11867ms | Electron | 1296 |
16:04:04.217 |
fetch_agent_timeline_request |
11751ms | Android | 462 |
16:04:25.155 |
checkout_pr_status_request |
11671ms | Electron | 1284 |
16:04:23.196 |
fetch_agent_request |
9711ms | Electron | 1070 |
16:04:17.563 |
project_icon_request |
4079ms | Electron | 877 |
16:03:53.022 |
list_available_editors_request |
2533ms | Electron | 254 |
16:04:15.703 |
project_icon_request |
2218ms | Electron | 824 |
16:04:15.696 |
project_icon_request |
2211ms | Electron | 822 |
16:04:15.694 |
project_icon_request |
2209ms | Electron | 820 |
16:04:15.103 |
file_explorer_request |
1618ms | Electron | 806 |
16:04:14.107 |
list_terminals_request |
621ms | Electron | 764 |
16:03:50.945 |
list_terminals_request |
614ms | HeadlessChrome | 156 |
The checkout PR requests are especially clustered: 18 Electron checkout_pr_status_request messages arrive together at 16:04:13.484, lines 699-716. Their slow-request completions drain over the next ~20s, with inflightRequests dropping from 20 to 0.
Provider Findings
OpenCode
OpenCode provider snapshot refresh had two timeouts:
| time | line | cwd | error |
|---|---|---|---|
16:04:22.466 |
987 | /Users/moboudra/dev/paseo |
Timed out refreshing OpenCode after 30000ms |
16:04:22.482 |
1002 | /Users/moboudra |
Timed out refreshing OpenCode after 30000ms |
These are provider snapshot failures, not OpenCode agent resume failures.
The persisted OpenCode agent did resume:
| time | line | event |
|---|---|---|
16:04:24.183 |
1201 | provider.opencode.subscribe.start |
16:04:24.183 |
1202 | provider.opencode.subscribe.ready |
16:04:24.306 |
1214 | raw event server.connected |
16:04:25.933 |
1321 | Agent resumed from persistence, provider opencode |
16:04:34.197 |
1783 | raw event server.heartbeat |
16:04:44.200 |
1789 | raw event server.heartbeat |
There are no provider.opencode.subscribe.error or OpenCode agent fatal errors in this slice.
OpenCode-related git:
~/dev/opencodehad 22 git commands.- Four failed.
- The failed commands were branch graph probes for
ecosystem-paseoversusorigin/ecosystem-paseo. - Those failures are git state/probe failures, not OpenCode provider process failures.
Codex
Codex provider startup observations:
provider.codex.spawnappears multiple times for provider snapshot/config discovery.- A persisted Codex agent resumes successfully at
16:04:06.357, line 518. - Debug logs show failed reads of Codex saved config defaults, but these are debug-level and do not become provider startup warnings/errors in this slice.
- There are unhandled Codex trace event types such as remote-control/status and thread/goal status, but no Codex timeout or fatal provider startup failure in this slice.
Claude
Claude agents resume successfully:
| time | line | client | agent |
|---|---|---|---|
16:04:02.540 |
434 | Electron | f884552a-1383-4dba-8583-7ae0b6a62353 |
16:04:03.772 |
456 | Android | 0c89a057-05f2-4e23-9895-84c8e1952310 |
What Work The App Asked For
The startup work visible in the app/server protocol is:
-
Workspace list/sidebar hydration:
fetch_workspaces_request, 9 total.- This asks for the workspace list sorted by
activity_at desc, usually page limit 200. - On the server this triggers workspace git observer sync and workspace update flushing.
-
Agent list and agent detail hydration:
fetch_agents_request, 11 total.fetch_agent_request, 1 total.fetch_agent_timeline_request, 7 total.- Timeline requests are among the slowest requests in this slice.
-
Checkout/PR status UI:
checkout_pr_status_request, 18 total, all Electron.checkout_status_request, 1 total.subscribe_checkout_diff_request, 2 total.- These correspond to git snapshot consumers and are clustered during Electron reconnect.
-
Provider/model/mode UI:
get_providers_snapshot_request, 9 total.providers_snapshot_update, 129 outbound updates.- OpenCode provider snapshot refresh times out twice during this flow.
-
Workspace chrome:
project_icon_request, 9 total.file_explorer_request, 1 total.
-
Terminal panel:
list_terminals_request, 5 total.subscribe_terminals_request, 5 total.terminals_changed, 5 outbound updates.
-
Attention state:
clear_agent_attention, 6 total.- Some failures appear while clearing attention for persisted agents, but these are not provider startup failures.
Concrete Waste-Looking Work, Without Optimizing Yet
The log shows repeated work in these exact forms:
- 444 git commands total, but only 14 complete before the first client hello. The rest are post-listen startup/client hydration work.
- Several workspaces get repeated full checkout snapshot patterns:
- three 33-command worktrees each get
3root checks,3dirty checks,3upstream config probes,9ahead/behind probes,12ref checks, and3base divergence checks. - three 27-command worktrees each get
3root checks,3dirty checks,6upstream config probes,6ahead/behind probes,6ref checks, and3base divergence checks. ~/dev/paseogets5root checks,5dirty checks,10upstream config probes, and10ahead/behind probes.
- three 33-command worktrees each get
- Electron sends 18
checkout_pr_status_requestmessages at the same timestamp, then they drain slowly over ~20s. - Provider snapshot updates are broadcast very frequently: 129 outbound
providers_snapshot_updatemessages, including large repeated payloads around 216KB and 415KB. - OpenCode snapshot refresh times out twice after 30s, but the actual OpenCode agent connection/resume succeeds.
Again, this section names repeated work observed in the startup. It does not claim which repetition should be removed.