Skip to content

feat(web): add live dream progress panel with adaptive polling#29

Merged
offendingcommit merged 4 commits into
mainfrom
feat/live-dream-progress
May 28, 2026
Merged

feat(web): add live dream progress panel with adaptive polling#29
offendingcommit merged 4 commits into
mainfrom
feat/live-dream-progress

Conversation

@offendingcommit
Copy link
Copy Markdown
Owner

Surfaces dream-queue progress with adaptive polling of /queue/status — 2.5s while work is active, backing off to 10s when idle — and warns when the queue appears stalled (>30 min).

  • DreamProgressPanel + useStaleQueueDetection hook
  • Unit tests covering polling cadence + stale detection
  • Screenshots + capture script

Note

The panel is intentionally lean because /queue/status currently exposes only aggregate counts; richer per-dream telemetry is tracked upstream at plastic-labs/honcho#724 (linked in the panel).

Credit

Cherry-picked from @BenSheridanEdwards's fork (feat/live-dream-progress), authorship preserved. Thanks Ben!

Verification

make check — lint + typecheck + tests pass locally.

Agents added 4 commits May 28, 2026 14:08
Watching dreams was a 5-15min black box. Now a dedicated
/workspaces/:id/queue route polls /v3/workspaces/:id/queue/status
every 2.5s while work is in-flight (10s when idle) and surfaces a
warning when in-progress work hasn't advanced the completed count
for >30 minutes.

The Honcho API only exposes aggregate counts (no observer/observed
pair, specialist phase, or token telemetry per work-unit), so the
panel links out to an upstream issue for those.

- queries: adaptive refetchInterval via TanStack Query callback form
- hooks/useStaleQueueDetection: client-side stall detection
- routes/workspaces_.\$workspaceId_.queue: dedicated live view
- routes/_dev.dream-progress: DEV-only showcase for screenshots
- WorkspaceDetail: new "Queue & dreams" nav card
- pickQueueRefetchInterval picks 2.5s when work is active, 10s otherwise
- useStaleQueueDetection only flags after 30 min without forward progress
- stall anchor resets when completed advances or all work finishes
Wires up the DEV-only /dream-progress showcase to a Playwright script
that captures idle/active/stalled variants for documentation. Also
regenerates routeTree.gen.ts to include the new queue + showcase routes
and folds in Biome formatter fixes.

Run `node scripts/screenshot-dream-progress.mjs` from packages/web with
the dev server up to refresh the images.
Filed the upstream feature request asking /queue/status to surface
per-work-unit observer/observed, specialist phase, and token telemetry.
Panel now links to the concrete tracking issue instead of a pre-filled
new-issue form. Re-captured the showcase screenshots so the visual
state matches.
@offendingcommit offendingcommit merged commit 7d2f720 into main May 28, 2026
2 checks passed
@offendingcommit offendingcommit deleted the feat/live-dream-progress branch May 28, 2026 19:32
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