feat(dashboard): search, sort, and live stage progress on project cards - #56
Closed
PeerapolSelanon wants to merge 7 commits into
Closed
PeerapolSelanon wants to merge 7 commits into
PeerapolSelanon wants to merge 7 commits into
Conversation
…ct cards Projects page gets a search box (name/description/id) and sorts by updated_at desc. Cards show img/vid/up done-counts from a new GET /api/projects/progress endpoint: one GROUP BY query instead of N+1 fetches, mirroring stageStats.sceneStageStatus. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ject cards One useReloadOnEvent hook replaces the same request_update/urls_refreshed effect copied in DashboardPage, PipelineView and LogViewer, with a 400ms trailing debounce so a burst of events during a pipeline run becomes one reload instead of one N+1 fetch per event. Project cards now refresh their stage progress through the same hook. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Starts whichever of :8100 / :5173 is not already listening, waits for /health, and reports extension_connected so the agent can begin work. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
scripts/control_center.pyw: stdlib tkinter, no extra installs. One row per server with a live status dot, Start/Stop/Restart/Open, an extension-connected line polled from /health, and a logs folder. Stop uses taskkill /T on the port's pid so it also kills servers started elsewhere and the npm->node tree. scripts/control-center.bat is the double-click launcher. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…shboard Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Author
|
Closing: continuing this work in my own fork. |
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.
Summary
The Projects page did not scale past a handful of projects: no search, no sort, and cards gave no hint of pipeline progress. The home Dashboard also refetched everything (N+1) on every WebSocket event.
updated_atdesc.img 8/8 · vid 5/8 · up 0/8, green when a stage is complete. Backed by newGET /api/projects/progress: oneGROUP BYquery, mirroringstageStats.sceneStageStatus(vertical wins unless PENDING).useReloadOnEventhook: replaces the samerequest_update/urls_refreshedeffect copied in DashboardPage, PipelineView and LogViewer, with a 400ms trailing debounce so an event burst during a pipeline run triggers one reload. Project cards refresh progress through the same hook..claude/launch.jsonfor the api + vite dev servers.Test plan
tests/unit/test_project_progress.pycovers the SQL vs the dashboard status rule (vertical FAILED beats horizontal COMPLETED; vertical PENDING falls back to horizontal)tsc -bandeslintcleanPre-existing failures in
test_setup.py/test_cli_providers.pyare unrelated (same before this branch).🤖 Generated with Claude Code