Skip to content

feat: harden the dashboard workflow and operational visibility#135

Merged
mordonez merged 33 commits into
mainfrom
claude/dev-dashboard-mvp-tBbJ1
May 11, 2026
Merged

feat: harden the dashboard workflow and operational visibility#135
mordonez merged 33 commits into
mainfrom
claude/dev-dashboard-mvp-tBbJ1

Conversation

@mordonez
Copy link
Copy Markdown
Owner

@mordonez mordonez commented May 4, 2026

Summary

This PR hardens the new local dashboard so it is ready for final review and day-to-day use as an operational console for ldev worktrees and environments.

It adds:

  • richer dashboard status data, including changed file paths, runtime details, MCP config visibility, and ahead/behind context
  • a task/activity rail plus guided actions for diagnose, maintenance, DB operations, deploy status, resource export, MCP setup, and worktree lifecycle flows
  • dashboard documentation and README coverage, including a real screenshot of the UI
  • regression coverage for the dashboard data layer, HTML client, and server routes
  • a small hardening fix for db files-mount when an existing Docker volume cannot be removed safely
  • updated agent/worktree guidance to avoid silently switching away from an already active worktree

Why

The dashboard was already functionally useful, but the original implementation still had a few merge blockers:

  • the status payload did not fully match what the UI expected
  • the UI did not expose changed files directly on each worktree card
  • maintenance preview could fail noisily on first load in unsupported contexts
  • the feature needed documentation and visual onboarding
  • the branch needed stronger tests and final hook-clean validation before merge

Validation

pm run verify:push

  • focused dashboard unit tests during development
  • live browser verification with the captured screenshot asset

Follow-up

claude and others added 4 commits May 2, 2026 11:05
…gement

Introduces `ldev dashboard` — a local web UI served at http://localhost:4242
that gives a real-time operational view of all git worktrees and their
Docker environments without needing to switch terminal tabs.

- dashboard-data.ts: collects worktree list (git), env status (docker
  compose) and recent git log for each worktree in parallel
- dashboard-server.ts: lightweight Node http server, no new runtime
  dependencies; exposes GET /api/status plus POST start/stop actions
- dashboard-html.ts: single-page app embedded as a string; polls every
  8 s, renders cards with service health dots, portal URL reachability
  indicator, start/stop buttons, and recent commits
- dashboard.command.ts: registers as `ldev dashboard --port <n>`,
  opens browser automatically on start

https://claude.ai/code/session_01BpG1d6Yjg4EW2Hqm5aUWT6
Ahead/behind (vs origin/main or nearest base):
- collectAheadBehind() tries origin/main → main → origin/master → master
- Shows ↑N / ↓N badges on each worktree card; skipped for main itself
- "up to date" label when both counts are zero

Logs modal:
- GET /api/worktrees/:name/logs → docker logs --tail 200 --timestamps
- Opens as a bottom-anchored panel, closes on Esc or click-outside
- Timestamps stripped to a clean readable format
- Refresh button to re-fetch without closing the modal

https://claude.ai/code/session_01BpG1d6Yjg4EW2Hqm5aUWT6
… restore

Fix: Start action now calls runEnvStart({wait:false}) instead of bare
docker compose up -d. The previous approach skipped runWorktreeEnv(),
seedBuildDockerConfigs() and restoreBuildDeployFromCache(), which caused
modules and the theme to not be deployed when starting from the dashboard.

Copy path: each card shows the worktree path with a ⎘ copy button.
Clicking writes the path to the clipboard and shows a toast. Useful for
cd-ing to the worktree in a terminal.

Delete worktree: non-main worktrees get a 🗑 button (right-aligned in
the actions row). Clicking prompts a confirm() dialog, then calls
DELETE /api/worktrees/:name which runs runWorktreeClean({force:true}).
The card disappears on the next poll after deletion.

https://claude.ai/code/session_01BpG1d6Yjg4EW2Hqm5aUWT6
Comment thread tests/unit/dashboard-html.test.ts Fixed
Comment thread src/features/dashboard/dashboard-server.ts Fixed
Comment thread src/features/dashboard/dashboard-server.ts Fixed
Comment thread src/features/dashboard/dashboard-server.ts Fixed
Comment thread src/features/dashboard/dashboard-server.ts Fixed
Comment thread src/features/dashboard/dashboard-server.ts Fixed
Comment thread src/features/dashboard/dashboard-server.ts Fixed
Comment thread src/features/dashboard/dashboard-server.ts Fixed
Comment thread src/features/dashboard/dashboard-server.ts Fixed
Comment thread src/features/dashboard/dashboard-server.ts Fixed
mordonez added 25 commits May 5, 2026 00:55
…perations

feat(docs): add site building guidance for structured content and page mutations
test(oauth): validate default OAuth scopes for agentic authoring and config persistence
@mordonez mordonez merged commit c6595a1 into main May 11, 2026
12 checks passed
@mordonez mordonez deleted the claude/dev-dashboard-mvp-tBbJ1 branch May 12, 2026 09:27
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.

3 participants