docs: bubbaloop-dash design spec + Phase 1.0 implementation plan#104
Closed
edgarriba wants to merge 2 commits into
Closed
docs: bubbaloop-dash design spec + Phase 1.0 implementation plan#104edgarriba wants to merge 2 commits into
edgarriba wants to merge 2 commits into
Conversation
…xing, and dashboard hosting Designs the new bubbaloop-dash sibling repo: FastAPI + LanceDB + open_clip backend that owns video upload, frame indexing, vector search, and serves the migrated React dashboard. Deploys as a single Docker container on a self-hosted VPS; browser talks only to dash; dash proxies Zenoh from the edge daemon over Tailscale. Scope of this spec (Spec 1): - Repo creation + frontend migration (fork-snapshot, bubbaloop dashboard stays untouched for now) - Resumable chunked upload, async indexing job (PyAV → open_clip → LanceDB) - Text-based semantic frame search via REST - Single-origin Zenoh-WSS proxy with ref-counted multiplex - Bearer-token auth - Forward-compat hooks for future world-model integration (kind column, source_kind+provenance, streams/rgb/ storage layout) - 5-phase implementation (1.0 skeleton → 1.4 release) Out of scope (separate specs): Map canvas + SLAM (Spec 2), remote-hosting hardening (Spec 3), retiring bubbaloop's existing dashboard (future). Design grounded in research across three platform domains: robotics (Foxglove, Rerun, Formant, Roboto), CV/annotation (FiftyOne, V7 Darwin, Roboflow, Labelbox), and video search SaaS (Twelve Labs, Marqo, Mixpeek, Pinecone). Convergence + judgment-call zones documented in Appendix A. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
25 bite-sized tasks covering: repo scaffolding, pyproject + uv, Settings, structlog, FastAPI app factory, /healthz + /readyz, bearer-token auth, first-run token generator, Zenoh session with reconnect, WS protocol parser, ref-counted multiplex registry, /ws/zenoh endpoint, frontend lift (fork-snapshot), vite dev proxy, lib/zenoh.ts URL update, REST client, AuthContext, Login screen, static-file serving with SPA fallback, Dockerfile (multi-stage), compose files, GitHub Actions CI, CLAUDE.md + README, gh repo create + push, manual smoke test. End state: docker run, browser to URL, paste bearer token, see existing Bubbaloop dashboard rendering live Zenoh data via the new backend. Each task: failing test → impl → passing test → commit. Out of scope (Phases 1.1+): video upload, decode, embed, LanceDB, search, Map tab features. Self-review caught: STATIC_DIR="" needs a validator to map to None for dev compose. Fixed inline in Task 19. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
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
Adds two design artifacts for the new sibling project
kornia/bubbaloop-dash— a self-hosted FastAPI + React/TS backend that will own video upload, frame indexing (LanceDB), vector search, and serve the migrated Bubbaloop dashboard UI from a single Docker container.docs/superpowers/specs/2026-05-20-bubbaloop-dash-design.md(703 lines) — Full design across 6 sections: identity/scope, migration approach, architecture + 3 data flows, REST API + auth + defaults + LanceDB schema, frontend changes, error handling/testing/phasing. Plus 2 appendices (research synthesis across robotics/CV/video-search SaaS platforms; glossary). Includes 3 forward-compat hooks for future world-model integration.docs/superpowers/plans/2026-05-20-bubbaloop-dash-phase-1.0-skeleton.md(3.6k lines) — 25-task TDD implementation plan for Phase 1.0 (skeleton: backend + auth + Zenoh-WS proxy + frontend lift + Docker + CI). Each task has failing test → implementation → passing test → commit substeps with complete code, no placeholders.Phase 1.0 status (already shipped)
The plan has been executed end-to-end against
kornia/bubbaloop-dash:v0.1.0-alphapublishedTest Plan
This PR adds documentation only — no code paths affected. Reviewers can verify:
videos.kind,frames.source_kind/provenance,streams/rgb/path) are reflected in the LanceDB schema section🤖 Generated with Claude Code