docs: bubbaloop-dash Phase 1.1 spec + implementation plan#106
Closed
edgarriba wants to merge 2 commits into
Closed
docs: bubbaloop-dash Phase 1.1 spec + implementation plan#106edgarriba wants to merge 2 commits into
edgarriba wants to merge 2 commits into
Conversation
Designs the user-facing video upload pipeline: chunked PUTs through the backend to filesystem storage, SQLite-backed progress tracking, integrity sweeper, and the Map tab containing the VideoUploader + VideoLibrary components. End state: drop iPhone clip → see it in the library; nothing decodes the video yet (Phase 1.2 lands the indexer). Scope of this phase (1.1): - REST endpoints: POST/PUT/DELETE /api/videos, /api/jobs, /api/blob - Storage Protocol + FilesystemStorage (S3-swappable later) - SQLite schema: videos + upload_progress + jobs tables with chunk bitmap - Background sweeper (asyncio task in lifespan) — marks abandoned, deletes orphans - Map tab in App.tsx, VideoUploader (single-file, in-session retry), VideoLibrary - 5-day phasing 1.1.a-1.1.h Out of scope: decode/embed/index (1.2), search UI (1.3), map canvas + SLAM (Spec 2), cross-session resume (deferred to 1.4 or never), multi-file batch (deferred to 1.4 or never), video probe/thumbnails (1.2). Key design simplification: no cross-session upload resume in v1. Interrupted upload = sweeper marks abandoned after 24h, user deletes + retries. Most real uploads finish in one session; the resume protocol's complexity isn't worth it for single-user self-hosted. Builds on Phase 1.0's spec Section 4 phasing table. Predecessor: v0.1.0-alpha shipped at kornia/bubbaloop-dash. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
16 bite-sized TDD tasks covering: Settings additions, Storage Protocol + FilesystemStorage (atomic pwrite), chunk bitmap helpers, SQLite schema + Db wrapper (videos/upload_progress/jobs), record_chunk + find_stale_uploads, integrity sweeper, six REST endpoints under /api/videos, three under /api/jobs, /api/blob, lifespan wiring, Map tab in App.tsx, MapTab/MapCanvas containers, VideoUploader (single-file chunked, 3 concurrent, 5-retry backoff, AbortController cancel), VideoLibrary (forwardRef refresh + auto-refresh while uploading), manual E2E smoke + PR open + tag. Builds on Phase 1.0's plan shape. End state: kornia/bubbaloop-dash@v0.1.1-alpha ships drag-an-iPhone-clip → see it in the library; nothing decodes yet (Phase 1.2 lands the indexer). 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 bubbaloop-dash Phase 1.1 (upload pipeline + library) work, predecessor to Phase 1.0's
v0.1.0-alpha:docs/superpowers/specs/2026-05-21-bubbaloop-dash-phase-1.1-upload.md(630 lines) — Scope, phase boundary, Storage Protocol + SQLite schema (videos / upload_progress / jobs), REST handlers (POST/PUT/GET/DELETE /api/videos, /api/jobs, /api/blob), sweeper, Map tab + VideoUploader + VideoLibrary, error handling, testing, phasing.docs/superpowers/plans/2026-05-21-bubbaloop-dash-phase-1.1-upload.md(3.5k lines) — 16-task TDD implementation plan with failing-test → impl → passing-test → commit substeps. Every code block is complete (no placeholders).Implementation status
The plan has been executed end-to-end at
kornia/bubbaloop-dash#2:Test plan
Documentation only — no code paths affected in this repo. Reviewers can verify:
🤖 Generated with Claude Code