SDLC dashboard
State: open/building · Kind: subsystem · Audience: user
Summary
Section titled “Summary”- A local web dashboard over a project’s SDLC state:
sdlc dashboardserves a JSON API and a committed Vue single-page app that browses entities, sessions, PRs and the orchestrator. - Mostly read-only views; it also writes entity bodies and config keys on the same machine.
Statement
Section titled “Statement”sdlc dashboard start | stop | list runs a Hono server, by default bound to 127.0.0.1, that
serves the built SPA at / and a JSON API under /api/*. The API reads state and refreshes it
(/api/state, /api/refresh), lists recorded sessions and can open one in a host
(/api/sessions, /api/sessions/open), and serves usage, config, roadmap progress, orchestrator
status and log tail, the PR survey, the issue chain, notification config, per-type entity lists and
detail, and the capability graph. Projects are addressed by an opaque registry id resolved through
a read-only project registry, never by path.
It is not purely read-only. PUT /api/entities/:type/:id/body rewrites an entity body (with a
compare-and-swap and contract validation), PUT /api/config/:key writes a config key, and
POST /api/notify/test sends a test notification. Mutating routes are guarded against cross-site
requests and a host check applies to every /api/* request.
The SPA (@sdlc/dashboard-spa) is a standalone Vite and Vue app with views for tasks, milestones,
entities, work, dispatch, PR board, chain, sessions, usage, config, notifications, loop status and
roadmap progress. It talks to the server only through the typed client (C-0020).
What it provides
Section titled “What it provides”- The dashboard server lifecycle (
start,stop,list) and its/api/*routes. - A zod contract for the wire payloads, from which the client types are generated.
- A built SPA, committed and served by the server alongside the API.
- Project registry reads, session listing and entity browsing for any registered project.
Contained sub-features
Section titled “Contained sub-features”C-0020Dashboard API client
Underlying implementation
Section titled “Underlying implementation”- solutions/ontological/lib/services/dashboard/server.ts (HTTP app and lifecycle)
- solutions/ontological/lib/services/dashboard/dashboard-service.ts (the
sdlc dashboardverbs) - solutions/ontological/lib/services/dashboard/contract.ts (shared zod contract)
- solutions/ontological/lib/services/dashboard/project-registry.ts (read-only project registry)
- packages/ts/dashboard-spa/ (the SPA; built output is served from the plugin’s dashboard-spa dir)
Locations
Section titled “Locations”solutions/ontological/lib/services/dashboard/packages/ts/dashboard-spa/