diff --git a/backend/festival4d/api.py b/backend/festival4d/api.py index 06ed1ee..4037a6e 100644 --- a/backend/festival4d/api.py +++ b/backend/festival4d/api.py @@ -23,6 +23,17 @@ Phase 5 (foundation2; shapes frozen in plan/20-phase5.md contracts): DELETE /api/paths/{id} PATCH /api/anchors/{id} {label?, color?} -> updated anchor dict +Phase 6 (foundation3 / M18; shapes frozen in plan/30-phase6.md contract #2): + + GET /api/tracks -> [{id, marker_key, label, color, points:[{t_global_s,x,y,z, + quality,views}]}] (points ordered by t_global_s) + PATCH /api/tracks/{id} {label?, color?} -> updated track dict (404 on missing) + DELETE /api/tracks/{id} -> {deleted: id} (404 on missing) + POST /api/tracks/solve -> {result, tracks[, note]} — runs lane H's detect->solve + (tracker_solve.run_solve); while lane H is stubbed it + degrades to a VALID empty result + "note" (house pattern). + manifest gains "has_tracks": bool. + Source videos in ``data/raw`` are mounted at ``/media`` via Starlette ``StaticFiles``, which supports HTTP Range (required for ``