Skip to content

feat(ui-next): new Tailwind interface + Docker test stack#1

Open
thesneakernet77 wants to merge 1 commit into
zndx:trunkfrom
thesneakernet77:feat/ui-next-tailwind-interface
Open

feat(ui-next): new Tailwind interface + Docker test stack#1
thesneakernet77 wants to merge 1 commit into
zndx:trunkfrom
thesneakernet77:feat/ui-next-tailwind-interface

Conversation

@thesneakernet77

Copy link
Copy Markdown

Summary

Adds a new high-fidelity React/Tailwind frontend in ui-next/ plus a Docker Compose test stack. It builds into ui/dist and talks to the same /api + /ws contract, so the gateway serves it with zero backend changes — nothing under src/atelier/** is touched.

Frontend (ui-next/)

  • Design system: dark, indigo accent, Inter / JetBrains Mono, Layout B dual-pane (demo-design-template).
  • Typed API layer (api/{client,types,ws}.ts) over the gateway surface, honoring the {error} envelope convention.
  • Reuses pure logic verbatim (buildTaskTree.ts, fsmPipelineLayout.ts); ports DatasetContext with AntD removed.
  • Heavy widgets lifted with logic intact, restyled: Terminal (ghostty WS), EmbeddingAtlasView (Mosaic/DuckDB parquet load, dark), PipelineCanvas (XYFlow), ProgressTree, RunControls.
  • Screens: Operate (Layout B home), Status, Settings, Agents, Embeddings index/detail, Workflows, Overwatch.

Docker test stack (docker/, docker-compose.yml)

  • Postgres (pgvector) + Qdrant + the app (gRPC core + gateway serving ui/dist).
  • ATELIER_DB_URL points the app at external Postgres so PGlite is skipped; a minimal entrypoint resolves config, migrates, and starts both services.
  • psycopg[binary] is installed in the image because the slim base lacks libpq.
  • Verified end-to-end: /api/status reports grpc/postgres/qdrant all ok and the UI is served same-origin on :8090.

Notes

  • .gitignore: ignore ui-next build/deps, re-include ui-next/src/lib.

🤖 Generated with Claude Code

Add a high-fidelity React/Tailwind frontend (ui-next/) following the
demo-design-template design system (dark, indigo accent, Inter/JetBrains
Mono, Layout B dual-pane). It builds into ui/dist and talks to the same
/api + /ws contract, so the gateway serves it with zero backend changes
(nothing under src/atelier/** is touched).

- API layer (api/{client,types,ws}.ts) typed over the gateway surface,
  honoring the {error} envelope convention.
- Reuses pure logic verbatim: buildTaskTree.ts, fsmPipelineLayout.ts;
  ports DatasetContext (AntD removed).
- Heavy widgets lifted with logic intact, restyled: Terminal (ghostty WS),
  EmbeddingAtlasView (Mosaic/DuckDB parquet load, dark), PipelineCanvas
  (XYFlow), ProgressTree, RunControls.
- Screens: Operate (Layout B home), Status, Settings, Agents, Embeddings
  index/detail, Workflows, Overwatch.

Add a Docker Compose test stack (docker/, docker-compose.yml): Postgres
(pgvector) + Qdrant + the app (gRPC core + gateway serving ui/dist).
ATELIER_DB_URL points the app at external Postgres so PGlite is skipped;
a minimal entrypoint resolves config, migrates, and starts both services.
psycopg[binary] is installed in the image because the slim base lacks
libpq. Verified end-to-end: /api/status reports grpc/postgres/qdrant all
ok and the UI is served same-origin on :8090.

.gitignore: ignore ui-next build/deps, re-include ui-next/src/lib.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

2 participants