Skip to content

build: embedded web UI (trace surface + parity) #62

Description

@aksOps

Tracking issue for the embedded web UI build. Design and contracts are settled: map #51, paradigm #55, build chain #54, data contract #56, rollup #59, read-only store #60, capability identity #61. Prototype: rev 4.1 trace surface.

Milestones:

  • M1 store layer: hourly rollup (UTC keys, collector-tx maintenance, rebuild), store.OpenReadOnly, UsageEvent.ID, explicit column projection (raw excluded by default). Closes store: add a read-only open for consumers that must never write #60.
  • M2 internal/web: /api/summary /api/facets /api/events /api/meta /api/ws, embed via webui build tag + stub, serve command (loopback 37800, read-only store, no daemon auto-spawn, never the collection lock), capability in buildinfo.Identity().
  • M3 webui app: Vite/React/TS scaffold, trace scene port with mouse+touch interaction, TanStack Query, charts seam, mock-to-real data adapter.
  • M4 release wiring: npm build on release tag before GoReleaser, -tags webui, CI gates run twice (with and without the tag), .gitignore for dist.
  • M5 parity overlays: input/output/cache series split in scene + readout, leverage pivot, by-model/by-project facets, ranked drill table (sort/filter), KPI deltas/sparklines/shares, freshness chip states + stall banner, cost partial markers, help overlay, empty/error vocabulary (zero tokens / no rows / query failed), range preset chips.
  • M6 live wiring: WS watermark push from db/-wal mtime observation, contract-version self-reload, follow-live against real collection cycles.

Hard constraint carried from #56: no endpoint returns raw, ever (no auth in front of the public hostnames; 45,615 legacy rows hold whole transcript lines).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions