feat(web): add live dream progress panel with adaptive polling#29
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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+useStaleQueueDetectionhookNote
The panel is intentionally lean because
/queue/statuscurrently 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.