splitsmith 0.76.0__tar.gz → 0.78.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- splitsmith-0.78.0/CHANGELOG.md +1961 -0
- splitsmith-0.78.0/PKG-INFO +448 -0
- splitsmith-0.78.0/pyproject.toml +347 -0
- splitsmith-0.78.0/src/splitsmith/__init__.py +3 -0
- splitsmith-0.78.0/src/splitsmith/beep_detect.py +510 -0
- splitsmith-0.78.0/src/splitsmith/beep_tone.py +296 -0
- splitsmith-0.78.0/src/splitsmith/cli.py +1811 -0
- splitsmith-0.78.0/src/splitsmith/compare/cli.py +721 -0
- splitsmith-0.78.0/src/splitsmith/compare/free_cell.py +277 -0
- splitsmith-0.78.0/src/splitsmith/compare/mp4_grid.py +4204 -0
- splitsmith-0.78.0/src/splitsmith/compare/overlay_data.py +160 -0
- splitsmith-0.78.0/src/splitsmith/composition.py +980 -0
- splitsmith-0.78.0/src/splitsmith/config.py +768 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/_history.json +49 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/_shared/hud.js +171 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/_starters/broadcast-card.html +138 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/_starters/broadcast-hud.html +224 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/_starters/broadcast-match.html +110 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/_starters/broadcast-sting.html +90 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/_starters/broadcast-summary.html +183 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/_starters/broadcast-thumbnail.html +92 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/_starters/hud.html +99 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/_starters/summary.html +93 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-card.html +138 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-hud.html +224 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-match.html +110 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-sting.html +90 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-summary.html +183 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-thumbnail.html +92 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/look.json +107 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/closing-default.png +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/closing-end-screen.png +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/closing-rise.png +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/look.png +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/lower_third-default.png +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/lower_third-rise.png +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-broadcast.webp +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-minimal.webp +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-pips.webp +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-plate.webp +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-ticker.webp +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-timeline.webp +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/slate-default.png +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/slate-rise.png +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/title_page-default.png +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/title_page-rise.png +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/transition-push.webp +0 -0
- splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/transition-wipe.webp +0 -0
- splitsmith-0.78.0/src/splitsmith/data/whats_new.json +546 -0
- splitsmith-0.78.0/src/splitsmith/events.py +545 -0
- splitsmith-0.78.0/src/splitsmith/export_presets.py +290 -0
- splitsmith-0.78.0/src/splitsmith/export_preview.py +934 -0
- splitsmith-0.78.0/src/splitsmith/hud_extras.py +389 -0
- splitsmith-0.78.0/src/splitsmith/look_tools.py +1103 -0
- splitsmith-0.78.0/src/splitsmith/looks.py +696 -0
- splitsmith-0.78.0/src/splitsmith/match_cli.py +1225 -0
- splitsmith-0.78.0/src/splitsmith/match_project.py +2831 -0
- splitsmith-0.78.0/src/splitsmith/match_summary.py +1053 -0
- splitsmith-0.78.0/src/splitsmith/mcp/export_tools.py +421 -0
- splitsmith-0.78.0/src/splitsmith/mcp/server.py +409 -0
- splitsmith-0.78.0/src/splitsmith/media_check.py +181 -0
- splitsmith-0.78.0/src/splitsmith/mp4_render.py +2357 -0
- splitsmith-0.78.0/src/splitsmith/overlay_card.py +529 -0
- splitsmith-0.78.0/src/splitsmith/overlay_hud.py +492 -0
- splitsmith-0.78.0/src/splitsmith/overlay_hud_render.py +275 -0
- splitsmith-0.78.0/src/splitsmith/overlay_render.py +776 -0
- splitsmith-0.78.0/src/splitsmith/overlay_summary_cell.py +1159 -0
- splitsmith-0.78.0/src/splitsmith/overlay_theme.py +185 -0
- splitsmith-0.78.0/src/splitsmith/rise_foot.py +97 -0
- splitsmith-0.78.0/src/splitsmith/share_card.py +165 -0
- splitsmith-0.78.0/src/splitsmith/stage_summary_data.py +348 -0
- splitsmith-0.78.0/src/splitsmith/summary_card.py +277 -0
- splitsmith-0.78.0/src/splitsmith/summary_template.py +282 -0
- splitsmith-0.78.0/src/splitsmith/ui/beep_tone_check.py +36 -0
- splitsmith-0.78.0/src/splitsmith/ui/export_preview_api.py +342 -0
- splitsmith-0.78.0/src/splitsmith/ui/exports.py +792 -0
- splitsmith-0.78.0/src/splitsmith/ui/exports_api.py +717 -0
- splitsmith-0.78.0/src/splitsmith/ui/match_exports.py +1073 -0
- splitsmith-0.78.0/src/splitsmith/ui/server.py +20455 -0
- splitsmith-0.78.0/src/splitsmith/ui/share_og.py +914 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Account-CLh0llEc.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/AdminAccess-BBis3R_b.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/AdminWorkers-tZgH7wab.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Audit-DPZUliiN.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/BeepSection-Bdw1kYt8.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Breakdown-BgGKQFlu.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Coach-j2PumSHg.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/CodeEditor-PQTIbscD.js +23 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Compare-D6Kq5pCJ.js +27 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/CoverageSelect-CLHLzhGZ.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/CreateMatch-DOC9PifY.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/DataTable-2x_EqaP3.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Design-fT7sitU4.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/DesktopApprove-DWPs0GJI.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/DevCorpus-B6DGdqQm.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/DevFixtureDetail-DxRHUQI_.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/DevModels-BlRpsPzs.js +3 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/DevRetrain-C6xIL6kz.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/DevReviewQueue-DyybJWfv.js +17 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/DevValidate-BAXvSQhb.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Export-kNVQpcgS.js +9 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/FootageSort-Cnef1yZu.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Home-BI4sSOOp.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Ingest-B2zSjNf2.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Kbd-CgkRIm2Z.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Kicker-Dt3rfRsf.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Login-CU8BiDnX.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/MergeMatches-BdTutPIs.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/MobileAudit-CUSh9x3Q.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/MobileBeepReview-B0BsjAz7.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/MobileBreakdown-Dlek0zq1.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/MobileConfirmSheet-CxpduxzD.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Pick-DJnhOmcx.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/PipView-DkIYI9Eu.js +13 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/PipelineDots-DeRxX4Bf.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/PromoteReview-oyQ_P3of.js +8 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/ResultRow-DzEQs1rB.js +37 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Results-CFbwnm9w.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/ResultsStage-B9eQFmll.js +17 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Review-QR7Mbdcc.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Section-CgQkRi39.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Segmented-CMiK3LNJ.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/ShareDialog-DsXl2Knz.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Shooters-CT07ociZ.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Snackbar-i92yYUsG.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/StageViewer-Bzbg-Ua4.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Stat-BXXQWAli.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/StatusPill-DOEWk1i5.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/TakeOverview-fTB5VJW-.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/Waveform-BMapfhDn.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/WaveformTrack-CgIm9BWj.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/You-BdYa5kPk.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/access-Bq71eJ7V.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/arrow-left-C-HLNSDL.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/arrow-right-B2jSqaoa.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/arrow-up-B8m-gFhe.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/badge-CNijtGcz.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/chevron-left-C0E4cG9R.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/circle-alert-DPxbqXWh.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/circle-check-Ca4tMh-Y.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/clock-Crl4rKdj.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/folder-8rilcLkD.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/hard-drive-AP_Ntz7P.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/inbox-CBpgLrDz.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/index-BtOcvtK9.css +1 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/index-D4eGCWoK.js +257 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/keyboard-ryFPwHW9.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/link-2-ETHE6UGT.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/list-checks-Bm57hNLY.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/loader-circle-rbGOlDnR.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/minus-DidjEG0R.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/overview-D1bzUkIA.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/pencil-CHPja3gM.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/play-Clmgdpqx.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/plus-YFOBfRSQ.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/refresh-cw-BGbWSUhG.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/reticle--DwuFsQi.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/reviewZoom-oKqWnL2r.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/riseFoot-D8pq2oXv.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/save-B4XyDXsw.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/search-BzhjRxeq.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/settings-2-BQPcP3j4.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/splits-DqQruSda.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/timelineView-D4X8CrMB.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/trash-2-D2DlSwoQ.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/undo-2-DV5SQ0VQ.js +7 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/useActiveShare-CQFff9UF.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/useDesktopCommands-CaGrI1sx.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/useLabRun-DJszoI3o.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/usePip-C-FagHb8.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/usePrimaryAudio-BppSVcJw.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/useScrubSource-PbI8QdWd.js +3 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/useYouTubeLogin-D4fd8eQh.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/zoom-in-BVKLJJ_F.js +12 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/assets/zoomKeys-o6PJRMDw.js +2 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/dist/index.html +14 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/App.tsx +480 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/audit/BeepStep.remount.test.tsx +176 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/audit/BeepTimeline.test.tsx +631 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/audit/BeepTimeline.tsx +531 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/audit/SpectrogramTrack.test.tsx +34 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/audit/SpectrogramTrack.tsx +90 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/breakdown/mobile/EdgePad.tsx +62 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/breakdown/mobile/FocusStrip.tsx +165 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/breakdown/mobile/PhoneVideo.tsx +85 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/breakdown/mobile/mobile.test.tsx +137 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/BreakdownInspector.tsx +215 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/Coach.components.test.tsx +204 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/EventCard.tsx +174 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/EventList.tsx +57 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/IntervalClassControl.tsx +52 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/LaneEditor.test.tsx +945 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/LaneEditor.tsx +545 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/StageBand.tsx +149 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/StageStrip.tsx +129 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/TimeBudgetBar.tsx +52 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/TimeBudgetCard.tsx +76 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/laneDrag.test.ts +38 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/coach/laneDrag.ts +174 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/export/LookGallery.tsx +261 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/export/OutputGroup.tsx +270 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/footage/ClipSheet.tsx +354 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/match/navItems.test.ts +62 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/match/navItems.tsx +147 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/overview/OverviewCards.tsx +176 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/overview/OverviewTable.test.tsx +144 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/overview/OverviewTable.tsx +381 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/ui/Segmented.tsx +60 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/ui/chipTicks.test.ts +45 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/components/ui/chipTicks.ts +109 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/api.exportBodies.test.ts +191 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/api.ts +6130 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/beepFilter.test.ts +34 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/beepFilter.ts +63 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/clipFps.test.ts +20 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/clipFps.ts +14 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/coachReview.test.ts +73 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/coachReview.ts +62 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/edgeDrag.test.ts +81 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/edgeDrag.ts +86 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/events.test.ts +161 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/events.ts +204 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/exportPlan.test.ts +268 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/exportPlan.ts +252 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/exportPresets.test.ts +404 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/exportPresets.ts +398 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/exportPreview.test.ts +256 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/exportPreview.ts +161 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/focusWindow.test.ts +34 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/focusWindow.ts +45 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/lookGallery.ts +641 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/looks.test.ts +197 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/looks.ts +206 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/overview.test.ts +228 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/overview.ts +207 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/proposalQueue.test.ts +35 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/proposalQueue.ts +32 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/renderOptions.test.ts +250 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/renderOptions.ts +290 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/scrubSource.test.ts +27 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/scrubSource.ts +31 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/splits.ts +209 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/stageStrip.test.ts +100 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/stageStrip.ts +134 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/timeBudget.test.ts +115 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/timelineView.test.ts +252 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/timelineView.ts +247 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/useScrubSource.ts +71 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/lib/useStageWorkspace.ts +506 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/Breakdown.regions.test.tsx +445 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/Breakdown.test.tsx +734 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/Breakdown.tsx +286 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/Coach.test.tsx +564 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/Coach.tsx +876 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/Export.bare.test.tsx +327 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/Export.renderOptions.test.tsx +393 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/Export.tsx +1295 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/MobileBreakdown.test.tsx +373 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/MobileBreakdown.tsx +569 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/matchExportModel.test.ts +420 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/pages/matchExportModel.ts +261 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/src/styles/index.css +633 -0
- splitsmith-0.78.0/src/splitsmith/ui_static/tsconfig.app.tsbuildinfo +1 -0
- splitsmith-0.78.0/src/splitsmith/waveform.py +197 -0
- splitsmith-0.78.0/tests/fixtures/beep_calibration/README.md +79 -0
- splitsmith-0.78.0/uv.lock +4228 -0
- splitsmith-0.76.0/CHANGELOG.md +0 -1925
- splitsmith-0.76.0/PKG-INFO +0 -448
- splitsmith-0.76.0/pyproject.toml +0 -347
- splitsmith-0.76.0/src/splitsmith/__init__.py +0 -3
- splitsmith-0.76.0/src/splitsmith/beep_detect.py +0 -504
- splitsmith-0.76.0/src/splitsmith/cli.py +0 -1801
- splitsmith-0.76.0/src/splitsmith/compare/cli.py +0 -708
- splitsmith-0.76.0/src/splitsmith/compare/free_cell.py +0 -277
- splitsmith-0.76.0/src/splitsmith/compare/mp4_grid.py +0 -4198
- splitsmith-0.76.0/src/splitsmith/compare/overlay_data.py +0 -139
- splitsmith-0.76.0/src/splitsmith/composition.py +0 -969
- splitsmith-0.76.0/src/splitsmith/config.py +0 -731
- splitsmith-0.76.0/src/splitsmith/data/looks/_history.json +0 -44
- splitsmith-0.76.0/src/splitsmith/data/looks/_shared/hud.js +0 -166
- splitsmith-0.76.0/src/splitsmith/data/looks/_starters/hud.html +0 -99
- splitsmith-0.76.0/src/splitsmith/data/whats_new.json +0 -468
- splitsmith-0.76.0/src/splitsmith/events.py +0 -379
- splitsmith-0.76.0/src/splitsmith/export_presets.py +0 -277
- splitsmith-0.76.0/src/splitsmith/export_preview.py +0 -832
- splitsmith-0.76.0/src/splitsmith/look_tools.py +0 -884
- splitsmith-0.76.0/src/splitsmith/looks.py +0 -667
- splitsmith-0.76.0/src/splitsmith/match_cli.py +0 -1153
- splitsmith-0.76.0/src/splitsmith/match_project.py +0 -2814
- splitsmith-0.76.0/src/splitsmith/match_summary.py +0 -1053
- splitsmith-0.76.0/src/splitsmith/mcp/export_tools.py +0 -404
- splitsmith-0.76.0/src/splitsmith/mcp/server.py +0 -402
- splitsmith-0.76.0/src/splitsmith/media_check.py +0 -165
- splitsmith-0.76.0/src/splitsmith/mp4_render.py +0 -2233
- splitsmith-0.76.0/src/splitsmith/overlay_card.py +0 -523
- splitsmith-0.76.0/src/splitsmith/overlay_hud.py +0 -452
- splitsmith-0.76.0/src/splitsmith/overlay_hud_render.py +0 -258
- splitsmith-0.76.0/src/splitsmith/overlay_render.py +0 -753
- splitsmith-0.76.0/src/splitsmith/overlay_summary_cell.py +0 -1159
- splitsmith-0.76.0/src/splitsmith/overlay_theme.py +0 -178
- splitsmith-0.76.0/src/splitsmith/rise_foot.py +0 -95
- splitsmith-0.76.0/src/splitsmith/share_card.py +0 -161
- splitsmith-0.76.0/src/splitsmith/stage_summary_data.py +0 -197
- splitsmith-0.76.0/src/splitsmith/summary_card.py +0 -211
- splitsmith-0.76.0/src/splitsmith/ui/export_preview_api.py +0 -338
- splitsmith-0.76.0/src/splitsmith/ui/exports.py +0 -739
- splitsmith-0.76.0/src/splitsmith/ui/exports_api.py +0 -704
- splitsmith-0.76.0/src/splitsmith/ui/match_exports.py +0 -1041
- splitsmith-0.76.0/src/splitsmith/ui/server.py +0 -20328
- splitsmith-0.76.0/src/splitsmith/ui/share_og.py +0 -912
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Account-TBeCovDQ.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/AdminAccess-DCJN4NC4.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/AdminWorkers-771fd23q.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Audit-BoCnrKB3.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/BeepSection-CkQSIs22.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Breakdown-CirXwZKq.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Coach-CMoY3Ir8.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/CodeEditor-nvxmq3cL.js +0 -23
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Compare-tkvH94O3.js +0 -27
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/CoverageSelect-C1HtmEuW.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/CreateMatch-B3FcHO5v.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/DataTable-BvkWMxc1.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Design-C2YuqyaD.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/DesktopApprove-CTly-cwB.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/DevCorpus-xUSJr3DH.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/DevFixtureDetail-DxuGeB6l.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/DevModels-DAFegh-S.js +0 -3
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/DevRetrain-BCi7Kyq9.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/DevReviewQueue-DGe4eeSG.js +0 -17
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/DevValidate-De3xINEQ.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Export-BsxiKIhY.js +0 -9
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/FootageSort-D07oSoif.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Home-M-dbzi7b.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Ingest-BgiwAWdU.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Kbd-DJhR6UtE.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Kicker-Cztna50v.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Login-BYJnSX43.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/MergeMatches-Bbctrg66.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/MobileAudit-9gb3OS_s.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/MobileBeepReview-Cko-7Ryd.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/MobileConfirmSheet-DLbbUd56.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Pick-1ByQhJ1P.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/PipView-Bcm3YtZ2.js +0 -13
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/PipelineDots-BeEOGx3Z.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/PromoteReview-DP1zSDGJ.js +0 -8
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/ResultRow-VGFZsaBo.js +0 -37
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Results-CEuPoDtB.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/ResultsStage-HNfEfNv8.js +0 -17
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Review-Pqx1oUXZ.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Section-BkuLl7NH.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Segmented-BzFteFZy.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/ShareDialog-Cpf1jl25.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Shooters-D-dzEpi9.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Snackbar-DrN3zk46.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/StageViewer-gb_UEJcA.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Stat-CncJjbRR.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/StatusPill-Cxh4gokF.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/TakeOverview-DM3idS8f.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/Waveform-BnUJMhPp.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/WaveformTrack-DqSH0eas.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/You-CVd2gpPk.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/access-99Oku-yF.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/arrow-left-Cc_vFp8K.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/arrow-right-BaWPggPi.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/arrow-up-DvGG5Dbv.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/badge-CQH4M4t3.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/chevron-left-Cf3Qk4iP.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/circle-alert-BxphkfJ1.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/circle-check-7RDUs7fy.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/clock-CKwtsLCV.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/coalescedSeek-DnTZAvWz.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/folder-g7sdmNYz.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/hard-drive-GW0SdV05.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/inbox-DlBJTHbZ.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/index-B3jeUo7L.js +0 -257
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/index-mbpr2lvs.css +0 -1
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/keyboard-X-22mMxb.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/link-2-CIsbjDLz.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/list-checks-CknHFLuY.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/loader-circle-1QSRwkoj.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/minus-BPmqTaxC.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/overview-Cd9AdMQP.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/pencil-DAp45Ac6.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/play-nh8ko4oF.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/plus-DmFFEYlo.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/refresh-cw-DoWAK8Ri.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/reticle-CxQbUgE2.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/reviewZoom-C0HScTmh.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/riseFoot-DLb-_dZr.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/save-DygU0HVR.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/search-BSeQcpN3.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/settings-2-DljDwlKe.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/splits-DV5r6QRk.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/trash-2-jhzHflX1.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/undo-2-DrnYqtZN.js +0 -7
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/useActiveShare-D30BbY08.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/useDesktopCommands-C7ZUDZxD.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/useLabRun-DTQnb-GK.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/usePip-8A8qGDp6.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/usePrimaryAudio-zke9Ybwf.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/useScrubSource-DUPUIQvV.js +0 -3
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/useYouTubeLogin-Dqs5Xulp.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/zoom-in-C8MtWtYe.js +0 -12
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/assets/zoomKeys-DvCSlBGN.js +0 -2
- splitsmith-0.76.0/src/splitsmith/ui_static/dist/index.html +0 -14
- splitsmith-0.76.0/src/splitsmith/ui_static/src/App.tsx +0 -470
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/audit/BeepStep.remount.test.tsx +0 -175
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/audit/BeepTimeline.test.tsx +0 -548
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/audit/BeepTimeline.tsx +0 -399
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/BreakdownInspector.tsx +0 -192
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/Coach.components.test.tsx +0 -179
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/EventCard.tsx +0 -165
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/EventList.tsx +0 -51
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/IntervalClassControl.tsx +0 -60
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/LaneEditor.test.tsx +0 -944
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/LaneEditor.tsx +0 -549
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/StageBand.tsx +0 -146
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/StageStrip.tsx +0 -126
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/TimeBudgetBar.tsx +0 -55
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/TimeBudgetCard.tsx +0 -76
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/coach/laneDrag.ts +0 -147
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/export/LookGallery.tsx +0 -255
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/export/OutputGroup.tsx +0 -222
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/footage/ClipSheet.tsx +0 -354
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/match/navItems.test.ts +0 -62
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/match/navItems.tsx +0 -147
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/overview/OverviewCards.tsx +0 -173
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/overview/OverviewTable.test.tsx +0 -111
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/overview/OverviewTable.tsx +0 -367
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/ui/Segmented.tsx +0 -69
- splitsmith-0.76.0/src/splitsmith/ui_static/src/components/ui/chipTicks.ts +0 -29
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/api.exportBodies.test.ts +0 -186
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/api.ts +0 -6070
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/coachReview.test.ts +0 -67
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/coachReview.ts +0 -61
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/events.test.ts +0 -143
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/events.ts +0 -186
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/exportPlan.test.ts +0 -259
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/exportPlan.ts +0 -246
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/exportPresets.test.ts +0 -377
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/exportPresets.ts +0 -382
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/exportPreview.test.ts +0 -219
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/exportPreview.ts +0 -147
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/lookGallery.ts +0 -635
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/looks.test.ts +0 -169
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/looks.ts +0 -184
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/overview.test.ts +0 -202
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/overview.ts +0 -196
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/renderOptions.test.ts +0 -234
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/renderOptions.ts +0 -286
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/scrubSource.test.ts +0 -18
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/scrubSource.ts +0 -28
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/splits.ts +0 -206
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/stageStrip.test.ts +0 -95
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/stageStrip.ts +0 -130
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/timeBudget.test.ts +0 -96
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/timelineView.test.ts +0 -237
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/timelineView.ts +0 -233
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/useScrubSource.ts +0 -68
- splitsmith-0.76.0/src/splitsmith/ui_static/src/lib/useStageWorkspace.ts +0 -504
- splitsmith-0.76.0/src/splitsmith/ui_static/src/pages/Breakdown.regions.test.tsx +0 -420
- splitsmith-0.76.0/src/splitsmith/ui_static/src/pages/Breakdown.test.tsx +0 -718
- splitsmith-0.76.0/src/splitsmith/ui_static/src/pages/Breakdown.tsx +0 -286
- splitsmith-0.76.0/src/splitsmith/ui_static/src/pages/Coach.test.tsx +0 -564
- splitsmith-0.76.0/src/splitsmith/ui_static/src/pages/Coach.tsx +0 -884
- splitsmith-0.76.0/src/splitsmith/ui_static/src/pages/Export.bare.test.tsx +0 -325
- splitsmith-0.76.0/src/splitsmith/ui_static/src/pages/Export.renderOptions.test.tsx +0 -342
- splitsmith-0.76.0/src/splitsmith/ui_static/src/pages/Export.tsx +0 -1274
- splitsmith-0.76.0/src/splitsmith/ui_static/src/pages/matchExportModel.test.ts +0 -384
- splitsmith-0.76.0/src/splitsmith/ui_static/src/pages/matchExportModel.ts +0 -254
- splitsmith-0.76.0/src/splitsmith/ui_static/src/styles/index.css +0 -608
- splitsmith-0.76.0/src/splitsmith/ui_static/tsconfig.app.tsbuildinfo +0 -1
- splitsmith-0.76.0/src/splitsmith/waveform.py +0 -182
- splitsmith-0.76.0/tests/fixtures/beep_calibration/README.md +0 -73
- splitsmith-0.76.0/uv.lock +0 -4228
- {splitsmith-0.76.0 → splitsmith-0.78.0}/.gitignore +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/LICENSE +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/README.md +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/docs/architecture/README.md +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/docs/google-oauth/README.md +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/docs/local-slim/README.md +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/docs/saas-readiness/README.md +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/site/README.md +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/skills/splitsmith-match/README.md +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/access.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/account_profile.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/agent.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/async_bridge.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/audit.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/audit_data.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/audit_revision.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/auth.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/automation.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/backup.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/beep_calibration.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/beep_features.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/beep_windows.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/camera_select.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/capabilities.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/cleanup.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/coach.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/coach_distributions.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/comment_identity.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/compare/__init__.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/compare/cards.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/compare/emitter.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/compare/filler.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/compare/layout.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/compare/manifest.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/compare/overlay_live.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/compare/overlay_sprites.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/compare/overlay_summary.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/compare/project_loader.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/compute.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/cross_align.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/csv_gen.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/ensemble_calibration.json +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/Antonio-OFL.txt +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/Antonio-VariableFont.ttf +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/BarlowCondensed-OFL.txt +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/BarlowCondensed-SemiBold.ttf +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/BebasNeue-OFL.txt +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/BebasNeue-Regular.ttf +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/IBMPlexMono-Bold.ttf +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/IBMPlexMono-OFL.txt +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/JetBrainsMono-Bold.ttf +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/JetBrainsMono-OFL.txt +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/Oswald-OFL.txt +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/Oswald-VariableFont.ttf +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/RobotoMono-OFL.txt +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/RobotoMono-VariableFont.ttf +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/brand.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/cell.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/credit.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/event.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/fit.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/identity.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/animated.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/lower-third.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/still.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/sting.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/circle.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/cover.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/dissolve.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/fade.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/fadeblack.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/fadewhite.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/hblur.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/pixelize.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/radial.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/reveal.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/slide.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/smooth.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/squeeze.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/wind.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/wipe.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/zoomin.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/look.json +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/closing-default.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/closing-rise.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/look.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/lower_third-default.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/lower_third-rise.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/overlay-minimal.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/overlay-pips.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/overlay-plate.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/overlay-ticker.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/overlay-timeline.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/slate-default.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/slate-rise.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/title_page-default.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/title_page-rise.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/transition-wipe.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/card-end-screen.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/card-rise.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/card.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/hud-minimal.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/hud-pips.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/hud-plate.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/hud-ticker.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/hud-timeline.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/look.json +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/closing-default.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/closing-end-screen.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/closing-rise.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/look.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/lower_third-default.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/lower_third-rise.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/overlay-minimal.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/overlay-pips.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/overlay-plate.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/overlay-ticker.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/overlay-timeline.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/slate-default.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/slate-rise.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/title_page-default.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/title_page-rise.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/transition-wipe.webp +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/sting-wipe.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/thumbnail.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/share_card_fallback.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/templates/action-cut.yaml +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/templates/match-recap.yaml +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/voter_c_gbdt_handheld.onnx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/voter_c_gbdt_headcam.onnx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/data/voter_e_visual_probe.onnx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/__init__.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/access_requests.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/account_identity.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/comments.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/desktop_commands.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/desktop_tokens.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/device_auth.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/email.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/engine.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/export_presets.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/job_backend.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/looks.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/magic_link.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/matches.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/migrations.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/models.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/profile.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/project_state.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/recent_projects.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/schema_diff.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/scoreboard_identity.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/share_guard.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/share_tokens.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/signup_policy.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/whats_new.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/workers.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/db/youtube_connections.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/derived.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/detection_merge.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/display_name.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/division.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/__init__.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/agc_state.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/backend.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/calibration.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/clap_mel.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/decoder.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/features.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/fixtures.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/model_bundle.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/onnx_session.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/tta.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/visual.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/voters.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/export_naming.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/export_runs.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/fcp7xml_render.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/fcpxml_gen.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/fingerprint.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/fixture_schema.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/fonts.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/footage_sort.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/identity.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/lab/__init__.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/lab/core.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/lab/inventory.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/lab/model_map.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/lab/promote.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/lab/review_signals.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/lab/secondary.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/lab/snap_window.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/lab/sweeps.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/lab_cli.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/logo_placeholder.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/logo_spots.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/look_brand.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/look_motion.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/look_sandbox.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/look_sting.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/look_store.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/look_template.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/looks_cli.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/match_model.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/match_registry.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/match_trims.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/mcp/__init__.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/mcp/__main__.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/mcp/detect_tools.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/mcp/sandbox.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/mcp/tools.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/mcp/write_tools.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/model_cli.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/models/__init__.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/models/cache.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/models/download.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/models/errors.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/models/manifest.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/models/registry.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/observability.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/overlay_clock.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/overlay_html.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/overlay_layout.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/overlay_raster.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/overlay_single.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/overlay_still.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/overlay_text.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/own_fonts.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/palette_sources.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/proxy.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/queue.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/relink.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/report.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/runtime.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/safe_area.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/segment_cache.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/share_card_html.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/share_card_render.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/shooter_book.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/shot_detect.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/shot_id.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/shot_refine.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/source_cache.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/storage.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/__init__.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/auto.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/auto_state.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/base.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/beep_snippets.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/client.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/commands.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/docs.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/merge.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/migrate.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/plan.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/pull.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/push.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/reconcile.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/run.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/state.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/sync/verify.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/system_check.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/templates.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/thumbnail.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/thumbnail_card.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/trim.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/__init__.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/access_gate.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/account_backfill.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/admin_access_api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/audio.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/auto_sync.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/capabilities.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/command_runner.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/comments.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/device_auth_api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/embedded.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/export_presets_api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/export_storage.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/footage_sort_api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/http_errors.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/identity_media.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/job_journal.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/jobs.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/lab_token.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/logging_setup.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/looks_api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/match_delete.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/me_identity_api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/palette_api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/presence.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/render_bound.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/render_upload.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/route_scope.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/__init__.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/cache.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/http.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/local.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/models.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/protocol.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/reconcile.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/shooter_move.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/shooter_roster.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/stage_edit.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/sync_api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/system_api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/whats_new_api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui/youtube_api.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/.gitignore +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/01-clean-DUptHvAy.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/02-go3s-compressed-BR5Rjwao.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/03-noisy-WRXCitNT.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/04-separated-lead-in-CoyoPMjZ.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/05-continuous-lead-in-WSHOoqaO.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/06-earlier-sound-DJQGeRTD.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/07-snap-late-Gwr9mBw-.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-500-normal-BdTtxno5.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-500-normal-BeNL9t92.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-600-normal-EPyebSqZ.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-600-normal-Yrt7g9vE.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-700-normal-BY3mCh47.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-700-normal-DSH-lEDG.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-500-normal-CVAgECk3.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-500-normal-D2GogNzH.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-600-normal-CvImt78E.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-600-normal-DVBYADYa.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-700-normal-BdSkr58W.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-700-normal-D-dvgqjr.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/closing-card-DK2HIYe-.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/corpusFilter-h4iBsiio.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/fixtureDoc-CKUgPLae.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/fixtureReview-LEgX6YkS.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/footageSort-DWAPqAyU.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-400-normal-Cn3-e5nR.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-400-normal-DXusLSnH.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-500-normal-CBpO5n4G.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-500-normal-NWpm63d5.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-600-normal-BeW5VFD_.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-600-normal-DjSi8uLI.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-700-normal-BSHy2ewF.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-700-normal-ByQXRVdm.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-ext-500-normal-DWocS6Us.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-ext-600-normal-DokWo2US.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-ext-700-normal-Bkix3SrV.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-400-normal-B40WzpMT.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-400-normal-cWY99Cna.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-500-normal-CHEM4JuE.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-500-normal-CTWBw9NS.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-600-normal-BeQEdSAO.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-600-normal-CSETrqM2.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-700-normal-CFi8mLqe.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-700-normal-RGxhsL9r.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-400-normal-CND6cjiG.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-400-normal-DHhjwYCZ.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-500-normal-BovoTgeE.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-500-normal-MJioTMEP.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-600-normal-CVFbg5dS.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-600-normal-hvJIbBav.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-700-normal-BnofTsEi.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-700-normal-BwiYGq1U.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-vietnamese-400-normal-CfO6U8f5.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-vietnamese-500-normal-DUFFHuDl.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-vietnamese-600-normal-BFUgqsz8.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-vietnamese-600-normal-DpQesccB.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-vietnamese-700-normal-DOqkMreX.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-600-normal-8K4wrrwR.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-600-normal-EVf6-Yzo.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-600-normal-H7WoG9Et.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-600-normal-mc2nkWzM.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2 +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-600-normal-DObL3zCW.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-vietnamese-600-normal-OWROknRo.woff +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/match-summary-B5irSy24.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/match-summary-grid-BDvt3pYA.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/matches-NsN5m6Lk.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/overlay-DDeiqTuw.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/pip-CjCV0uZd.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/shareCameras-Cw3Zrgus.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/slugify-DeXwm6AT.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/stage-card-lower-third-BTKoaATU.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/stage-card-slate-BvJFrRHI.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/summary-hold-Bj0IZYUI.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/title-page-C5ovl-0L.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/you-CT-1EjMG.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/eslint.config.js +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/index.html +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/package.json +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/pnpm-lock.yaml +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/scripts/grandfather-visual-budget.mjs +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.account.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.audit.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.hosted.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.modegate.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.pickup.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.share.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/closing-card.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/match-summary-grid.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/match-summary.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/none.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/overlay.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/stage-card-lower-third.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/stage-card-slate.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/summary-hold.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/title-page.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/transition-cut.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/transition-static.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/transition-zoom.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/01-clean.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/02-go3s-compressed.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/03-noisy.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/04-separated-lead-in.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/05-continuous-lead-in.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/06-earlier-sound.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/07-snap-late.png +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/AccountChip.mobile.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/AccountChip.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/AppShell.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/AuditControls.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/BeepSection.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/CleanupDialog.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/CleanupDialog.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ConfirmDialog.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/DesktopOnlyNotice.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/DropGuard.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/DropGuard.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/FolderPicker.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/FolderPicker.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/HelpOverlay.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/HitlQueuePanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/HostedUploadModal.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/HostedUploadModal.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/Jobs.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ListDrawer.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/MarkerGlyph.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/MarkerLayer.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/MarkerLayer.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/MobileConfirmSheet.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/RelinkDialog.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/SettingProvenance.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ShooterScopedRoute.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ShotStepper.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/Snackbar.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/Snackbar.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/StageTimeSection.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/SweepsCard.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/UploadDock.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/UploadQueueSummary.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/VideoPanel.error.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/VideoPanel.firstFrame.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/VideoPanel.proxy.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/VideoPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/Waveform.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/AccountMenu.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/AccountMenu.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/DesktopTokensSection.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/DesktopTokensSection.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/DeviceLoginDialog.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/DeviceLoginDialog.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/HostedAccountChip.hosted.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/HostedAccountChip.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/HostedAccountChip.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/YouTubeSection.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/YouTubeSection.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/admin/RegisterWorkerSheet.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AnomalyChips.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AnomalyChips.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AnomalyPins.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AnomalyPins.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AuditChrome.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AuditFooter.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepPreview.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepReticle.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepReticle.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepStep.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepStep.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/CamGridModal.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/CamSyncPill.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/CurrentShotLine.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/MultiCamColumn.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/MultiCamColumn.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/PrereqGate.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/ShotList.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/TransportLine.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/ActionArea.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/AuditTransport.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/CameraStack.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/JumpSheet.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/JumpSheet.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/WrappedWaveform.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/WrappedWaveform.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/ZoomLane.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/ZoomLane.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/footer.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/BandSplitter.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/BandSplitter.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/CoachShotTable.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/ReviewShotList.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/SaveNotice.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/SelectedRegionCard.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/ShotHeading.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/ShotIntervalCard.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/StageNoteCard.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/StageStrip.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/StageViewer.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/comments/CommentPanel.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/comments/CommentPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/desktop/DesktopCommandLine.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/desktop/DesktopRequestsSheet.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/desktop/DesktopRequestsSheet.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/DeveloperShell.matchContext.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/DeveloperShell.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/DeveloperShell.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/CompareModelsPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/CorpusFlow.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/CorpusMap.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/FixtureSheet.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/HoldoutPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/ParametersPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/RankerPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/VersionTimeline.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/BrandPicker.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/BrandPicker.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/BrandingField.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/BrandingField.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/CodeEditor.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/CutGroup.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/DetailsGroup.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/DetailsGroup.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/DraftPreview.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/ExportHistory.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/ExportHistory.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/ExportWarnings.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/ExportWarnings.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/FontPicker.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/FontPicker.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LogoPlanField.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LogoPlanField.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LogoSpotsSwitch.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookAdvanced.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookAdvanced.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookEditor.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookGallery.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookGroup.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookHealth.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookHealth.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PaletteSuggestions.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PaletteSuggestions.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PresetRow.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PresetRow.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PreviewPane.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PreviewPane.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/SavePresetSheet.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/Seconds.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/Section.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/SelectField.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/StageTable.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/TemplateEditor.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/TemplateEditor.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/YouTubeAccessSheet.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/YouTubeAccessSheet.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/YouTubeConnect.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/YouTubeConnect.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/useYouTubeLogin.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/useYouTubeLogin.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/AddShooterSheet.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/CamerasPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/CoverageMatrix.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/FileChip.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/Footage.components.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/FootageCards.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/Sheets.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/ShootersPanel.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/ShootersPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/UnassignedPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ingest/CoverageSelect.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ingest/IngestMoveBanner.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ingest/RoleToggles.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/CandidateTable.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/DiffList.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/KeyboardLegend.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/LabelBreakdown.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/LabelDropdown.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/LabelDropdown.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/Pin.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/PromoteFromAnchorPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/PromoteStagesPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/SnippetPlayer.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/StepThroughPanel.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/StepThroughPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/TuningPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/VoterChips.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/VoterRecallTable.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/ZoomedWaveform.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/corpusFilter.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/corpusFilter.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/labAudio.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/labPalette.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/labPalette.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/labels.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/useLabRun.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/useLabRun.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/GlobalBar.hosted.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/GlobalBar.mobile.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/GlobalBar.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/GlobalBar.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/RootLayout.devRedirect.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/RootLayout.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/RootLayout.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/globalChrome.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/shellChromeContext.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/shellChromeContext.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/BeepReviewRedirect.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/DefaultShooterRedirect.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/EditStagesDrawer.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/EditStagesDrawer.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchShell.devFlip.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchShell.mobileAccount.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchShell.sidebarShortcut.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchShell.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchShell.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchSidebar.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MobileNav.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/ShooterChipStrip.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/ShooterChipStrip.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/StageCompareLink.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/StageCompareLink.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/SyncCard.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/SyncCard.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/SyncSettingsDialog.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/SyncSettingsDialog.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/render/CamOptionsPanel.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/render/CamOptionsPanel.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ReclassifySheet.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ReclassifySheet.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ResultsPlayer.moment.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ResultsPlayer.playall.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ResultsPlayer.swap.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ResultsPlayer.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/Scorecard.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ShareCameras.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ShareCameras.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ShareDialog.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ShotTicker.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ShotTicker.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/SplitsCards.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/SplitsList.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/SplitsList.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/SplitsTable.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/SplitsTable.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/StageStats.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/StageStats.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/MobileWalk.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/MobileWalk.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/Strip.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/Walk.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/Walk.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/WalkGuide.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/useWalk.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/scoreboard/CompetitorRow.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/scoreboard/ConnectMatchDialog.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/scoreboard/ResultRow.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/share/ShareShell.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/share/ShareShell.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/shooters/LogoGuide.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/shooters/LogoGuide.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/shooters/ShooterSheet.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/shooters/ShooterSheet.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/sort/ScrubThumb.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/sort/ScrubThumb.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/timeline/Timeline.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/timeline/Timeline.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/timeline/WaveformTrack.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/timeline/WaveformTrack.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/timeline/types.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Avatar.identity.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/AvatarStack.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Brand.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Chip.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Chip.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/ContextBar.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/DataTable.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/DataTable.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/DisplayHeading.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Field.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Field.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/IconButton.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Kbd.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Kicker.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Label.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Label.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Menu.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Menu.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/ModeSwitch.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/PageHeader.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/PageHeader.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/PipelineDots.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/PipelineDots.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Portal.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/ProgressStrip.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/ProgressStrip.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Readout.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Segmented.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Sheet.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/ShotTimerShell.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/StageDot.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Stat.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Stat.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/StatusPill.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Tick.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/badge.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/button.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/button.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/card.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/escapeConsumed.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/index.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/skeleton.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/useConfirm.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/video/PipView.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/video/PipView.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/whatsNew/WhatsNew.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/whatsNew/WhatsNew.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/access.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/access.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/adminAccess.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/adminAccess.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/anomalies.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/anomalies.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.coachPatch.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.compareGrid.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.matchScoped.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.stageCoachSeed.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.takeBodies.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.videoStreamUrl.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/apiErrors.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-doc.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-doc.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-input.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-next-step.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-target.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-target.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditBand.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditBand.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditConflict.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditConflict.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditKeys.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditKeys.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditPip.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditPip.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditStep.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditStep.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditVideoSrc.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditVideoSrc.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auth.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/authorAmbiguity.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/authorAmbiguity.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/authorKey.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/authorKey.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/beepQueue.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/beepQueue.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/beepTone.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/beepTone.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/breakdown.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/breakdown.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/breakdownPrefs.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/camOptions.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/camOptions.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/camPlayback.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/camPlayback.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/cameraPrefs.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/cameraPrefs.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/cameraSwitch.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/cameraSwitch.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/capabilities.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/coachPatch.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/coachPatch.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/coalescedSeek.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/coalescedSeek.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/commentAnchor.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/commentAnchor.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/compareAudio.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/compareAudio.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/defaultShooter.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/desktopCommands.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/desktopCommands.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/deviceApproveStash.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/deviceApproveStash.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/dialogFocus.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/dragDepth.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/dragDepth.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportDownloads.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportDownloads.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportLabels.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportLabels.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/features.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/features.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/firstFrame.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/fixtureDoc.corpus.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/fixtureDoc.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/fixtureDoc.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/fixtureReview.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/fixtureReview.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/footage.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/footage.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/footageSort.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/footageSort.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/format.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/format.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/identityMark.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/identityMark.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobBatch.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobBatch.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobLabels.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobLabels.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobs.batch.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobs.retry.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobs.settled.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobs.strip.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobs.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/keyboard.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lazyPage.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lazyPage.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/logoPlan.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/logoPlan.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/logoSpots.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lookEditor.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lookEditor.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lookGallery.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lookHealth.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/matchDelete.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/matchDelete.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/matchHref.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/matches.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/matches.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/menuPlacement.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/menuPlacement.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/mobileAuditNav.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/mobileAuditNav.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/mode.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/modelMap.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/modelMap.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/moment.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/moment.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/overlayStyle.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/overlayStyle.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/palette.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/palette.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/peak-snap.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/peak-snap.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pending.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pending.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/phoneCameraStack.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/phoneCameraStack.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pip.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pip.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pipPrefs.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pipSync.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pipSync.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/platform.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/promoteDrift.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/promoteDrift.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/reticle.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/reticle.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/reviewZoom.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/reviewZoom.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/riseFoot.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/riseFoot.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/scrollWithin.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/scrollWithin.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/scrub-audio.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/scrub-audio.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shareCameras.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shareCameras.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shareView.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shellChrome.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shooters.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shooters.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/slugify.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/slugify.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/splits.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/splitsTable.sort.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/splitsTable.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/splitsTable.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageCameras.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageCameras.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageLink.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageLink.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageStatus.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/takeDamage.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/takeDamage.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/takes.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/templateEditor.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/templateEditor.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/timeBudget.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/timelinePrefs.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/timelinePrefs.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/uploadStats.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/uploadStats.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/uploads.refusal.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/uploads.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useActiveShare.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useActiveShare.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useAuditPlayback.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useAuditPlayback.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useBandSplit.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useBeepQueue.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useBeepQueue.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useDecodedAudio.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useDesktopCommands.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useDevFlipRedirect.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useDevFlipRedirect.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useIsMobile.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useLooks.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useLooks.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useNoteAutosave.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useNoteAutosave.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/usePip.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/usePrimaryAudio.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/usePrimaryAudio.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useScrubSource.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useShareCameraData.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useShortViewport.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useStageEvents.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useStageEvents.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useWhatsNew.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/utils.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/walk.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/walk.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/whatsNew.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/whatsNew.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/you.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/you.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/youtubeAccess.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/youtubeRows.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/youtubeRows.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/zoomKeys.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/zoomKeys.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/main.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Account.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Account.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/AdminAccess.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/AdminAccess.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/AdminWorkers.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/AdminWorkers.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.fixture.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.recheck.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.refusal.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.reload.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.seat.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.timeline.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Breakdown.navCount.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.cameras.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.isShareView.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.playall.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.stickyCameras.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/CreateMatch.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/CreateMatch.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Design.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/DesktopApprove.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/DesktopApprove.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.cleanup.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.compareGrid.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.desktopRender.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.hostedCopy.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.look.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.presets.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.youtube.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/FootageSort.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/FootageSort.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Home.capabilities.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Home.overview.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Home.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.addFootage.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.emptyState.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.proxyPoll.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.sortAcross.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.swapPrimary.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.takeEdits.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.takeRepair.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Login.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Login.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MergeMatches.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileAudit.desktopCommands.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileAudit.fixture.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileAudit.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileAudit.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileBeepReview.beforeClip.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileBeepReview.recheck.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileBeepReview.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileBeepReview.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Pick.continue.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Pick.deleteMatch.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Pick.devMode.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Pick.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Pick.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/PromoteReview.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Results.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Results.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ResultsStage.cameras.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ResultsStage.playall.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ResultsStage.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ResultsStage.trimstale.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ResultsStage.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Review.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Review.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Shooters.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Shooters.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/TakeOverview.access.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/TakeOverview.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/You.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/You.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/CameraMenu.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/CinemaBar.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/LeaderboardRail.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/LeaderboardRail.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/TransportDock.moment.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/TransportDock.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/TransportDock.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/format.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevCorpus.eval.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevCorpus.filterlink.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevCorpus.promote.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevCorpus.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevFixtureDetail.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevFixtureDetail.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevModels.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevRetrain.reattach.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevRetrain.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevReviewQueue.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevReviewQueue.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevValidate.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevValidate.tuning.test.tsx +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ingest/model.take.test.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ingest/model.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/test/lazyRoutes.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/test/transitionFamilies.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/testSetup.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/vite-env.d.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/tsconfig.app.json +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/tsconfig.json +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/tsconfig.node.json +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/tsconfig.node.tsbuildinfo +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/vite.config.ts +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/user_config.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/video_match.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/video_probe.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/whats_new.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/worker_channel.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/worker_trigger.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/youtube/__init__.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/youtube/cli.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/youtube/client.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/youtube/oauth.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/youtube/sealed.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/youtube/upload.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/src/splitsmith/youtube_sidecar.py +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/tests/fixtures/corpus/README.md +0 -0
- {splitsmith-0.76.0 → splitsmith-0.78.0}/tests/fixtures/schemas/README.md +0 -0
|
@@ -0,0 +1,1961 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.78.0](https://github.com/mandakan/splitsmith/compare/v0.77.0...v0.78.0) (2026-10-17)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **beep:** put the detected beep on the timer tone's start; audit the corpus beep labels ([#1532](https://github.com/mandakan/splitsmith/issues/1532)) ([487bb62](https://github.com/mandakan/splitsmith/commit/487bb6274eb95320fb39370b558cdd6d7f4e67dd))
|
|
9
|
+
* **looks:** a Broadcast Look that fills every slot and shows every region ([#1537](https://github.com/mandakan/splitsmith/issues/1537)) ([dc7cf99](https://github.com/mandakan/splitsmith/commit/dc7cf99f80b237b6e99040d72efef579c051a3ae))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* **events:** a region before a moved beep starts at the beep; one bad region no longer hides the rest ([#1534](https://github.com/mandakan/splitsmith/issues/1534)) ([6a09a55](https://github.com/mandakan/splitsmith/commit/6a09a5575e485ecb545bde5d825d576b74ad4d86))
|
|
15
|
+
* **hud:** a reload refills to the magazine's capacity, never one over ([#1536](https://github.com/mandakan/splitsmith/issues/1536)) ([753e98d](https://github.com/mandakan/splitsmith/commit/753e98dbd5da6e78a2ab08b618b039d8f90b3456))
|
|
16
|
+
|
|
17
|
+
## [0.77.0](https://github.com/mandakan/splitsmith/compare/v0.76.0...v0.77.0) (2026-10-17)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **beep:** a spectrogram and the timer's own band on the beep step, and a tone check ([#1531](https://github.com/mandakan/splitsmith/issues/1531)) ([7acd72c](https://github.com/mandakan/splitsmith/commit/7acd72c50725eb95d09fd17e5d00df3f193bfd7e))
|
|
23
|
+
* **breakdown:** draw regions ([#1523](https://github.com/mandakan/splitsmith/issues/1523)) ([68ea31f](https://github.com/mandakan/splitsmith/commit/68ea31f283b69922532caef3c5f483ce0693fe99))
|
|
24
|
+
* **breakdown:** review proposals on a phone ([#1521](https://github.com/mandakan/splitsmith/issues/1521)) ([db04d34](https://github.com/mandakan/splitsmith/commit/db04d34ac60bc7af0986e3acfddc6418a82d88fa))
|
|
25
|
+
* **breakdown:** the Draw figure is the draw region ([#1524](https://github.com/mandakan/splitsmith/issues/1524)) ([60e4b0d](https://github.com/mandakan/splitsmith/commit/60e4b0d21dcd9be03052f053b59fe2c0587f702f))
|
|
26
|
+
* **export:** a Use Breakdown switch on every export ([#1526](https://github.com/mandakan/splitsmith/issues/1526)) ([15249bf](https://github.com/mandakan/splitsmith/commit/15249bf2c07ed97024e6203ac328e298cc7de612))
|
|
27
|
+
* HUD data providers, movement proposals and Keep all ([#1518](https://github.com/mandakan/splitsmith/issues/1518)) ([7ced484](https://github.com/mandakan/splitsmith/commit/7ced4847405c33e9df7f1819f2ed7ce7bea60e79))
|
|
28
|
+
* **looks:** stage and match summary templates ([#1519](https://github.com/mandakan/splitsmith/issues/1519)) ([acffef7](https://github.com/mandakan/splitsmith/commit/acffef76e579c0f3260fb66757c458e201a0d810))
|
|
29
|
+
* **overlay:** the draw band, and shot 1 shows the draw ([#1525](https://github.com/mandakan/splitsmith/issues/1525)) ([4ce5cf9](https://github.com/mandakan/splitsmith/commit/4ce5cf96dddcd773a5c9ab6c82c1590c55b56141))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Bug Fixes
|
|
33
|
+
|
|
34
|
+
* **breakdown:** frame steps use the clip's own frame rate ([#1520](https://github.com/mandakan/splitsmith/issues/1520)) ([270ba38](https://github.com/mandakan/splitsmith/commit/270ba38b637b24ad0ec9f1898a3c178e90ac5975))
|
|
35
|
+
* **breakdown:** the band runs past the last shot; Breakdown before Coach; one draw hue ([#1527](https://github.com/mandakan/splitsmith/issues/1527)) ([55b3ff6](https://github.com/mandakan/splitsmith/commit/55b3ff65348cbcf8235f2e267670a36ee8ec8b50))
|
|
36
|
+
* **coach:** one hue map, and a pattern per class so colour is never the only cue ([#1529](https://github.com/mandakan/splitsmith/issues/1529)) ([506228e](https://github.com/mandakan/splitsmith/commit/506228e73e4ff12d36af325da785c6ba26a703f1))
|
|
37
|
+
* **overview:** count beep, shots and audit over the shooters with footage ([#1516](https://github.com/mandakan/splitsmith/issues/1516)) ([0d4e9df](https://github.com/mandakan/splitsmith/commit/0d4e9df1686fe184432eeed574867345928267f3))
|
|
38
|
+
|
|
39
|
+
## [0.76.0](https://github.com/mandakan/splitsmith/compare/v0.75.0...v0.76.0) (2026-10-16)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Features
|
|
43
|
+
|
|
44
|
+
* **audit:** the desktop beep step scales its waveform to what is on screen ([f352720](https://github.com/mandakan/splitsmith/commit/f3527207f043343c88a7588c74a112bbcda0e85a))
|
|
45
|
+
* **detection:** choose a stage's shots together with a whole-stage decoder, on by default ([9bde3f0](https://github.com/mandakan/splitsmith/commit/9bde3f0d004b5a33f047b4fe85f1731c1e3f638e))
|
|
46
|
+
* **footage:** link a shooter added by name to the scoreboard ([a41aa82](https://github.com/mandakan/splitsmith/commit/a41aa82e6cad8e609b2bcfe97cb3809edba15e05))
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
### Bug Fixes
|
|
50
|
+
|
|
51
|
+
* **audit:** reload the stage when its detection ends between two polls ([ad4caf1](https://github.com/mandakan/splitsmith/commit/ad4caf15e63a8b8b9d515d090b613086b45a4851))
|
|
52
|
+
* **footage-sort:** naming a clip never undoes the clip named before it ([86012b2](https://github.com/mandakan/splitsmith/commit/86012b2b6168550b641ed0587a5f53b1ebf6bd2b))
|
|
53
|
+
* **footage:** making a clip primary swaps safely, keeping a confirmed beep and a backup ([e83295e](https://github.com/mandakan/splitsmith/commit/e83295ec8aa3bdee066371932cd9d71017a9a577))
|
|
54
|
+
|
|
55
|
+
## [0.75.0](https://github.com/mandakan/splitsmith/compare/v0.74.0...v0.75.0) (2026-10-15)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
### Features
|
|
59
|
+
|
|
60
|
+
* **beep:** a secondary's beep may start before its clip; Höstfinalen re-snapped ([#1491](https://github.com/mandakan/splitsmith/issues/1491)) ([cbf4fef](https://github.com/mandakan/splitsmith/commit/cbf4feff8a771a5552765bbfcbcf762a977e7fdf))
|
|
61
|
+
|
|
62
|
+
## [0.74.0](https://github.com/mandakan/splitsmith/compare/v0.73.1...v0.74.0) (2026-10-15)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
### Features
|
|
66
|
+
|
|
67
|
+
* **beep:** the phone's beep picker fits a quiet beep and snaps to its start ([#1489](https://github.com/mandakan/splitsmith/issues/1489)) ([fcaea4f](https://github.com/mandakan/splitsmith/commit/fcaea4f86c34fcc431f31e62950b4ada9cb60e5b))
|
|
68
|
+
|
|
69
|
+
## [0.73.1](https://github.com/mandakan/splitsmith/compare/v0.73.0...v0.73.1) (2026-10-15)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### Bug Fixes
|
|
73
|
+
|
|
74
|
+
* **sync:** a confirmed secondary keeps its beep snippet for the recheck ([#1487](https://github.com/mandakan/splitsmith/issues/1487)) ([87b1122](https://github.com/mandakan/splitsmith/commit/87b11227281f172ce8853d7d67988ed78984e062))
|
|
75
|
+
|
|
76
|
+
## [0.73.0](https://github.com/mandakan/splitsmith/compare/v0.72.0...v0.73.0) (2026-10-14)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
### Features
|
|
80
|
+
|
|
81
|
+
* recheck secondary beeps, review fixtures on the phone; Höstfinalen XI in the corpus ([#1485](https://github.com/mandakan/splitsmith/issues/1485)) ([0de03a4](https://github.com/mandakan/splitsmith/commit/0de03a48025bf9ac46e14beefcb8a2a944e245af))
|
|
82
|
+
|
|
83
|
+
## [0.72.0](https://github.com/mandakan/splitsmith/compare/v0.71.2...v0.72.0) (2026-10-14)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
### Features
|
|
87
|
+
|
|
88
|
+
* **lab:** review fixtures in the Audit page; HFO Masters 2026 reviewed ([#1482](https://github.com/mandakan/splitsmith/issues/1482)) ([34ddd73](https://github.com/mandakan/splitsmith/commit/34ddd732d3aa9765457256069e2162260b29ce52))
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
### Bug Fixes
|
|
92
|
+
|
|
93
|
+
* **audit:** Seat looks for a shot's foot from this stage's placement ([#1484](https://github.com/mandakan/splitsmith/issues/1484)) ([cdafc60](https://github.com/mandakan/splitsmith/commit/cdafc60027a44daf3553c6b03d5e5b248fb6de8b))
|
|
94
|
+
|
|
95
|
+
## [0.71.2](https://github.com/mandakan/splitsmith/compare/v0.71.1...v0.71.2) (2026-10-14)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
### Bug Fixes
|
|
99
|
+
|
|
100
|
+
* **audio:** requests read derived media, jobs make it ([#1480](https://github.com/mandakan/splitsmith/issues/1480)) ([28ff9ed](https://github.com/mandakan/splitsmith/commit/28ff9edbf206c623c24d259423e70aaac6b729b6))
|
|
101
|
+
|
|
102
|
+
## [0.71.1](https://github.com/mandakan/splitsmith/compare/v0.71.0...v0.71.1) (2026-10-13)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
### Bug Fixes
|
|
106
|
+
|
|
107
|
+
* **timeline:** keep the waveform under its markers at the end of a zoomed band ([#1478](https://github.com/mandakan/splitsmith/issues/1478)) ([2d50cf8](https://github.com/mandakan/splitsmith/commit/2d50cf8b6256af9f83c3cdb69e2af276a62c33aa))
|
|
108
|
+
|
|
109
|
+
## [0.71.0](https://github.com/mandakan/splitsmith/compare/v0.70.0...v0.71.0) (2026-10-13)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
### Features
|
|
113
|
+
|
|
114
|
+
* **audit:** beep review says when the beep sits 20 ms or more from the tone's start ([#1475](https://github.com/mandakan/splitsmith/issues/1475)) ([34401af](https://github.com/mandakan/splitsmith/commit/34401af2ff408b3a06252a1534efa510f2b1d0a3))
|
|
115
|
+
* **audit:** Earlier rise steps a shot back to the blast; Q peeks like P ([#1476](https://github.com/mandakan/splitsmith/issues/1476)) ([056455e](https://github.com/mandakan/splitsmith/commit/056455e3f1821287b5751f0e1ea3d4c9c655d894))
|
|
116
|
+
|
|
117
|
+
## [0.70.0](https://github.com/mandakan/splitsmith/compare/v0.69.1...v0.70.0) (2026-10-13)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
### Features
|
|
121
|
+
|
|
122
|
+
* **audit:** beep review draws the beep in 1 ms detail and snaps it to the tone's start ([#1474](https://github.com/mandakan/splitsmith/issues/1474)) ([c6e6602](https://github.com/mandakan/splitsmith/commit/c6e660282ebed15c2b30277caa0d7b0dcbd37d99))
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
### Bug Fixes
|
|
126
|
+
|
|
127
|
+
* **raster:** wait for the next frame before retrying a transient screenshot failure ([#1472](https://github.com/mandakan/splitsmith/issues/1472)) ([04cc2dc](https://github.com/mandakan/splitsmith/commit/04cc2dc41fc3e0788b585a181908a2a6a4e94fd2))
|
|
128
|
+
|
|
129
|
+
## [0.69.1](https://github.com/mandakan/splitsmith/compare/v0.69.0...v0.69.1) (2026-10-13)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
### Bug Fixes
|
|
133
|
+
|
|
134
|
+
* **audit:** a saved waveform is served only for the WAV it was computed from ([#1470](https://github.com/mandakan/splitsmith/issues/1470)) ([504e670](https://github.com/mandakan/splitsmith/commit/504e6703e14d50dec6db409e724d2751e5ed2b1b))
|
|
135
|
+
|
|
136
|
+
## [0.69.0](https://github.com/mandakan/splitsmith/compare/v0.68.0...v0.69.0) (2026-10-13)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
### Features
|
|
140
|
+
|
|
141
|
+
* **audit:** the phone's zoomed lane sits above the whole-stage waveform ([#1468](https://github.com/mandakan/splitsmith/issues/1468)) ([d4b018b](https://github.com/mandakan/splitsmith/commit/d4b018be83c890552dae6693da1ce4325cbdd300))
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
### Build / CI
|
|
145
|
+
|
|
146
|
+
* run the Python suite as four parallel shards; skip the suites a PR cannot affect ([#1467](https://github.com/mandakan/splitsmith/issues/1467)) ([6fd857f](https://github.com/mandakan/splitsmith/commit/6fd857f4c7dda34860da799a271afbe44c6ea0c2))
|
|
147
|
+
|
|
148
|
+
## [0.68.0](https://github.com/mandakan/splitsmith/compare/v0.67.1...v0.68.0) (2026-10-13)
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
### Features
|
|
152
|
+
|
|
153
|
+
* **audit:** Save & next, a shooter and stage picker, and Back to where you came from on the phone ([#1465](https://github.com/mandakan/splitsmith/issues/1465)) ([2b04172](https://github.com/mandakan/splitsmith/commit/2b041727d9242fae646d99883dc7a73cf9eedaf1))
|
|
154
|
+
|
|
155
|
+
## [0.67.1](https://github.com/mandakan/splitsmith/compare/v0.67.0...v0.67.1) (2026-10-13)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
### Bug Fixes
|
|
159
|
+
|
|
160
|
+
* **audit:** phone Audit taps without playing, drags across rows, holds its layout, loop follows the shot ([#1462](https://github.com/mandakan/splitsmith/issues/1462)) ([8e0748b](https://github.com/mandakan/splitsmith/commit/8e0748b6e70e187c89ac6af2a48ce76a5c64edf5))
|
|
161
|
+
|
|
162
|
+
## [0.67.0](https://github.com/mandakan/splitsmith/compare/v0.66.1...v0.67.0) (2026-10-12)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
### Features
|
|
166
|
+
|
|
167
|
+
* **audit:** Seat, Seat all and rise-foot snapping on the phone ([#1460](https://github.com/mandakan/splitsmith/issues/1460)) ([634a291](https://github.com/mandakan/splitsmith/commit/634a29151899db399271e29a8aa0774b0a4bc56e))
|
|
168
|
+
|
|
169
|
+
## [0.66.1](https://github.com/mandakan/splitsmith/compare/v0.66.0...v0.66.1) (2026-10-12)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
### Bug Fixes
|
|
173
|
+
|
|
174
|
+
* **media:** derived media heals itself (only valid files published, legacy caches renamed, files over flags) ([#1456](https://github.com/mandakan/splitsmith/issues/1456)) ([cd45354](https://github.com/mandakan/splitsmith/commit/cd45354ddc79966b5d8f219985eb9432b6783320))
|
|
175
|
+
|
|
176
|
+
## [0.66.0](https://github.com/mandakan/splitsmith/compare/v0.65.4...v0.66.0) (2026-10-12)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
### Features
|
|
180
|
+
|
|
181
|
+
* **audit:** place shots on their rise foot, at any zoom, and seat them on it ([#1454](https://github.com/mandakan/splitsmith/issues/1454)) ([86544b4](https://github.com/mandakan/splitsmith/commit/86544b40b4d6a01df268124b446a01f01048abf6))
|
|
182
|
+
* **lab:** Promote stages shows which fixtures their audits have moved on from ([#1452](https://github.com/mandakan/splitsmith/issues/1452)) ([c2000ae](https://github.com/mandakan/splitsmith/commit/c2000aefda411703ee35c79935dd9fd80e6e915e))
|
|
183
|
+
|
|
184
|
+
## [0.65.4](https://github.com/mandakan/splitsmith/compare/v0.65.3...v0.65.4) (2026-10-12)
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
### Bug Fixes
|
|
188
|
+
|
|
189
|
+
* **video:** a paused player in Safari always sits on a frame ([#1449](https://github.com/mandakan/splitsmith/issues/1449)) ([aebe86d](https://github.com/mandakan/splitsmith/commit/aebe86d303ddaf645b3d2cdad4ec8b8386c86cc0))
|
|
190
|
+
|
|
191
|
+
## [0.65.3](https://github.com/mandakan/splitsmith/compare/v0.65.2...v0.65.3) (2026-10-12)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
### Bug Fixes
|
|
195
|
+
|
|
196
|
+
* **video:** Safari shows a stage video's first frame before Play ([#1446](https://github.com/mandakan/splitsmith/issues/1446)) ([c0b7588](https://github.com/mandakan/splitsmith/commit/c0b75885e70af63fb66543426fb4d37cc5dcaec1))
|
|
197
|
+
|
|
198
|
+
## [0.65.2](https://github.com/mandakan/splitsmith/compare/v0.65.1...v0.65.2) (2026-10-12)
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
### Bug Fixes
|
|
202
|
+
|
|
203
|
+
* **audit:** the phone's whole-stage waveform sits under its shot marks ([#1443](https://github.com/mandakan/splitsmith/issues/1443)) ([d15e412](https://github.com/mandakan/splitsmith/commit/d15e412b668cc62400c89c2036e7b35e2fcb0eea))
|
|
204
|
+
* **breakdown:** an arrow nudge seeks to the edge it moved ([#1437](https://github.com/mandakan/splitsmith/issues/1437)) ([efc91c1](https://github.com/mandakan/splitsmith/commit/efc91c1476e582cca0e155dadeb6fb5872eec70d))
|
|
205
|
+
* **breakdown:** the video follows a dragged region edge; snapping can be turned off ([#1440](https://github.com/mandakan/splitsmith/issues/1440)) ([#1441](https://github.com/mandakan/splitsmith/issues/1441)) ([f0ac86d](https://github.com/mandakan/splitsmith/commit/f0ac86d6dd2984ca622c2121398d0af0f1d2a065))
|
|
206
|
+
* **sync:** media uploads wait long enough for a part on a home uplink ([#1445](https://github.com/mandakan/splitsmith/issues/1445)) ([3e33668](https://github.com/mandakan/splitsmith/commit/3e33668a73684fcbe43923d05fb58e4ed82eb757))
|
|
207
|
+
|
|
208
|
+
## [0.65.1](https://github.com/mandakan/splitsmith/compare/v0.65.0...v0.65.1) (2026-10-11)
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
### Bug Fixes
|
|
212
|
+
|
|
213
|
+
* **cards:** logos never collide, cover text or upscale; upright cards keep out of the safe area ([#1436](https://github.com/mandakan/splitsmith/issues/1436)) ([582bb2c](https://github.com/mandakan/splitsmith/commit/582bb2c82fe0dd7de443d9464ab6725f766e359a))
|
|
214
|
+
* **overlay:** the HUD never runs late on a clip that starts less than the pre-buffer before the beep ([#1430](https://github.com/mandakan/splitsmith/issues/1430)) ([#1434](https://github.com/mandakan/splitsmith/issues/1434)) ([42420ac](https://github.com/mandakan/splitsmith/commit/42420ac8dc3b8d1bbcd1123384084835eb7aacb0))
|
|
215
|
+
|
|
216
|
+
## [0.65.0](https://github.com/mandakan/splitsmith/compare/v0.64.1...v0.65.0) (2026-10-11)
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
### Features
|
|
220
|
+
|
|
221
|
+
* **audit:** flag a stage time the audit disagrees with, and show where the timer stopped ([#1313](https://github.com/mandakan/splitsmith/issues/1313)) ([d7ffc3c](https://github.com/mandakan/splitsmith/commit/d7ffc3cdd38e03da2c75a99c367cfcc25fd7db6a))
|
|
222
|
+
* **audit:** the beep step on the full-width timeline ([#1352](https://github.com/mandakan/splitsmith/issues/1352)) ([1eff01a](https://github.com/mandakan/splitsmith/commit/1eff01aca7282800245644223df24d2b8bbf344c))
|
|
223
|
+
* **audit:** the other cameras show as a PiP inset ([#1407](https://github.com/mandakan/splitsmith/issues/1407)) ([#1416](https://github.com/mandakan/splitsmith/issues/1416)) ([be3d891](https://github.com/mandakan/splitsmith/commit/be3d891618c96b61173a28a4b2c30ec5d041f2de))
|
|
224
|
+
* **audit:** the phone's Video dialog stacks the other camera ([#1410](https://github.com/mandakan/splitsmith/issues/1410)) ([#1423](https://github.com/mandakan/splitsmith/issues/1423)) ([0b29f26](https://github.com/mandakan/splitsmith/commit/0b29f26a11f82514fedcabdf34ab05747847ea2a))
|
|
225
|
+
* **audit:** the transport, camera label and legend live in the timeline band header ([#1359](https://github.com/mandakan/splitsmith/issues/1359)) ([#1404](https://github.com/mandakan/splitsmith/issues/1404)) ([df4fe88](https://github.com/mandakan/splitsmith/commit/df4fe88c7080f04cd38f35a9c2417147a5d4cefa))
|
|
226
|
+
* **audit:** the waveform, markers and pins on the full-width timeline ([#1352](https://github.com/mandakan/splitsmith/issues/1352)) ([beb5a11](https://github.com/mandakan/splitsmith/commit/beb5a11153f93c45cf72ff3f02f11ae8e133a732))
|
|
227
|
+
* **breakdown:** a fixed-workspace editor for regions and intervals ([#1371](https://github.com/mandakan/splitsmith/issues/1371)) ([9f75e83](https://github.com/mandakan/splitsmith/commit/9f75e83e561e3a978800c1076df6501f8bf0870a))
|
|
228
|
+
* **breakdown:** an inspector that folds and a splitter above the band ([#1372](https://github.com/mandakan/splitsmith/issues/1372), [#1373](https://github.com/mandakan/splitsmith/issues/1373)) ([75f1d67](https://github.com/mandakan/splitsmith/commit/75f1d676989728af847e3169e3879d66e3743d65))
|
|
229
|
+
* **coach:** a full-width zoomable timeline with the stage audio ([#1352](https://github.com/mandakan/splitsmith/issues/1352)) ([7bf03ef](https://github.com/mandakan/splitsmith/commit/7bf03ef49cbbe8eaf0b7a977624f4ee832ab45c9))
|
|
230
|
+
* **coach:** Coach and Breakdown show a second camera as a PiP inset ([#1409](https://github.com/mandakan/splitsmith/issues/1409)) ([#1418](https://github.com/mandakan/splitsmith/issues/1418)) ([f6ee17d](https://github.com/mandakan/splitsmith/commit/f6ee17d8539fd0079d013ddf4dec503bf7e2945e))
|
|
231
|
+
* **coach:** Coach becomes the review page ([#1374](https://github.com/mandakan/splitsmith/issues/1374), [#1375](https://github.com/mandakan/splitsmith/issues/1375), [#1376](https://github.com/mandakan/splitsmith/issues/1376), [#1377](https://github.com/mandakan/splitsmith/issues/1377)) ([#1392](https://github.com/mandakan/splitsmith/issues/1392)) ([fc25d7c](https://github.com/mandakan/splitsmith/commit/fc25d7ccce043e2540210b1d8f29e19d8e259b24))
|
|
232
|
+
* **coach:** exposed reload time replaces overhang ([#1328](https://github.com/mandakan/splitsmith/issues/1328)) ([e0692ef](https://github.com/mandakan/splitsmith/commit/e0692efde59eb7cd3e32474b37df81f430712516))
|
|
233
|
+
* **coach:** stage events and the lane editor ([#1312](https://github.com/mandakan/splitsmith/issues/1312)) ([cbe0e9e](https://github.com/mandakan/splitsmith/commit/cbe0e9ef76627a48fd524fcd8da255583c0d450f))
|
|
234
|
+
* **detect:** report shots at the rise foot, score at the detector's own walk ([#1386](https://github.com/mandakan/splitsmith/issues/1386)) ([82c3795](https://github.com/mandakan/splitsmith/commit/82c3795ec06cb7275f9b3a6358c26aa8e6ab6b17))
|
|
235
|
+
* **ensemble:** retrain voter C with the Höstfinalen headcam fixtures ([#1355](https://github.com/mandakan/splitsmith/issues/1355)) ([b6e74c8](https://github.com/mandakan/splitsmith/commit/b6e74c82f661a271e59b8f1796791189fd97b3f8))
|
|
236
|
+
* **ensemble:** stage-relative features for voter C ([#1357](https://github.com/mandakan/splitsmith/issues/1357)) ([2a91e72](https://github.com/mandakan/splitsmith/commit/2a91e72061bec216589387d2bfcf05349b140bdf))
|
|
237
|
+
* **export:** a designed YouTube thumbnail card ([#1343](https://github.com/mandakan/splitsmith/issues/1343)) ([1cf861b](https://github.com/mandakan/splitsmith/commit/1cf861b200a11a5b0927a70557fed92a435b2244))
|
|
238
|
+
* **export:** an end screen closing card and your brand over the footage ([#1344](https://github.com/mandakan/splitsmith/issues/1344)) ([a39aa0b](https://github.com/mandakan/splitsmith/commit/a39aa0b36a673bf9ac799faf803755637cd18c6a))
|
|
239
|
+
* **export:** logo spots, your brand on the wipe and the shooter's logo on the summaries ([#1342](https://github.com/mandakan/splitsmith/issues/1342)) ([db87351](https://github.com/mandakan/splitsmith/commit/db87351740c13a84098b1dbacd4230f6badca8d6))
|
|
240
|
+
* **export:** pick an overlay style on the Export page (slice 3b) ([#1309](https://github.com/mandakan/splitsmith/issues/1309)) ([2d0b6da](https://github.com/mandakan/splitsmith/commit/2d0b6dae341c6f713848f563c4c75e60a4eeee8e))
|
|
241
|
+
* **lab:** every secondary angle as a needs-review fixture, audio in R2 ([#1367](https://github.com/mandakan/splitsmith/issues/1367)) ([fef6ac3](https://github.com/mandakan/splitsmith/commit/fef6ac3f94e5bfd57e08873763c309b52d3f1082))
|
|
242
|
+
* **lab:** review inventory points at shots whose leading edge disagrees; camera timing findings ([#1384](https://github.com/mandakan/splitsmith/issues/1384)) ([05d2f0b](https://github.com/mandakan/splitsmith/commit/05d2f0b3a52668a49540d8d480f25184a99f1023))
|
|
243
|
+
* **lab:** review queue puts doubtful shot times first; Mark reviewed in the editor ([#1382](https://github.com/mandakan/splitsmith/issues/1382)) ([d971c38](https://github.com/mandakan/splitsmith/commit/d971c386c34eae2749ffdf5cf969fde1c546ef06))
|
|
244
|
+
* **lab:** step through a fixture's shot times one key per disagreement ([#1389](https://github.com/mandakan/splitsmith/issues/1389)) ([b8de8ef](https://github.com/mandakan/splitsmith/commit/b8de8ef3ef65cb79c8add1d157c31fa403c1c9ca))
|
|
245
|
+
* **looks:** looks check and a starter for overlay styles (slice 4) ([#1311](https://github.com/mandakan/splitsmith/issues/1311)) ([69bf728](https://github.com/mandakan/splitsmith/commit/69bf7286b24eb8c4c0acd5008531816bd7da8526))
|
|
246
|
+
* **looks:** Pips, Ticker, Timeline and Minimal HUD styles (slice 2) ([#1307](https://github.com/mandakan/splitsmith/issues/1307)) ([00e230e](https://github.com/mandakan/splitsmith/commit/00e230ea0bb706dc228b7dc7ce9ee342686223e6))
|
|
247
|
+
* **overlay:** overlay styles on the export requests, presets and catalog (slice 3a) ([#1308](https://github.com/mandakan/splitsmith/issues/1308)) ([dc12f53](https://github.com/mandakan/splitsmith/commit/dc12f5375acbe98fbb96a852cb2929aad31d8a41))
|
|
248
|
+
* **overlay:** speed colours off by default, with an explanation on the Export page ([#1315](https://github.com/mandakan/splitsmith/issues/1315)) ([309a968](https://github.com/mandakan/splitsmith/commit/309a968ea89a31a21b6ae031148efb63ce9835dc))
|
|
249
|
+
* **overlay:** stage events in videos and exports ([#1320](https://github.com/mandakan/splitsmith/issues/1320)) ([049ff97](https://github.com/mandakan/splitsmith/commit/049ff97f91623cc5ed969159a0d2eaa39bb722f8))
|
|
250
|
+
* **overlay:** template HUD styles, slice 1 (engine + Plate) ([#1306](https://github.com/mandakan/splitsmith/issues/1306)) ([b8ea064](https://github.com/mandakan/splitsmith/commit/b8ea064fc24b67eca47637f2cad02eb6851a8351))
|
|
251
|
+
* **overlay:** the live HUD keeps out of the upright safe area ([#1394](https://github.com/mandakan/splitsmith/issues/1394)) ([#1426](https://github.com/mandakan/splitsmith/issues/1426)) ([a82d75c](https://github.com/mandakan/splitsmith/commit/a82d75ca5d9b711d65b79d8e1b8b59563ec890a9))
|
|
252
|
+
* place shots to the millisecond in Audit and fixture review ([#1368](https://github.com/mandakan/splitsmith/issues/1368)) ([7785da4](https://github.com/mandakan/splitsmith/commit/7785da4e7f7d6d07aa4bd5733dc1995d1bac2485))
|
|
253
|
+
* **preview:** show where each logo goes with labelled placeholders ([#1317](https://github.com/mandakan/splitsmith/issues/1317)) ([a996a41](https://github.com/mandakan/splitsmith/commit/a996a41d9d72e607fac29f38b436acbe79a5721e))
|
|
254
|
+
* **shooters:** a Shooters page, an account menu, and the shooter book wins ([#1318](https://github.com/mandakan/splitsmith/issues/1318)) ([f650e0f](https://github.com/mandakan/splitsmith/commit/f650e0f61e6bf4489ba25c44cbb2b5048afc6b5c))
|
|
255
|
+
* **splits:** the stage page shows the other camera as a PiP inset ([#1408](https://github.com/mandakan/splitsmith/issues/1408)) ([#1414](https://github.com/mandakan/splitsmith/issues/1414)) ([1a02fc2](https://github.com/mandakan/splitsmith/commit/1a02fc2f0def26c685b6691500931467ad92684a))
|
|
256
|
+
* **summary:** upright compare-grid summaries ([#1394](https://github.com/mandakan/splitsmith/issues/1394)) ([#1427](https://github.com/mandakan/splitsmith/issues/1427)) ([0dd5a8f](https://github.com/mandakan/splitsmith/commit/0dd5a8fd36bca713e3201a11a50c02720c060b72))
|
|
257
|
+
* **summary:** upright single-shooter summary cards and the upright safe area ([#1394](https://github.com/mandakan/splitsmith/issues/1394)) ([#1424](https://github.com/mandakan/splitsmith/issues/1424)) ([92c42c5](https://github.com/mandakan/splitsmith/commit/92c42c5746734fa1245ccf58855476d8aefc91ae))
|
|
258
|
+
* **ui:** the PipView primitive for picture-in-picture cameras ([#1406](https://github.com/mandakan/splitsmith/issues/1406)) ([#1413](https://github.com/mandakan/splitsmith/issues/1413)) ([ddeac6b](https://github.com/mandakan/splitsmith/commit/ddeac6b465049068b6b580d4bf73e0ab6b0ba320))
|
|
259
|
+
* **you:** a guide to where each logo goes ([#1319](https://github.com/mandakan/splitsmith/issues/1319)) ([ebc9176](https://github.com/mandakan/splitsmith/commit/ebc91766add78e3c800da3e786126a3dc63190f5))
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
### Bug Fixes
|
|
263
|
+
|
|
264
|
+
* **audit:** beep picker cleanup after the beep step moved onto the band ([#1360](https://github.com/mandakan/splitsmith/issues/1360)) ([#1398](https://github.com/mandakan/splitsmith/issues/1398)) ([6c84bca](https://github.com/mandakan/splitsmith/commit/6c84bcaf984e73645db717939601771c70c6fbb4))
|
|
265
|
+
* **audit:** finish goes to Splits, and a refused save no longer drops edits ([#1314](https://github.com/mandakan/splitsmith/issues/1314)) ([ae5cbe3](https://github.com/mandakan/splitsmith/commit/ae5cbe33e5d0f666a90e5789972c637559781ccc))
|
|
266
|
+
* **audit:** the phone's shot video opens at the shot it was pressed on ([#1419](https://github.com/mandakan/splitsmith/issues/1419)) ([#1420](https://github.com/mandakan/splitsmith/issues/1420)) ([1778480](https://github.com/mandakan/splitsmith/commit/1778480a3ca50214835248628216fd3454607a49))
|
|
267
|
+
* **coach:** a failed region save says so inline ([#1346](https://github.com/mandakan/splitsmith/issues/1346)) ([76277e7](https://github.com/mandakan/splitsmith/commit/76277e7ddf33a493749e5881450bb52438afb8eb))
|
|
268
|
+
* **coach:** a no-op drag or a blocked nudge does not save ([#1325](https://github.com/mandakan/splitsmith/issues/1325)) ([8f1825d](https://github.com/mandakan/splitsmith/commit/8f1825d0f42d4db68d5a80a718679af6bb1a3dd9))
|
|
269
|
+
* **coach:** a stage without a name is clickable, and the proposal label fits ([#1349](https://github.com/mandakan/splitsmith/issues/1349)) ([4910bb6](https://github.com/mandakan/splitsmith/commit/4910bb63ff1a1bf129c203d90403259d7148cbf7))
|
|
270
|
+
* **coach:** a touch drag on a lane is an edit, never a pan ([#1326](https://github.com/mandakan/splitsmith/issues/1326)) ([9f3f105](https://github.com/mandakan/splitsmith/commit/9f3f105cfb3a56213fe61bcbdd0baf3ff0516e2b))
|
|
271
|
+
* **coach:** an in-flight region save never reverts or drops an edit ([#1345](https://github.com/mandakan/splitsmith/issues/1345)) ([8c9bf1f](https://github.com/mandakan/splitsmith/commit/8c9bf1f7865bd8f043032e31a5a05e0070371a1b))
|
|
272
|
+
* **coach:** reload proposals follow the round count ([#1350](https://github.com/mandakan/splitsmith/issues/1350)) ([eb5be1a](https://github.com/mandakan/splitsmith/commit/eb5be1a077445fec31af04c780f4036269f0234c))
|
|
273
|
+
* **coach:** the lane editor works from the keyboard and reads out its regions ([#1327](https://github.com/mandakan/splitsmith/issues/1327)) ([740b68e](https://github.com/mandakan/splitsmith/commit/740b68e1f3a9c12ab98763ad967bc212c4009766))
|
|
274
|
+
* **coach:** the stat strip's region figures update instantly ([#1347](https://github.com/mandakan/splitsmith/issues/1347)) ([f64c3c4](https://github.com/mandakan/splitsmith/commit/f64c3c40d9ede79ec32b0372142f4c06ae1cbe42))
|
|
275
|
+
* **compare:** the grid's tile counter never runs into the clock ([#1421](https://github.com/mandakan/splitsmith/issues/1421)) ([#1425](https://github.com/mandakan/splitsmith/issues/1425)) ([5f4347b](https://github.com/mandakan/splitsmith/commit/5f4347b79c8941d13c296914290f297ca0987931))
|
|
276
|
+
* **events:** proposals never classify, reads never write, seeding never 500s ([#1429](https://github.com/mandakan/splitsmith/issues/1429)) ([50b3794](https://github.com/mandakan/splitsmith/commit/50b37941435b628889a0cdbb5a38823d7ebc7cd8))
|
|
277
|
+
* **export:** overlay reuse follows the Look's palette and faces; the CLI match export uses the rule ([#1403](https://github.com/mandakan/splitsmith/issues/1403)) ([#1412](https://github.com/mandakan/splitsmith/issues/1412)) ([b7dc8a9](https://github.com/mandakan/splitsmith/commit/b7dc8a976ce8cf3fa7ff57e9721ffd74c49e2890))
|
|
278
|
+
* **looks:** a copied Look draws the current shipped cards, and old copies can catch up ([#1316](https://github.com/mandakan/splitsmith/issues/1316)) ([cbcb7f1](https://github.com/mandakan/splitsmith/commit/cbcb7f190389b81193c3ff3b85e03db1f803351d))
|
|
279
|
+
* **looks:** template caches follow the shared scripts; one HUD helper script ([#1337](https://github.com/mandakan/splitsmith/issues/1337), [#1338](https://github.com/mandakan/splitsmith/issues/1338), [#1339](https://github.com/mandakan/splitsmith/issues/1339)) ([#1401](https://github.com/mandakan/splitsmith/issues/1401)) ([b905f92](https://github.com/mandakan/splitsmith/commit/b905f92ed655ce5f1c5d5d171af006792040f848))
|
|
280
|
+
* **looks:** the editor no longer offers the unused slow-split colour ([#1340](https://github.com/mandakan/splitsmith/issues/1340)) ([#1396](https://github.com/mandakan/splitsmith/issues/1396)) ([3461d2d](https://github.com/mandakan/splitsmith/commit/3461d2de2a4b28dbff5dfbd512cdb200eb760588))
|
|
281
|
+
* **mcp:** the detect_shots reset shares the server's reset rule ([#1380](https://github.com/mandakan/splitsmith/issues/1380)) ([#1399](https://github.com/mandakan/splitsmith/issues/1399)) ([f654bd7](https://github.com/mandakan/splitsmith/commit/f654bd7ddefafd57353b24e104ad040e64dcba31))
|
|
282
|
+
* **share:** share links never carry shot notes from the distributions route ([#1390](https://github.com/mandakan/splitsmith/issues/1390)) ([424529e](https://github.com/mandakan/splitsmith/commit/424529e9c985aa2b93b9d643b926f5ba9a53b19d))
|
|
283
|
+
* **shell:** a stage picked in the sidebar stays on the page you are on ([#1348](https://github.com/mandakan/splitsmith/issues/1348)) ([115834a](https://github.com/mandakan/splitsmith/commit/115834a201324a3fddebc6cee0e95a53660cba1a))
|
|
284
|
+
* stage events server hygiene ([#1329](https://github.com/mandakan/splitsmith/issues/1329) [#1330](https://github.com/mandakan/splitsmith/issues/1330) [#1331](https://github.com/mandakan/splitsmith/issues/1331) [#1332](https://github.com/mandakan/splitsmith/issues/1332) [#1333](https://github.com/mandakan/splitsmith/issues/1333)) ([8513853](https://github.com/mandakan/splitsmith/commit/851385381ea7e36e51552bb8bb097064e56e67ea))
|
|
285
|
+
* **summary:** a dense upright grid hold never runs one split figure into the next ([#1417](https://github.com/mandakan/splitsmith/issues/1417)) ([#1422](https://github.com/mandakan/splitsmith/issues/1422)) ([ec534de](https://github.com/mandakan/splitsmith/commit/ec534de411d5b3dd06196e2a0cf109859b0e3234))
|
|
286
|
+
* Timeline, Ticker and the match summary on upright video ([#1334](https://github.com/mandakan/splitsmith/issues/1334), [#1335](https://github.com/mandakan/splitsmith/issues/1335), [#1336](https://github.com/mandakan/splitsmith/issues/1336)) ([#1395](https://github.com/mandakan/splitsmith/issues/1395)) ([178d47d](https://github.com/mandakan/splitsmith/commit/178d47daa84bffbba436b14e09b5a46e329ec0ba))
|
|
287
|
+
* **timeline:** a sideways swipe on a timeline page never navigates back ([e233d26](https://github.com/mandakan/splitsmith/commit/e233d2637495875808c4a5793738ddbe1c228f80))
|
|
288
|
+
* **you:** a first edit on Your look is never undone by the form's load ([#1364](https://github.com/mandakan/splitsmith/issues/1364)) ([#1397](https://github.com/mandakan/splitsmith/issues/1397)) ([c8ba221](https://github.com/mandakan/splitsmith/commit/c8ba22149990bab3ad3c61f5579be2982ec050a7))
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
### Documentation
|
|
292
|
+
|
|
293
|
+
* the Breakdown and Coach review design ([#1378](https://github.com/mandakan/splitsmith/issues/1378)) ([#1393](https://github.com/mandakan/splitsmith/issues/1393)) ([43b9578](https://github.com/mandakan/splitsmith/commit/43b95782decb317e79812e56110d1bb4ff506883))
|
|
294
|
+
|
|
295
|
+
## [0.64.1](https://github.com/mandakan/splitsmith/compare/v0.64.0...v0.64.1) (2026-10-08)
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
### Bug Fixes
|
|
299
|
+
|
|
300
|
+
* **identity:** the roster and title page show the shooter book's look ([#1303](https://github.com/mandakan/splitsmith/issues/1303)) ([53f2c2c](https://github.com/mandakan/splitsmith/commit/53f2c2c486d89f5974f6c8ed8c59f5cbd2dcc913))
|
|
301
|
+
|
|
302
|
+
## [0.64.0](https://github.com/mandakan/splitsmith/compare/v0.63.0...v0.64.0) (2026-10-08)
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
### Features
|
|
306
|
+
|
|
307
|
+
* **compare:** a match summary card on the grid MP4 ([#1300](https://github.com/mandakan/splitsmith/issues/1300)) ([406fe4e](https://github.com/mandakan/splitsmith/commit/406fe4ed5623c60db2245cf625a1f16dfb52c17d))
|
|
308
|
+
* **export:** a match summary card at the end of the video ([#1298](https://github.com/mandakan/splitsmith/issues/1298)) ([3e46937](https://github.com/mandakan/splitsmith/commit/3e46937156216c5c0c7834791f90d1aab09cf3c1))
|
|
309
|
+
* **hosted:** the shooter book and account brand on splitsmith.app ([#1302](https://github.com/mandakan/splitsmith/issues/1302)) ([d51b550](https://github.com/mandakan/splitsmith/commit/d51b5502c15c92fb30648b9c7e05880cc85fa328))
|
|
310
|
+
* **identity:** You, your brand and the shooter book (local) ([#1301](https://github.com/mandakan/splitsmith/issues/1301)) ([31d2c2f](https://github.com/mandakan/splitsmith/commit/31d2c2f78b570e744bd8512cbe55b4ba2948feeb))
|
|
311
|
+
|
|
312
|
+
## [0.63.0](https://github.com/mandakan/splitsmith/compare/v0.62.0...v0.63.0) (2026-10-07)
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
### Features
|
|
316
|
+
|
|
317
|
+
* **identity:** a shooter's club line from the scoreboard ([#1292](https://github.com/mandakan/splitsmith/issues/1292)) ([bc25281](https://github.com/mandakan/splitsmith/commit/bc25281c670b4c17ec3b6291513f665a6622f707))
|
|
318
|
+
* **looks:** "Made with splitsmith" on the closing card ([#1296](https://github.com/mandakan/splitsmith/issues/1296)) ([4904ca3](https://github.com/mandakan/splitsmith/commit/4904ca37306137ba493378f56e986662abf696b8))
|
|
319
|
+
* **looks:** event logo as the centrepiece, your brand in the corner ([#1295](https://github.com/mandakan/splitsmith/issues/1295)) ([e454875](https://github.com/mandakan/splitsmith/commit/e4548755c92464fb384980e5aaa490d3f52f35cc))
|
|
320
|
+
* **looks:** your brand on the title page and the closing card ([#1293](https://github.com/mandakan/splitsmith/issues/1293)) ([02841be](https://github.com/mandakan/splitsmith/commit/02841bef190691eb1d5dbc3ab38249aff17c561c))
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
### Documentation
|
|
324
|
+
|
|
325
|
+
* custom Look templates are desktop only ([#1297](https://github.com/mandakan/splitsmith/issues/1297)) ([90d596d](https://github.com/mandakan/splitsmith/commit/90d596d7a5b30a12686796cbb398761b829b80a6))
|
|
326
|
+
|
|
327
|
+
## [0.62.0](https://github.com/mandakan/splitsmith/compare/v0.61.0...v0.62.0) (2026-10-07)
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
### Features
|
|
331
|
+
|
|
332
|
+
* **looks:** a Look editor that says what it is doing ([#1290](https://github.com/mandakan/splitsmith/issues/1290)) ([c7f05e1](https://github.com/mandakan/splitsmith/commit/c7f05e1f20d7f9ac1a28937a873bc47faa42feba))
|
|
333
|
+
* **looks:** Make your own Look, from the Look row ([#1291](https://github.com/mandakan/splitsmith/issues/1291)) ([36b16c1](https://github.com/mandakan/splitsmith/commit/36b16c167c1651aaeb893d5d11e7643b3f803eb6))
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
### Bug Fixes
|
|
337
|
+
|
|
338
|
+
* **hosted:** Look previews on a desktop mirror were refused as edits ([#1287](https://github.com/mandakan/splitsmith/issues/1287)) ([e3790a5](https://github.com/mandakan/splitsmith/commit/e3790a5b055939a20c7f68487c88c7a6136ea447))
|
|
339
|
+
|
|
340
|
+
## [0.61.0](https://github.com/mandakan/splitsmith/compare/v0.60.0...v0.61.0) (2026-10-07)
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
### Features
|
|
344
|
+
|
|
345
|
+
* **app:** What's new, in-app release notes written for users ([#1274](https://github.com/mandakan/splitsmith/issues/1274)) ([51540a9](https://github.com/mandakan/splitsmith/commit/51540a97b6d1b4b0094575168bbcc006b0f3a224))
|
|
346
|
+
* **beep:** per-candidate ranking features, ranking unchanged ([#949](https://github.com/mandakan/splitsmith/issues/949)) ([#1251](https://github.com/mandakan/splitsmith/issues/1251)) ([b9d6737](https://github.com/mandakan/splitsmith/commit/b9d67378dca8f0ccbb8682ed13487b66f617fbdf))
|
|
347
|
+
* **beep:** rank beep candidates with the learned ranker; auto-trust at 0.97 ([#949](https://github.com/mandakan/splitsmith/issues/949)) ([#1261](https://github.com/mandakan/splitsmith/issues/1261)) ([2edf7cb](https://github.com/mandakan/splitsmith/commit/2edf7cb016440805e1fc45ebcbaa118abcdabd6f))
|
|
348
|
+
* **beep:** ranker trainer and the out-of-fold report ([#949](https://github.com/mandakan/splitsmith/issues/949)) ([#1252](https://github.com/mandakan/splitsmith/issues/1252)) ([ffa00d8](https://github.com/mandakan/splitsmith/commit/ffa00d8c4ae7f3ae8d88b82074a57c3136edf9c3))
|
|
349
|
+
* **compare:** the grid render reuses unchanged segments from the render cache ([#1284](https://github.com/mandakan/splitsmith/issues/1284)) ([91a4185](https://github.com/mandakan/splitsmith/commit/91a4185f1e1b67424e6e693e71614831be2c7a0e))
|
|
350
|
+
* **export:** moving previews of animated cards and stings ([#1249](https://github.com/mandakan/splitsmith/issues/1249)) ([#1281](https://github.com/mandakan/splitsmith/issues/1281)) ([807d902](https://github.com/mandakan/splitsmith/commit/807d9022f3919bbf25aceaf3578693f9f74727fc))
|
|
351
|
+
* **export:** warn before rendering when the chosen Look's templates fail ([#1276](https://github.com/mandakan/splitsmith/issues/1276)) ([#1280](https://github.com/mandakan/splitsmith/issues/1280)) ([2885d86](https://github.com/mandakan/splitsmith/commit/2885d861179e526982a7bbc6a50ed415cf4142cd))
|
|
352
|
+
* **gallery:** the Look gallery fed from the Looks API, per-slot variants, looping previews ([#1246](https://github.com/mandakan/splitsmith/issues/1246)) ([#1258](https://github.com/mandakan/splitsmith/issues/1258)) ([4db873c](https://github.com/mandakan/splitsmith/commit/4db873cdafb2986df8c7cbe4c06931e1723b4016))
|
|
353
|
+
* **grid-transitions:** MP4 transitions on the compare grid ([#1244](https://github.com/mandakan/splitsmith/issues/1244)) ([#1256](https://github.com/mandakan/splitsmith/issues/1256)) ([0d41488](https://github.com/mandakan/splitsmith/commit/0d414881bdf8afdc3c9620efe24d68a23ab7a262))
|
|
354
|
+
* **identity:** a shooter's accent and logo on Compare and the share views ([#1249](https://github.com/mandakan/splitsmith/issues/1249)) ([#1282](https://github.com/mandakan/splitsmith/issues/1282)) ([344cdc1](https://github.com/mandakan/splitsmith/commit/344cdc149d38c0033c68dcf43d646ce0a4d476fb))
|
|
355
|
+
* **identity:** per-shooter identity: accent, club logo, club line ([#1243](https://github.com/mandakan/splitsmith/issues/1243)) ([#1254](https://github.com/mandakan/splitsmith/issues/1254)) ([52b748a](https://github.com/mandakan/splitsmith/commit/52b748a3c33cc5623baf14c26e582283e34c81d5))
|
|
356
|
+
* **looks:** a Look's own font file, on the desktop ([#1272](https://github.com/mandakan/splitsmith/issues/1272)) ([#1285](https://github.com/mandakan/splitsmith/issues/1285)) ([54dd3e5](https://github.com/mandakan/splitsmith/commit/54dd3e51e0fb20bcde7662da8bb0a5fcf951a03b))
|
|
357
|
+
* **looks:** animated templates, the rise variant and motion segments ([#1242](https://github.com/mandakan/splitsmith/issues/1242)) ([#1253](https://github.com/mandakan/splitsmith/issues/1253)) ([213077e](https://github.com/mandakan/splitsmith/commit/213077e7ba52312a6cdef2007c0bc883e7b90017))
|
|
358
|
+
* **looks:** choose a Look's fonts from a bundled set ([#1272](https://github.com/mandakan/splitsmith/issues/1272)) ([#1279](https://github.com/mandakan/splitsmith/issues/1279)) ([2836343](https://github.com/mandakan/splitsmith/commit/283634301118224ee1749593d1c41fbb7e2333df))
|
|
359
|
+
* **looks:** palette suggestions from colour theory, the footage and the logo ([#1273](https://github.com/mandakan/splitsmith/issues/1273)) ([#1277](https://github.com/mandakan/splitsmith/issues/1277)) ([7132d6b](https://github.com/mandakan/splitsmith/commit/7132d6b4575b8008e4e65def08b7e4ea3f06182a))
|
|
360
|
+
* **looks:** per-account Look storage, local folders and hosted rows ([#1263](https://github.com/mandakan/splitsmith/issues/1263)) ([#1270](https://github.com/mandakan/splitsmith/issues/1270)) ([f78ccac](https://github.com/mandakan/splitsmith/commit/f78ccac1b77668db60f3abe808b5edd9efcfc369))
|
|
361
|
+
* **looks:** templates load in a sandbox ([#1266](https://github.com/mandakan/splitsmith/issues/1266)) ([#1286](https://github.com/mandakan/splitsmith/issues/1286)) ([084cd59](https://github.com/mandakan/splitsmith/commit/084cd599eb278985ddf902fabe3880ba11dee85d))
|
|
362
|
+
* **looks:** the authoring guide, four starters and splitsmith looks list | new | check | preview ([#1262](https://github.com/mandakan/splitsmith/issues/1262)) ([#1269](https://github.com/mandakan/splitsmith/issues/1269)) ([061a2aa](https://github.com/mandakan/splitsmith/commit/061a2aaf4f5ae0cb617c0ff0532d8998157de78b))
|
|
363
|
+
* **looks:** the Look directory, two migrated Looks, cards through templates ([#1241](https://github.com/mandakan/splitsmith/issues/1241)) ([#1250](https://github.com/mandakan/splitsmith/issues/1250)) ([ad226ab](https://github.com/mandakan/splitsmith/commit/ad226ab2fe43f12230f7863c02787889856705dc))
|
|
364
|
+
* **looks:** the Look editor, palette, card styles and a draft preview ([#1264](https://github.com/mandakan/splitsmith/issues/1264)) ([#1271](https://github.com/mandakan/splitsmith/issues/1271)) ([f71d9bb](https://github.com/mandakan/splitsmith/commit/f71d9bbffa404f8791319c494e849513b463ec5b))
|
|
365
|
+
* **looks:** the template editor, HTML in CodeMirror with a live preview ([#1265](https://github.com/mandakan/splitsmith/issues/1265)) ([#1275](https://github.com/mandakan/splitsmith/issues/1275)) ([2d69054](https://github.com/mandakan/splitsmith/commit/2d69054bb90c90b4aeaa633d3fe0c33fd4a39ef9))
|
|
366
|
+
* **stings:** sting transitions, a Look template over the boundary segment ([#1245](https://github.com/mandakan/splitsmith/issues/1245)) ([#1257](https://github.com/mandakan/splitsmith/issues/1257)) ([0f0740b](https://github.com/mandakan/splitsmith/commit/0f0740bc21f6b79042573a49bcb63ced2188af1c))
|
|
367
|
+
* **transitions:** more transitions as families with a direction, served from one list ([#1259](https://github.com/mandakan/splitsmith/issues/1259)) ([#1260](https://github.com/mandakan/splitsmith/issues/1260)) ([fcb65bb](https://github.com/mandakan/splitsmith/commit/fcb65bbe4b2687b9b0484803c727270a9ce73715))
|
|
368
|
+
* **transitions:** MP4 transitions on a boundary segment, single-shooter renderer ([#1244](https://github.com/mandakan/splitsmith/issues/1244)) ([#1255](https://github.com/mandakan/splitsmith/issues/1255)) ([5798e6c](https://github.com/mandakan/splitsmith/commit/5798e6cf396d8b9d3b34edcc83ced99b7b26b560))
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
### Bug Fixes
|
|
372
|
+
|
|
373
|
+
* CI flakes and the looks command review notes ([#1283](https://github.com/mandakan/splitsmith/issues/1283)) ([8d8df8c](https://github.com/mandakan/splitsmith/commit/8d8df8c9f2989f12b994cf0acaaeae3a5f9242a3))
|
|
374
|
+
* **commands:** a late upload success on a lapsed cancel is recorded ([#1116](https://github.com/mandakan/splitsmith/issues/1116)) ([#1235](https://github.com/mandakan/splitsmith/issues/1235)) ([d954e89](https://github.com/mandakan/splitsmith/commit/d954e89d7d022291c633d7a9957e0a7739105e49))
|
|
375
|
+
* **export:** label the timeline length and the job time apart ([#934](https://github.com/mandakan/splitsmith/issues/934)) ([#1236](https://github.com/mandakan/splitsmith/issues/1236)) ([ceaee79](https://github.com/mandakan/splitsmith/commit/ceaee79f26f41445c3108202933873d9840c40ae))
|
|
376
|
+
* **footage:** a re-imported clip is reported as skipped, not added ([#1233](https://github.com/mandakan/splitsmith/issues/1233)) ([#1234](https://github.com/mandakan/splitsmith/issues/1234)) ([f5ea456](https://github.com/mandakan/splitsmith/commit/f5ea456fc1d29d540087df62eacd074b06d9f218))
|
|
377
|
+
* **footage:** an import says why each file was skipped ([#1227](https://github.com/mandakan/splitsmith/issues/1227)) ([#1232](https://github.com/mandakan/splitsmith/issues/1232)) ([61cb728](https://github.com/mandakan/splitsmith/commit/61cb728c79c224576a700e0deaef9588d3faf6c7))
|
|
378
|
+
* **looks:** long names fit the cards' width, then ellipsize ([#1268](https://github.com/mandakan/splitsmith/issues/1268)) ([#1278](https://github.com/mandakan/splitsmith/issues/1278)) ([9fc4035](https://github.com/mandakan/splitsmith/commit/9fc4035d640bf6bcb35d57d3aafa3660d971661f))
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
### Performance
|
|
382
|
+
|
|
383
|
+
* **beep:** run the Hilbert FFT at a fast length ([#1237](https://github.com/mandakan/splitsmith/issues/1237)) ([966437f](https://github.com/mandakan/splitsmith/commit/966437fad16e614e1fa4aea82e03708784a37408))
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
### Documentation
|
|
387
|
+
|
|
388
|
+
* **spec:** rendered video first ([#1239](https://github.com/mandakan/splitsmith/issues/1239)) ([cb9ed50](https://github.com/mandakan/splitsmith/commit/cb9ed50cb3895d93d0fa386f57f5b0152b9cbaaf))
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
### Build / CI
|
|
392
|
+
|
|
393
|
+
* **deps:** bump fsspec from 2026.4.0 to 2026.6.0 ([#1219](https://github.com/mandakan/splitsmith/issues/1219)) ([e712ebb](https://github.com/mandakan/splitsmith/commit/e712ebbc922641288ed8846c8f7f21d51f655d24))
|
|
394
|
+
* **deps:** bump mako from 1.3.12 to 1.4.2 ([#1220](https://github.com/mandakan/splitsmith/issues/1220)) ([5c47706](https://github.com/mandakan/splitsmith/commit/5c477061341a59c7adb67d4fa6617c2b6d55ccb4))
|
|
395
|
+
* **deps:** bump urllib3 from 2.7.0 to 2.8.0 ([#1119](https://github.com/mandakan/splitsmith/issues/1119)) ([ad2ad91](https://github.com/mandakan/splitsmith/commit/ad2ad91eebc4dfc77e34aa3a5cee98cb5c9f5065))
|
|
396
|
+
* **deps:** bump werkzeug from 3.1.8 to 3.1.9 ([#1221](https://github.com/mandakan/splitsmith/issues/1221)) ([dfb849d](https://github.com/mandakan/splitsmith/commit/dfb849df3eb3f5abb99d53c55bb8a0eb1c891f59))
|
|
397
|
+
|
|
398
|
+
## [0.60.0](https://github.com/mandakan/splitsmith/compare/v0.59.0...v0.60.0) (2026-10-06)
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
### Features
|
|
402
|
+
|
|
403
|
+
* **footage:** the same clip from another path reads as already imported ([#1124](https://github.com/mandakan/splitsmith/issues/1124)) ([#1226](https://github.com/mandakan/splitsmith/issues/1226)) ([295e54d](https://github.com/mandakan/splitsmith/commit/295e54db9935d10f04cefa20a649ce641fae1f49))
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
### Bug Fixes
|
|
407
|
+
|
|
408
|
+
* **audit:** a trimmed stage plays even when its proxy is missing ([#1224](https://github.com/mandakan/splitsmith/issues/1224)) ([#1228](https://github.com/mandakan/splitsmith/issues/1228)) ([2cf96f8](https://github.com/mandakan/splitsmith/commit/2cf96f8961c23abd1d667e46c8413b026c8436b7))
|
|
409
|
+
* **footage:** the fingerprint backfill runs off the event loop ([#1227](https://github.com/mandakan/splitsmith/issues/1227)) ([#1229](https://github.com/mandakan/splitsmith/issues/1229)) ([a465e83](https://github.com/mandakan/splitsmith/commit/a465e8368775aebee83b56f4f4976cecbb98397f))
|
|
410
|
+
* **footage:** two clips with the same file name both import ([#1124](https://github.com/mandakan/splitsmith/issues/1124)) ([#1225](https://github.com/mandakan/splitsmith/issues/1225)) ([a6bcba7](https://github.com/mandakan/splitsmith/commit/a6bcba79411e92d9fc88a949b934c42ed199563f))
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
### Performance
|
|
414
|
+
|
|
415
|
+
* **ui:** pages load on first navigation ([#1222](https://github.com/mandakan/splitsmith/issues/1222)) ([7c98dca](https://github.com/mandakan/splitsmith/commit/7c98dcab79aee831880620df3b6db8354a4795b9))
|
|
416
|
+
|
|
417
|
+
## [0.59.0](https://github.com/mandakan/splitsmith/compare/v0.58.0...v0.59.0) (2026-10-06)
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
### Features
|
|
421
|
+
|
|
422
|
+
* **audit:** hosted Audit scrubs the 720p rendition through kind=scrub ([#1217](https://github.com/mandakan/splitsmith/issues/1217)) ([c976a17](https://github.com/mandakan/splitsmith/commit/c976a178a76a0fd25d80d3b2f77b0c1bda0cc09b))
|
|
423
|
+
* **audit:** scrub the 720p rendition instead of the 4K trim ([#1208](https://github.com/mandakan/splitsmith/issues/1208)) ([9672571](https://github.com/mandakan/splitsmith/commit/9672571530a17ae594e8713fcdc9d6c3eb1a6e8d))
|
|
424
|
+
* **youtube:** explain what connecting a channel allows before the login ([#1218](https://github.com/mandakan/splitsmith/issues/1218)) ([1c37d3a](https://github.com/mandakan/splitsmith/commit/1c37d3addcd039f7fec6c59085bd7eac596ad2e6))
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
### Bug Fixes
|
|
428
|
+
|
|
429
|
+
* **take:** find and repair a stage that lists a take's file twice ([#1216](https://github.com/mandakan/splitsmith/issues/1216)) ([be8deb6](https://github.com/mandakan/splitsmith/commit/be8deb6ce7701564ba776a274a30b269383a476c))
|
|
430
|
+
* **take:** footage edits act on the clicked stage of a single take ([#1215](https://github.com/mandakan/splitsmith/issues/1215)) ([6ccb2bd](https://github.com/mandakan/splitsmith/commit/6ccb2bd213c1185b01f97aded493a483962f51dd))
|
|
431
|
+
* **take:** stream each stage's own clip from a shared single-take source ([#1213](https://github.com/mandakan/splitsmith/issues/1213)) ([77bf328](https://github.com/mandakan/splitsmith/commit/77bf328b6b80d945979606199aeb833d5df28593))
|
|
432
|
+
|
|
433
|
+
## [0.58.0](https://github.com/mandakan/splitsmith/compare/v0.57.0...v0.58.0) (2026-10-05)
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
### Features
|
|
437
|
+
|
|
438
|
+
* **export:** print the shooter's division on the title page ([#1206](https://github.com/mandakan/splitsmith/issues/1206)) ([b1028c5](https://github.com/mandakan/splitsmith/commit/b1028c57484c36befc6d5acefef36c81b55b1f10))
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
### Bug Fixes
|
|
442
|
+
|
|
443
|
+
* **audit:** a trim re-cut no longer leaves the player stuck on "Buffering..." ([#1196](https://github.com/mandakan/splitsmith/issues/1196)) ([825fcfc](https://github.com/mandakan/splitsmith/commit/825fcfc048d9c3d97425949a72fbb48fd8f58843))
|
|
444
|
+
* **hosted:** name, stop and guard the pooled database connections ([#1204](https://github.com/mandakan/splitsmith/issues/1204)) ([1746480](https://github.com/mandakan/splitsmith/commit/1746480c6401244cf75c3ff91df6228fbeeace6d))
|
|
445
|
+
* **spa:** count the progress strip's batch, not the poll list ([#1203](https://github.com/mandakan/splitsmith/issues/1203)) ([52a4cae](https://github.com/mandakan/splitsmith/commit/52a4cae6eee26131373fc1478ad64261fd7b5421))
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
### Performance
|
|
449
|
+
|
|
450
|
+
* **hosted:** keep the queue deferrer's pool open per long-lived loop ([#1205](https://github.com/mandakan/splitsmith/issues/1205)) ([7f38295](https://github.com/mandakan/splitsmith/commit/7f38295103c8c95182e86da1f8e3eea6642d844c))
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
### Documentation
|
|
454
|
+
|
|
455
|
+
* **hosted:** serve on the Neon pooler, the worker direct, statement cache on ([#1207](https://github.com/mandakan/splitsmith/issues/1207)) ([b8adec2](https://github.com/mandakan/splitsmith/commit/b8adec254479a800c57726134c898d14f13c3ec8))
|
|
456
|
+
|
|
457
|
+
## [0.57.0](https://github.com/mandakan/splitsmith/compare/v0.56.0...v0.57.0) (2026-10-04)
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
### Features
|
|
461
|
+
|
|
462
|
+
* **hosted:** pooled database connections per event loop ([#1184](https://github.com/mandakan/splitsmith/issues/1184)) ([4c4f071](https://github.com/mandakan/splitsmith/commit/4c4f0719540a309f2fcb2c6404f38b9262596678))
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
### Performance
|
|
466
|
+
|
|
467
|
+
* **hosted:** answer source and trim presence from one listing per prefix ([#1186](https://github.com/mandakan/splitsmith/issues/1186)) ([e224250](https://github.com/mandakan/splitsmith/commit/e224250744b8102fb13ec5edeb598bea1192f79f))
|
|
468
|
+
* **hosted:** load the picker's detail for every match in two queries ([#1187](https://github.com/mandakan/splitsmith/issues/1187)) ([38e1f23](https://github.com/mandakan/splitsmith/commit/38e1f23bbd2ee7facb6667c96fa74cf311361f14))
|
|
469
|
+
* **hosted:** the jobs poll carries active jobs and failures, not the account's history ([#1189](https://github.com/mandakan/splitsmith/issues/1189)) ([8ae03f1](https://github.com/mandakan/splitsmith/commit/8ae03f1aae20729cbc4df177a8bfb0db459e0164))
|
|
470
|
+
* **hosted:** triage and beep-queue load the match once; the SPA fetches each once per open ([#1188](https://github.com/mandakan/splitsmith/issues/1188)) ([0bfc91c](https://github.com/mandakan/splitsmith/commit/0bfc91c58332895b3c4e8b39793df391b3e1708a))
|
|
471
|
+
|
|
472
|
+
## [0.56.0](https://github.com/mandakan/splitsmith/compare/v0.55.0...v0.56.0) (2026-10-03)
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
### Features
|
|
476
|
+
|
|
477
|
+
* **site:** the waitlist form files an access request ([#1175](https://github.com/mandakan/splitsmith/issues/1175)) ([9d7bde6](https://github.com/mandakan/splitsmith/commit/9d7bde6bf1fa0c049cfab9157c9aca35ff5d1792))
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
### Bug Fixes
|
|
481
|
+
|
|
482
|
+
* **serve:** mask the database password in the startup line ([#1174](https://github.com/mandakan/splitsmith/issues/1174)) ([677e001](https://github.com/mandakan/splitsmith/commit/677e0014e6efb27f8fe4da291a9889ca7d9c645c))
|
|
483
|
+
|
|
484
|
+
## [0.55.0](https://github.com/mandakan/splitsmith/compare/v0.54.0...v0.55.0) (2026-10-03)
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
### Features
|
|
488
|
+
|
|
489
|
+
* **hosted:** account access tiers and access requests ([#1173](https://github.com/mandakan/splitsmith/issues/1173)) ([12c9eb0](https://github.com/mandakan/splitsmith/commit/12c9eb030e788207cf8068c40557c2effe349c79))
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
### Bug Fixes
|
|
493
|
+
|
|
494
|
+
* **ci:** the tagged Linux desktop build uses Python 3.12, not the container's 3.10 ([#1167](https://github.com/mandakan/splitsmith/issues/1167)) ([300f7c6](https://github.com/mandakan/splitsmith/commit/300f7c687017f27f264235ba305cc303f5549a85))
|
|
495
|
+
* **export:** a first export starts on the YouTube video, with its cards ([#1171](https://github.com/mandakan/splitsmith/issues/1171)) ([8a00ee9](https://github.com/mandakan/splitsmith/commit/8a00ee9dfccfad1fd166b0358a689cb4762a1535))
|
|
496
|
+
* **hosted:** scope filesystem and render work to each account ([#1172](https://github.com/mandakan/splitsmith/issues/1172)) ([ad52d2f](https://github.com/mandakan/splitsmith/commit/ad52d2f2540231165d6cf37f8d64c1ede414f905))
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
### Documentation
|
|
500
|
+
|
|
501
|
+
* **site:** install instructions for the macOS and Linux desktop apps ([#1169](https://github.com/mandakan/splitsmith/issues/1169)) ([5714dfd](https://github.com/mandakan/splitsmith/commit/5714dfd5ac37c4ae521724e14945740597e1a9b5))
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
### Build / CI
|
|
505
|
+
|
|
506
|
+
* docs and marketing-site changes skip CI, the edge image and the staging deploy ([#1170](https://github.com/mandakan/splitsmith/issues/1170)) ([3e97bf5](https://github.com/mandakan/splitsmith/commit/3e97bf50dda55a2d6d8a4506cf3dd7f1bcfb5321))
|
|
507
|
+
|
|
508
|
+
## [0.54.0](https://github.com/mandakan/splitsmith/compare/v0.53.0...v0.54.0) (2026-10-03)
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
### Features
|
|
512
|
+
|
|
513
|
+
* **desktop:** Linux AppImage and .deb ([#1161](https://github.com/mandakan/splitsmith/issues/1161)) ([b2ad3f0](https://github.com/mandakan/splitsmith/commit/b2ad3f08240f0d86da4fbcd2115bf147ee91b8e6))
|
|
514
|
+
|
|
515
|
+
|
|
516
|
+
### Bug Fixes
|
|
517
|
+
|
|
518
|
+
* **desktop:** every shipped app bundles the wheel with the baked YouTube client ([#1164](https://github.com/mandakan/splitsmith/issues/1164)) ([2c72b7c](https://github.com/mandakan/splitsmith/commit/2c72b7c8d1cbe27b2981f23e86cd34e8aa156ffb))
|
|
519
|
+
* **sync:** ask again when a sync ends without a command's result ([#1165](https://github.com/mandakan/splitsmith/issues/1165)) ([c7370f8](https://github.com/mandakan/splitsmith/commit/c7370f8775b9a166f61d3348385d99c1ac3d7201))
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
### Build / CI
|
|
523
|
+
|
|
524
|
+
* **image:** layer cache in GHCR; a cache failure falls back to a cold build ([#1166](https://github.com/mandakan/splitsmith/issues/1166)) ([e2dbeeb](https://github.com/mandakan/splitsmith/commit/e2dbeeb058ca84719b25b6c0a882eab4b3dd9190))
|
|
525
|
+
|
|
526
|
+
## [0.53.0](https://github.com/mandakan/splitsmith/compare/v0.52.0...v0.53.0) (2026-10-02)
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
### Features
|
|
530
|
+
|
|
531
|
+
* **export:** a live race in the grid's free square ([#1160](https://github.com/mandakan/splitsmith/issues/1160)) ([57ef105](https://github.com/mandakan/splitsmith/commit/57ef1056879763764de93ee066ec01b57c77364b))
|
|
532
|
+
* **export:** a main camera and one inset, replacing rotating corners ([#1157](https://github.com/mandakan/splitsmith/issues/1157)) ([16d3a39](https://github.com/mandakan/splitsmith/commit/16d3a39ea6a6c30e25bdab90b90f6a182355aebe))
|
|
533
|
+
* **export:** the compare grid publishes to YouTube like one shooter's render ([#1154](https://github.com/mandakan/splitsmith/issues/1154)) ([b603ae4](https://github.com/mandakan/splitsmith/commit/b603ae45ecc3f2b5773cd27ed34503a81ae209fd))
|
|
534
|
+
* **export:** the grid's free square shows the stage, its splits or the match ([#1159](https://github.com/mandakan/splitsmith/issues/1159)) ([5373ef7](https://github.com/mandakan/splitsmith/commit/5373ef701ae3e9f64a3bc8fde17fd52e1c6b26c1))
|
|
535
|
+
* **export:** the grid's tiles get the main camera and inset too ([#1158](https://github.com/mandakan/splitsmith/issues/1158)) ([dd25139](https://github.com/mandakan/splitsmith/commit/dd251398f36d27a90b9af6055b08e126d902448e))
|
|
536
|
+
* **share:** each share link can open on its own cameras ([#1152](https://github.com/mandakan/splitsmith/issues/1152)) ([0400871](https://github.com/mandakan/splitsmith/commit/040087122ddd18047b11c5b6c50ea35e36351fbf))
|
|
537
|
+
|
|
538
|
+
## [0.52.0](https://github.com/mandakan/splitsmith/compare/v0.51.0...v0.52.0) (2026-10-02)
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
### Features
|
|
542
|
+
|
|
543
|
+
* **compare, splits, share:** cameras hold across stages; starting cameras set from the share dialog ([#1150](https://github.com/mandakan/splitsmith/issues/1150)) ([a3ebcc3](https://github.com/mandakan/splitsmith/commit/a3ebcc3e60068d586dc6b1a09308b5d78a758ba8))
|
|
544
|
+
|
|
545
|
+
## [0.51.0](https://github.com/mandakan/splitsmith/compare/v0.50.0...v0.51.0) (2026-10-02)
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
### Features
|
|
549
|
+
|
|
550
|
+
* **compare:** camera picker in the tile header, foldable shot lanes, cinema mode ([#1148](https://github.com/mandakan/splitsmith/issues/1148)) ([079402d](https://github.com/mandakan/splitsmith/commit/079402d6c4a59ad784712f6535e81bed5683d405))
|
|
551
|
+
|
|
552
|
+
## [0.50.0](https://github.com/mandakan/splitsmith/compare/v0.49.1...v0.50.0) (2026-10-02)
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
### Features
|
|
556
|
+
|
|
557
|
+
* **compare:** every camera angle shown on the tile, named, with a hover preview ([#1145](https://github.com/mandakan/splitsmith/issues/1145)) ([bb3f3a9](https://github.com/mandakan/splitsmith/commit/bb3f3a9b68d1ed5d74da38547ddc9cfd3196ffab))
|
|
558
|
+
* **compare:** hear every shooter in a mix; mute, unmute and solo ([#1147](https://github.com/mandakan/splitsmith/issues/1147)) ([49de9b4](https://github.com/mandakan/splitsmith/commit/49de9b4b60dd4a5ee2b9dab068b0cf2cdafef638))
|
|
559
|
+
* **splits:** every shooter on every stage, sorted per stage, best marked ([#1146](https://github.com/mandakan/splitsmith/issues/1146)) ([deaf027](https://github.com/mandakan/splitsmith/commit/deaf027f26cb8c667c4935aed653e46b21ed8445))
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
### Documentation
|
|
563
|
+
|
|
564
|
+
* **site:** the footage sort is about videos from one or more sources ([#1143](https://github.com/mandakan/splitsmith/issues/1143)) ([fbdab95](https://github.com/mandakan/splitsmith/commit/fbdab9585923641956f5573bba267f937fc1caf4))
|
|
565
|
+
|
|
566
|
+
## [0.49.1](https://github.com/mandakan/splitsmith/compare/v0.49.0...v0.49.1) (2026-10-02)
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
### Bug Fixes
|
|
570
|
+
|
|
571
|
+
* **compare:** Play all with every shooter showing plays the stages side by side ([#1140](https://github.com/mandakan/splitsmith/issues/1140)) ([d91bec7](https://github.com/mandakan/splitsmith/commit/d91bec7b1567d81a76b4f202fadfefcfb27bffab))
|
|
572
|
+
|
|
573
|
+
|
|
574
|
+
### Documentation
|
|
575
|
+
|
|
576
|
+
* Add footage is the footage sort; the beep queue (README and site) ([#1141](https://github.com/mandakan/splitsmith/issues/1141)) ([d808048](https://github.com/mandakan/splitsmith/commit/d8080487785bf9c09b4019a9eed98a1d65a0edff))
|
|
577
|
+
|
|
578
|
+
## [0.49.0](https://github.com/mandakan/splitsmith/compare/v0.48.1...v0.49.0) (2026-10-02)
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
### Features
|
|
582
|
+
|
|
583
|
+
* **audit:** a beep review queue, one unconfirmed beep after the other ([#1138](https://github.com/mandakan/splitsmith/issues/1138)) ([4c2d301](https://github.com/mandakan/splitsmith/commit/4c2d301849a15ad5b2c08424ae2cec8a61cbce39))
|
|
584
|
+
* **footage:** beep state per file on the chips; no beep times in the coverage table ([#1137](https://github.com/mandakan/splitsmith/issues/1137)) ([bf33d23](https://github.com/mandakan/splitsmith/commit/bf33d23ecec94669303f5b037bbe30080b258b0c))
|
|
585
|
+
|
|
586
|
+
## [0.48.1](https://github.com/mandakan/splitsmith/compare/v0.48.0...v0.48.1) (2026-10-02)
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
### Bug Fixes
|
|
590
|
+
|
|
591
|
+
* **audit:** play iPhone .MOV in the beep picker; no Confirm beep while detection runs ([#1136](https://github.com/mandakan/splitsmith/issues/1136)) ([40d4c2b](https://github.com/mandakan/splitsmith/commit/40d4c2b4b4f88c55820566a2e99700fe583b5cab))
|
|
592
|
+
* **footage-sort:** keep a sort open while clips still need the user ([#1133](https://github.com/mandakan/splitsmith/issues/1133)) ([d948098](https://github.com/mandakan/splitsmith/commit/d948098c65192d26c9cda86ef2064406f598045c))
|
|
593
|
+
* **footage-sort:** show the role the import will give, never a primary it will not make ([#1135](https://github.com/mandakan/splitsmith/issues/1135)) ([988cd85](https://github.com/mandakan/splitsmith/commit/988cd85598671e10d3e80992efd9b0709358f951))
|
|
594
|
+
|
|
595
|
+
## [0.48.0](https://github.com/mandakan/splitsmith/compare/v0.47.0...v0.48.0) (2026-10-02)
|
|
596
|
+
|
|
597
|
+
|
|
598
|
+
### Features
|
|
599
|
+
|
|
600
|
+
* **footage-sort:** import one shooter at a time; select all per shooter ([#1130](https://github.com/mandakan/splitsmith/issues/1130)) ([167787f](https://github.com/mandakan/splitsmith/commit/167787f896f35505aaf523d0836f7ed67c305ff2))
|
|
601
|
+
* **footage:** Add footage is the footage sort; open sorts can be continued ([#1132](https://github.com/mandakan/splitsmith/issues/1132)) ([1e145d2](https://github.com/mandakan/splitsmith/commit/1e145d2eaae2a43d2a79b59e2487ed10f77c6e95))
|
|
602
|
+
|
|
603
|
+
## [0.47.0](https://github.com/mandakan/splitsmith/compare/v0.46.1...v0.47.0) (2026-10-02)
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
### Features
|
|
607
|
+
|
|
608
|
+
* **footage-sort:** hover-scrub thumbnails and a player that steps through the clips ([#1128](https://github.com/mandakan/splitsmith/issues/1128)) ([af458cd](https://github.com/mandakan/splitsmith/commit/af458cdf35468e9b208e02ce0fa25953b6e3e1b5))
|
|
609
|
+
|
|
610
|
+
## [0.46.1](https://github.com/mandakan/splitsmith/compare/v0.46.0...v0.46.1) (2026-10-02)
|
|
611
|
+
|
|
612
|
+
|
|
613
|
+
### Bug Fixes
|
|
614
|
+
|
|
615
|
+
* **footage-sort:** Sort across shooters sorts without a picker; the picker takes a parent folder ([#1127](https://github.com/mandakan/splitsmith/issues/1127)) ([d8a2575](https://github.com/mandakan/splitsmith/commit/d8a257552d4d83edd5da589bd9304b5dd9334097))
|
|
616
|
+
* **footage-sort:** sort footage first added to the wrong shooter ([#1125](https://github.com/mandakan/splitsmith/issues/1125)) ([86cc475](https://github.com/mandakan/splitsmith/commit/86cc475792d631d69015d54c4d47f933448d9da2))
|
|
617
|
+
|
|
618
|
+
## [0.46.0](https://github.com/mandakan/splitsmith/compare/v0.45.1...v0.46.0) (2026-10-01)
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
### Features
|
|
622
|
+
|
|
623
|
+
* sort a shared footage folder across shooters (local mode) ([#1120](https://github.com/mandakan/splitsmith/issues/1120)) ([739639b](https://github.com/mandakan/splitsmith/commit/739639bee002dfd984562a082e7bba43900662be))
|
|
624
|
+
* **sync:** render and upload to YouTube on the desktop from the phone ([#1113](https://github.com/mandakan/splitsmith/issues/1113)) ([b261118](https://github.com/mandakan/splitsmith/commit/b26111810f1c7f6b9c781d0266558ed2c388d828))
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
### Bug Fixes
|
|
628
|
+
|
|
629
|
+
* **ingest:** match clips by the camera's recording time, several cameras per run ([#1118](https://github.com/mandakan/splitsmith/issues/1118)) ([70ffe76](https://github.com/mandakan/splitsmith/commit/70ffe76dd7625d6d2f89e05892627a0c925d2a9e))
|
|
630
|
+
|
|
631
|
+
## [0.45.1](https://github.com/mandakan/splitsmith/compare/v0.45.0...v0.45.1) (2026-09-28)
|
|
632
|
+
|
|
633
|
+
|
|
634
|
+
### Bug Fixes
|
|
635
|
+
|
|
636
|
+
* **sync:** a command's outcome survives a failed completion call; e2e test fits CI ([#1111](https://github.com/mandakan/splitsmith/issues/1111)) ([f5860c2](https://github.com/mandakan/splitsmith/commit/f5860c2280b2a77488ca2d6191021ef67bf4887c))
|
|
637
|
+
|
|
638
|
+
## [0.45.0](https://github.com/mandakan/splitsmith/compare/v0.44.0...v0.45.0) (2026-09-28)
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
### Features
|
|
642
|
+
|
|
643
|
+
* **sync:** the desktop runs commands the phone queues ([#1104](https://github.com/mandakan/splitsmith/issues/1104)) ([#1109](https://github.com/mandakan/splitsmith/issues/1109)) ([5910c40](https://github.com/mandakan/splitsmith/commit/5910c40f61fba7755e3802d23853bfca6d7ee1f8))
|
|
644
|
+
* **sync:** the hosted desktop command queue ([#1103](https://github.com/mandakan/splitsmith/issues/1103)) ([#1108](https://github.com/mandakan/splitsmith/issues/1108)) ([9cebd5f](https://github.com/mandakan/splitsmith/commit/9cebd5fd032f41054ebf7fed43162f8735233351))
|
|
645
|
+
* **ui:** ask the desktop to re-detect a stage from the phone ([#1105](https://github.com/mandakan/splitsmith/issues/1105)) ([#1110](https://github.com/mandakan/splitsmith/issues/1110)) ([3c75c6c](https://github.com/mandakan/splitsmith/commit/3c75c6c2fc8b38972f27060a1c480475202dba67))
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
### Documentation
|
|
649
|
+
|
|
650
|
+
* **spec:** desktop command queue (auto-sync v2) ([#1106](https://github.com/mandakan/splitsmith/issues/1106)) ([9653297](https://github.com/mandakan/splitsmith/commit/96532979c361abe2dcdc039d7d890459f6b35020))
|
|
651
|
+
|
|
652
|
+
## [0.44.0](https://github.com/mandakan/splitsmith/compare/v0.43.1...v0.44.0) (2026-09-28)
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
### Features
|
|
656
|
+
|
|
657
|
+
* **desktop:** one-command signed release; feed waits for the DMG ([#1098](https://github.com/mandakan/splitsmith/issues/1098)) ([cd24797](https://github.com/mandakan/splitsmith/commit/cd247976b843a2d7f017d814fa8b5de37817149e))
|
|
658
|
+
* **ui:** delete a match from its Matches row; say which copy is deleted ([#1102](https://github.com/mandakan/splitsmith/issues/1102)) ([d85332a](https://github.com/mandakan/splitsmith/commit/d85332a4d2413f0a49bc1cc721cc111fe8af8a03))
|
|
659
|
+
|
|
660
|
+
|
|
661
|
+
### Documentation
|
|
662
|
+
|
|
663
|
+
* auto-sync follow-up invariants, local verification safety, release practice ([#1101](https://github.com/mandakan/splitsmith/issues/1101)) ([99c05fe](https://github.com/mandakan/splitsmith/commit/99c05fe32337e68d4e3219a396ecef7bdc43e070))
|
|
664
|
+
|
|
665
|
+
## [0.43.1](https://github.com/mandakan/splitsmith/compare/v0.43.0...v0.43.1) (2026-09-27)
|
|
666
|
+
|
|
667
|
+
|
|
668
|
+
### Bug Fixes
|
|
669
|
+
|
|
670
|
+
* **audit:** follow the current shot without scrolling the page ([#1067](https://github.com/mandakan/splitsmith/issues/1067)) ([#1083](https://github.com/mandakan/splitsmith/issues/1083)) ([2d206da](https://github.com/mandakan/splitsmith/commit/2d206da204a32e6fd94543c504afa252a338d53f))
|
|
671
|
+
* **sync:** a failed auto-sync waits for a change instead of retrying ([#1070](https://github.com/mandakan/splitsmith/issues/1070)) ([#1087](https://github.com/mandakan/splitsmith/issues/1087)) ([72d4a65](https://github.com/mandakan/splitsmith/commit/72d4a65dffacb70c12c1c1e74f4d367da019d365))
|
|
672
|
+
* **sync:** auto-sync falls back to manifests on a hosted without /fingerprints ([#1071](https://github.com/mandakan/splitsmith/issues/1071)) ([#1090](https://github.com/mandakan/splitsmith/issues/1090)) ([d1ba851](https://github.com/mandakan/splitsmith/commit/d1ba851b589c299a6447d1ffd4701cec7fc3773e))
|
|
673
|
+
* **sync:** every local audit writer holds audit_lock ([#1075](https://github.com/mandakan/splitsmith/issues/1075)) ([#1094](https://github.com/mandakan/splitsmith/issues/1094)) ([f64e9a7](https://github.com/mandakan/splitsmith/commit/f64e9a7eca949b3c362ab00fff3930665e6512e1))
|
|
674
|
+
* **sync:** hold automatic syncs while a render runs on any match ([#1082](https://github.com/mandakan/splitsmith/issues/1082)) ([9426d90](https://github.com/mandakan/splitsmith/commit/9426d909845297fe91da0cc8872c730887f93d81))
|
|
675
|
+
* **sync:** one auto-sync per machine, one sync per match across processes ([#1076](https://github.com/mandakan/splitsmith/issues/1076)) ([#1095](https://github.com/mandakan/splitsmith/issues/1095)) ([8f6c052](https://github.com/mandakan/splitsmith/commit/8f6c052c9401104a69b664f29fe4f905bc8c051b))
|
|
676
|
+
* **sync:** remove a stale web rendition after a re-trim whose transcode failed ([#1077](https://github.com/mandakan/splitsmith/issues/1077)) ([#1096](https://github.com/mandakan/splitsmith/issues/1096)) ([881a5b3](https://github.com/mandakan/splitsmith/commit/881a5b3355dac25c242649598dcd769a9c7cb62b))
|
|
677
|
+
* **sync:** retry a failed reconcile step when any of its inputs change ([#1069](https://github.com/mandakan/splitsmith/issues/1069)) ([#1086](https://github.com/mandakan/splitsmith/issues/1086)) ([8e56005](https://github.com/mandakan/splitsmith/commit/8e56005406b0f03d19f7614b5933fc9bdc27b55c))
|
|
678
|
+
* **sync:** stop on a match deleted on hosted instead of recreating it ([#1088](https://github.com/mandakan/splitsmith/issues/1088)) ([061dbcb](https://github.com/mandakan/splitsmith/commit/061dbcb5446bad0221968707f8773a6212446ed0))
|
|
679
|
+
* **sync:** the auto-sync fingerprint catches a delete plus insert at equal versions ([#1072](https://github.com/mandakan/splitsmith/issues/1072)) ([#1091](https://github.com/mandakan/splitsmith/issues/1091)) ([0162111](https://github.com/mandakan/splitsmith/commit/016211180c1f187338f1d1623d5d102acd5014d9))
|
|
680
|
+
* **sync:** the SyncCard no longer says "0 files changed" when only docs changed ([#1074](https://github.com/mandakan/splitsmith/issues/1074)) ([#1093](https://github.com/mandakan/splitsmith/issues/1093)) ([cefb69e](https://github.com/mandakan/splitsmith/commit/cefb69ecf02481d1122c93e82c0fa59dde746f15))
|
|
681
|
+
* **ui:** a web-only mirror on non-presigned storage streams its rendition ([#1078](https://github.com/mandakan/splitsmith/issues/1078)) ([#1097](https://github.com/mandakan/splitsmith/issues/1097)) ([18dfb0f](https://github.com/mandakan/splitsmith/commit/18dfb0f4d1ae9d0673c2f9b77797b8e2d37b5634))
|
|
682
|
+
* **ui:** name the match on match-wide jobs instead of "(no target)" ([#1089](https://github.com/mandakan/splitsmith/issues/1089)) ([f53c54e](https://github.com/mandakan/splitsmith/commit/f53c54e213bb6256d23fa3c3388e63e461129d7d))
|
|
683
|
+
|
|
684
|
+
|
|
685
|
+
### Performance
|
|
686
|
+
|
|
687
|
+
* **export:** cache rendered MP4 segments; report each render step ([#1085](https://github.com/mandakan/splitsmith/issues/1085)) ([ebdaef2](https://github.com/mandakan/splitsmith/commit/ebdaef2744b710d90ac0839e9df1673426ed3e4c))
|
|
688
|
+
|
|
689
|
+
## [0.43.0](https://github.com/mandakan/splitsmith/compare/v0.42.0...v0.43.0) (2026-09-27)
|
|
690
|
+
|
|
691
|
+
|
|
692
|
+
### Features
|
|
693
|
+
|
|
694
|
+
* **sync:** desktop auto-sync and the pipeline reconciler ([#1068](https://github.com/mandakan/splitsmith/issues/1068)) ([e7be9d7](https://github.com/mandakan/splitsmith/commit/e7be9d77f82afcb4f0921b54803622258693a027))
|
|
695
|
+
* **sync:** web-only mirror media (auto-sync v1.1) ([#1079](https://github.com/mandakan/splitsmith/issues/1079)) ([cee7d23](https://github.com/mandakan/splitsmith/commit/cee7d2392c9936bff7574c6508909677b04124f2))
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
### Bug Fixes
|
|
699
|
+
|
|
700
|
+
* **export:** forward every export option from the SPA; name unnamed stages ([#1080](https://github.com/mandakan/splitsmith/issues/1080)) ([7ccc86f](https://github.com/mandakan/splitsmith/commit/7ccc86f0345b1860b5c90f0ac22ad48509b4f1c1))
|
|
701
|
+
|
|
702
|
+
## [0.42.0](https://github.com/mandakan/splitsmith/compare/v0.41.0...v0.42.0) (2026-09-27)
|
|
703
|
+
|
|
704
|
+
|
|
705
|
+
### Features
|
|
706
|
+
|
|
707
|
+
* **beep-review:** touch picker for mobile beep review on the mirror ([#1064](https://github.com/mandakan/splitsmith/issues/1064)) ([97bb4fb](https://github.com/mandakan/splitsmith/commit/97bb4fb586cd10ea8faaa59baec6866e6a9de417))
|
|
708
|
+
* **ensemble:** held-out voter C baseline, grouped by stage and by match ([#1045](https://github.com/mandakan/splitsmith/issues/1045)) ([#1062](https://github.com/mandakan/splitsmith/issues/1062)) ([963d217](https://github.com/mandakan/splitsmith/commit/963d217e08f44a66e416d6f27c955598fb79aa2b))
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
### Bug Fixes
|
|
712
|
+
|
|
713
|
+
* **docker:** bump ffmpeg pin to autobuild-2026-09-26-13-03 ([#1065](https://github.com/mandakan/splitsmith/issues/1065)) ([0ceee80](https://github.com/mandakan/splitsmith/commit/0ceee80771c9807b835cc9f763d8634adb21ce93))
|
|
714
|
+
* **docker:** serve ffmpeg from our own mirror release ([#1066](https://github.com/mandakan/splitsmith/issues/1066)) ([cfed65a](https://github.com/mandakan/splitsmith/commit/cfed65add8bf24540fad1d1062c2a34114698288))
|
|
715
|
+
|
|
716
|
+
## [0.41.0](https://github.com/mandakan/splitsmith/compare/v0.40.1...v0.41.0) (2026-09-22)
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
### Features
|
|
720
|
+
|
|
721
|
+
* **desktop:** Electron packaging for macOS (arm64 DMG) ([#1059](https://github.com/mandakan/splitsmith/issues/1059)) ([5712fe4](https://github.com/mandakan/splitsmith/commit/5712fe4cedad37d8d3b91c1774dcbaa995cf6ebe))
|
|
722
|
+
* **youtube:** hosted upload ([#1000](https://github.com/mandakan/splitsmith/issues/1000) phase 2) ([#1057](https://github.com/mandakan/splitsmith/issues/1057)) ([13a0754](https://github.com/mandakan/splitsmith/commit/13a07543b0c1484cde5a44bdbef2497b5cb6a42a))
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
### Bug Fixes
|
|
726
|
+
|
|
727
|
+
* four small data-safety bugs ([#931](https://github.com/mandakan/splitsmith/issues/931), [#933](https://github.com/mandakan/splitsmith/issues/933), [#930](https://github.com/mandakan/splitsmith/issues/930), [#1033](https://github.com/mandakan/splitsmith/issues/1033)) ([#1060](https://github.com/mandakan/splitsmith/issues/1060)) ([acface9](https://github.com/mandakan/splitsmith/commit/acface9b3cadb8efe829353cb1255003e02707ed))
|
|
728
|
+
* **match:** read per-shooter data from project.json, not the merge-time snapshot ([#953](https://github.com/mandakan/splitsmith/issues/953)) ([#1061](https://github.com/mandakan/splitsmith/issues/1061)) ([0020d92](https://github.com/mandakan/splitsmith/commit/0020d922fd2b52eefc62d38baac1115cb3b8586e))
|
|
729
|
+
|
|
730
|
+
|
|
731
|
+
### Documentation
|
|
732
|
+
|
|
733
|
+
* **workers:** WSL2 SSH recipe; agent auto-update script and timer ([#1031](https://github.com/mandakan/splitsmith/issues/1031)) ([d13fa3f](https://github.com/mandakan/splitsmith/commit/d13fa3f72e5249c68e2d42110b6b8735db15fe66))
|
|
734
|
+
|
|
735
|
+
## [0.40.1](https://github.com/mandakan/splitsmith/compare/v0.40.0...v0.40.1) (2026-09-18)
|
|
736
|
+
|
|
737
|
+
|
|
738
|
+
### Documentation
|
|
739
|
+
|
|
740
|
+
* **site:** privacy policy states how YouTube data is protected ([#1043](https://github.com/mandakan/splitsmith/issues/1043)) ([3f1b9ad](https://github.com/mandakan/splitsmith/commit/3f1b9ad5c4cb1139c1ebbda03405248edb0592a6))
|
|
741
|
+
* **youtube:** record that Google verification and the API audit passed ([#1054](https://github.com/mandakan/splitsmith/issues/1054)) ([e58994e](https://github.com/mandakan/splitsmith/commit/e58994ef0d737c0b94bf1c62bf9c85e385929227))
|
|
742
|
+
|
|
743
|
+
## [0.40.0](https://github.com/mandakan/splitsmith/compare/v0.39.0...v0.40.0) (2026-09-15)
|
|
744
|
+
|
|
745
|
+
|
|
746
|
+
### Features
|
|
747
|
+
|
|
748
|
+
* **export:** Look gallery with generic thumbnails ([#1040](https://github.com/mandakan/splitsmith/issues/1040)) ([f15c459](https://github.com/mandakan/splitsmith/commit/f15c4595ba70c5eadd5548199b42aa66c57b6e4b))
|
|
749
|
+
* **export:** presets, last-used and option groups ([#1038](https://github.com/mandakan/splitsmith/issues/1038)) ([d4cef20](https://github.com/mandakan/splitsmith/commit/d4cef20d18ac23fdc7a47a530ffbf8d505d93834))
|
|
750
|
+
* **export:** real-match preview in the rail ([#1041](https://github.com/mandakan/splitsmith/issues/1041)) ([30027d4](https://github.com/mandakan/splitsmith/commit/30027d4321711c749c1d6405267979fdfb5bd279))
|
|
751
|
+
|
|
752
|
+
|
|
753
|
+
### Documentation
|
|
754
|
+
|
|
755
|
+
* export screenshots and copy for presets, the gallery and the preview ([#1042](https://github.com/mandakan/splitsmith/issues/1042)) ([dc4081e](https://github.com/mandakan/splitsmith/commit/dc4081e04cc9fdcaa91b685caa5bafb76b64a8c2))
|
|
756
|
+
|
|
757
|
+
## [0.39.0](https://github.com/mandakan/splitsmith/compare/v0.38.1...v0.39.0) (2026-09-15)
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
### Features
|
|
761
|
+
|
|
762
|
+
* **playback:** 720p faststart web rendition of each trim for hosted streaming ([#1037](https://github.com/mandakan/splitsmith/issues/1037)) ([2914a49](https://github.com/mandakan/splitsmith/commit/2914a4952c3075fd271f841dbc94152428bd05f0))
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
### Documentation
|
|
766
|
+
|
|
767
|
+
* **oauth:** 1000-character short form of the scope justification ([#1035](https://github.com/mandakan/splitsmith/issues/1035)) ([5624f63](https://github.com/mandakan/splitsmith/commit/5624f63bb1faf8dba6b717af036b20a8a61d0c3a))
|
|
768
|
+
* **oauth:** scope justification argues minimum scopes explicitly ([#1034](https://github.com/mandakan/splitsmith/issues/1034)) ([879e3c6](https://github.com/mandakan/splitsmith/commit/879e3c64eb2269f1f9508994ad77c726729f7774))
|
|
769
|
+
|
|
770
|
+
## [0.38.1](https://github.com/mandakan/splitsmith/compare/v0.38.0...v0.38.1) (2026-09-15)
|
|
771
|
+
|
|
772
|
+
|
|
773
|
+
### Bug Fixes
|
|
774
|
+
|
|
775
|
+
* **ui:** Workers admin page on the visual budget, with a way back ([#1030](https://github.com/mandakan/splitsmith/issues/1030)) ([d380d97](https://github.com/mandakan/splitsmith/commit/d380d97b92328470a5e4b8a21ac0431cb17de39d))
|
|
776
|
+
|
|
777
|
+
## [0.38.0](https://github.com/mandakan/splitsmith/compare/v0.37.1...v0.38.0) (2026-09-15)
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
### Features
|
|
781
|
+
|
|
782
|
+
* **export:** export a stage from its beep and stage time, without audited shots ([#1026](https://github.com/mandakan/splitsmith/issues/1026)) ([a40eec6](https://github.com/mandakan/splitsmith/commit/a40eec6f45e3fecf8c998c696433364e2ba11f7e))
|
|
783
|
+
* **export:** per-option hints for stages without splits; scoring-only summary pinned ([#1028](https://github.com/mandakan/splitsmith/issues/1028)) ([9ad90ee](https://github.com/mandakan/splitsmith/commit/9ad90ee8fae05b3584f134a5ccc697c5cdf17fd0))
|
|
784
|
+
|
|
785
|
+
|
|
786
|
+
### Bug Fixes
|
|
787
|
+
|
|
788
|
+
* **ui:** Export page polish: YouTube block layout, rail pinned under the shell header ([#1027](https://github.com/mandakan/splitsmith/issues/1027)) ([298a650](https://github.com/mandakan/splitsmith/commit/298a6508eb95cf954b1d21c790b22b7e31b89de2))
|
|
789
|
+
|
|
790
|
+
## [0.37.1](https://github.com/mandakan/splitsmith/compare/v0.37.0...v0.37.1) (2026-09-15)
|
|
791
|
+
|
|
792
|
+
|
|
793
|
+
### Bug Fixes
|
|
794
|
+
|
|
795
|
+
* **build:** release-please keeps uv.lock's version in step with pyproject ([#1023](https://github.com/mandakan/splitsmith/issues/1023)) ([49f7447](https://github.com/mandakan/splitsmith/commit/49f74476aa41e2fbd7784e2149b1b87c8f8037b3))
|
|
796
|
+
* **build:** uv.lock updater filters on the tagged value release-please's TOML parser produces ([#1025](https://github.com/mandakan/splitsmith/issues/1025)) ([f229e10](https://github.com/mandakan/splitsmith/commit/f229e10458e0046e8e6270adea45b1c892027207))
|
|
797
|
+
|
|
798
|
+
## [0.37.0](https://github.com/mandakan/splitsmith/compare/v0.36.0...v0.37.0) (2026-09-15)
|
|
799
|
+
|
|
800
|
+
|
|
801
|
+
### Features
|
|
802
|
+
|
|
803
|
+
* **youtube:** playlist picker over the channel's playlists, upload by playlist id ([#1021](https://github.com/mandakan/splitsmith/issues/1021)) ([ada94b0](https://github.com/mandakan/splitsmith/commit/ada94b00cef69194c48692c98547d68d8fd63958))
|
|
804
|
+
* **youtube:** playlist, scheduled publish and subscriber notification on upload ([#1019](https://github.com/mandakan/splitsmith/issues/1019)) ([5790703](https://github.com/mandakan/splitsmith/commit/579070310f43f8a13955c2ebc46550e143e936bb))
|
|
805
|
+
|
|
806
|
+
## [0.36.0](https://github.com/mandakan/splitsmith/compare/v0.35.0...v0.36.0) (2026-09-15)
|
|
807
|
+
|
|
808
|
+
|
|
809
|
+
### Features
|
|
810
|
+
|
|
811
|
+
* **scoreboard:** anonymous v1 reads, bearer only when configured, User-Agent splitsmith/<version> ([#1018](https://github.com/mandakan/splitsmith/issues/1018)) ([710207b](https://github.com/mandakan/splitsmith/commit/710207bb8b280cb4c2ec7fcf0ead8b71bc515795))
|
|
812
|
+
* **ui:** connect YouTube and upload renders from the Export page, phase 1 PR B of [#1000](https://github.com/mandakan/splitsmith/issues/1000) ([#1014](https://github.com/mandakan/splitsmith/issues/1014)) ([ffa4c51](https://github.com/mandakan/splitsmith/commit/ffa4c5130e3736e16bfd13c72e6f7c0997611850))
|
|
813
|
+
* **ui:** create-match opens on the scoreboard variant, manual is the fallback ([#1017](https://github.com/mandakan/splitsmith/issues/1017)) ([ada7c42](https://github.com/mandakan/splitsmith/commit/ada7c42900a5b3b438599065198c23a9bd6c85d4))
|
|
814
|
+
* **youtube:** direct upload from the CLI, phase 1 of [#1000](https://github.com/mandakan/splitsmith/issues/1000) ([#1012](https://github.com/mandakan/splitsmith/issues/1012)) ([05375d5](https://github.com/mandakan/splitsmith/commit/05375d5ec6d2fe6b097f0f69c992869eda7839e4))
|
|
815
|
+
|
|
816
|
+
|
|
817
|
+
### Build / CI
|
|
818
|
+
|
|
819
|
+
* bake the YouTube OAuth client into the wheel at publish ([#1015](https://github.com/mandakan/splitsmith/issues/1015)) ([e2de09c](https://github.com/mandakan/splitsmith/commit/e2de09c7d19e423424f43f8ea0fcae2285ae09ef))
|
|
820
|
+
|
|
821
|
+
## [0.35.0](https://github.com/mandakan/splitsmith/compare/v0.34.0...v0.35.0) (2026-09-14)
|
|
822
|
+
|
|
823
|
+
|
|
824
|
+
### Features
|
|
825
|
+
|
|
826
|
+
* **api:** generated-card fields on the compare-grid export request ([#973](https://github.com/mandakan/splitsmith/issues/973)) ([#984](https://github.com/mandakan/splitsmith/issues/984)) ([9c2a1e8](https://github.com/mandakan/splitsmith/commit/9c2a1e87b6da0d624bd87caecb3a1c412751be15))
|
|
827
|
+
* **api:** overlay, theme and summary hold on the compare-grid export request ([#705](https://github.com/mandakan/splitsmith/issues/705), endpoint half) ([#990](https://github.com/mandakan/splitsmith/issues/990)) ([ac9d1f0](https://github.com/mandakan/splitsmith/commit/ac9d1f00e166f2ee297f3070993580ee63bb03f7))
|
|
828
|
+
* **cli:** match export --youtube-sidecar, moved with a renamed output ([#992](https://github.com/mandakan/splitsmith/issues/992)) ([63cc71d](https://github.com/mandakan/splitsmith/commit/63cc71d49dfcb074c45dc9484bf75e70ee169fdf))
|
|
829
|
+
* **coach:** split <= 1.0 s, transition <= 2.0 s, thresholds from config, match reclassify verb ([#995](https://github.com/mandakan/splitsmith/issues/995)) ([019860e](https://github.com/mandakan/splitsmith/commit/019860e0654b6f2cb57db480330de96fc829dac9))
|
|
830
|
+
* **compare:** generated title page, stage cards and closing card on the grid MP4 ([#973](https://github.com/mandakan/splitsmith/issues/973), part 2) ([#977](https://github.com/mandakan/splitsmith/issues/977)) ([888003e](https://github.com/mandakan/splitsmith/commit/888003eb10bb9c77dc8c28c379f43023326303d6))
|
|
831
|
+
* **export:** --description-lead opens the YouTube sidecar's description ([#1006](https://github.com/mandakan/splitsmith/issues/1006)) ([2ee681b](https://github.com/mandakan/splitsmith/commit/2ee681b7dc33eee0599cf138a672d6ed401b5c30))
|
|
832
|
+
* **export:** generated title page, stage cards and intro/outro in the rendered MP4 ([#973](https://github.com/mandakan/splitsmith/issues/973), part 1) ([#975](https://github.com/mandakan/splitsmith/issues/975)) ([5481093](https://github.com/mandakan/splitsmith/commit/54810935ef71dbd76ba9cda5d9ca8036b2099554))
|
|
833
|
+
* **export:** paste-ready YouTube text and a thumbnail beside the sidecar ([#1007](https://github.com/mandakan/splitsmith/issues/1007)) ([78641a3](https://github.com/mandakan/splitsmith/commit/78641a30bae1d130aeddeb30297fe5cf49440b11))
|
|
834
|
+
* **export:** per-stage summary card (PNG + held ProRes MOV) beside the overlay MOV ([#972](https://github.com/mandakan/splitsmith/issues/972)) ([#980](https://github.com/mandakan/splitsmith/issues/980)) ([1d6c5f0](https://github.com/mandakan/splitsmith/commit/1d6c5f05d36a704e83124ee9e31886e6e7ab5bfa))
|
|
835
|
+
* **export:** stage summary held after each stage in the rendered MP4 ([#972](https://github.com/mandakan/splitsmith/issues/972)) ([#979](https://github.com/mandakan/splitsmith/issues/979)) ([31906f1](https://github.com/mandakan/splitsmith/commit/31906f122f238c384e7ab9347cebe3dc71e6877c))
|
|
836
|
+
* **hosted:** the compare grid renders, pushes and downloads on a hosted install ([#755](https://github.com/mandakan/splitsmith/issues/755)) ([#993](https://github.com/mandakan/splitsmith/issues/993)) ([cacd04f](https://github.com/mandakan/splitsmith/commit/cacd04f341c8194304434a50742068b40423949d))
|
|
837
|
+
* **mp4:** --youtube-sidecar embeds chapter atoms in the rendered MP4 ([#204](https://github.com/mandakan/splitsmith/issues/204) follow-up) ([#1004](https://github.com/mandakan/splitsmith/issues/1004)) ([dd5a6cb](https://github.com/mandakan/splitsmith/commit/dd5a6cb4881334dfac29a290451264c7408d3f18))
|
|
838
|
+
* **site:** redo splitsmith.app on the restructured UI ([#1009](https://github.com/mandakan/splitsmith/issues/1009)) ([4e1d675](https://github.com/mandakan/splitsmith/commit/4e1d6751c4c3d48e8b34b03705992968aef378f0))
|
|
839
|
+
* **ui:** Audit on the primitives with beep confirmation as step 1 (UX PR 5) ([#991](https://github.com/mandakan/splitsmith/issues/991)) ([20301c5](https://github.com/mandakan/splitsmith/commit/20301c5d6e74e2eea74359146202c03b0a4185e9))
|
|
840
|
+
* **ui:** CamOptionsPanel for secondary cams and PiP layout ([#974](https://github.com/mandakan/splitsmith/issues/974) item A) ([#987](https://github.com/mandakan/splitsmith/issues/987)) ([44d32db](https://github.com/mandakan/splitsmith/commit/44d32db1deff30d3a12a05c0aff40c02e3ce26c7))
|
|
841
|
+
* **ui:** Coach and Compare on the primitives with the time budget (UX PR 7) ([#997](https://github.com/mandakan/splitsmith/issues/997)) ([9da1ad6](https://github.com/mandakan/splitsmith/commit/9da1ad64a7d3749cfae825fdc2ceb52249484e08))
|
|
842
|
+
* **ui:** Export mounts the card, cam and YouTube rows on the rebuilt page ([#1003](https://github.com/mandakan/splitsmith/issues/1003)) ([deed225](https://github.com/mandakan/splitsmith/commit/deed225ad51d452d207e2566595b9bdb87de6bae))
|
|
843
|
+
* **ui:** Footage page with the coverage matrix and the clip sheet (UX PR 6) ([#994](https://github.com/mandakan/splitsmith/issues/994)) ([040db92](https://github.com/mandakan/splitsmith/commit/040db920d6d31e71425a0a60eb2342975d25cc5d))
|
|
844
|
+
* **ui:** Matches, Export, Account on the primitives; Triage and Jobs routes retired (UX PR 8) ([#1001](https://github.com/mandakan/splitsmith/issues/1001)) ([c865662](https://github.com/mandakan/splitsmith/commit/c865662ad5b654a578ca9cda749892f2ac31f3d4))
|
|
845
|
+
* **ui:** one-bar shell, progress strip, grouped nav and the budget primitives ([#978](https://github.com/mandakan/splitsmith/issues/978)) ([1f49956](https://github.com/mandakan/splitsmith/commit/1f49956d7b92e64158d1518ec11df407ba363fe7))
|
|
846
|
+
* **ui:** Overview is the stage pipeline table ([#981](https://github.com/mandakan/splitsmith/issues/981)) ([14e5012](https://github.com/mandakan/splitsmith/commit/14e50126c8ae4e485518df5da9a97c52239b2f26))
|
|
847
|
+
* **ui:** RenderOptionsPanel for generated cards and the stage summary ([#974](https://github.com/mandakan/splitsmith/issues/974) items C, D) ([#985](https://github.com/mandakan/splitsmith/issues/985)) ([9a523ed](https://github.com/mandakan/splitsmith/commit/9a523ed394da8008b4601e91030d388c23e4a96a))
|
|
848
|
+
* **ui:** Splits page, stage page and share surface on the primitives (UX PR 4) ([#988](https://github.com/mandakan/splitsmith/issues/988)) ([4025db8](https://github.com/mandakan/splitsmith/commit/4025db8a7cc4d7d7dfc9cc2080f1358fc030630e))
|
|
849
|
+
|
|
850
|
+
|
|
851
|
+
### Bug Fixes
|
|
852
|
+
|
|
853
|
+
* **compare:** cut each grid tile's audio with atrim from an unseeked read of its trim ([#999](https://github.com/mandakan/splitsmith/issues/999)) ([1750bd0](https://github.com/mandakan/splitsmith/commit/1750bd0620b605919f8a33188818ac53e091346f))
|
|
854
|
+
* **mp4:** cut a stage's audio with atrim from an unseeked read; input-side -ss mis-cut it ([#996](https://github.com/mandakan/splitsmith/issues/996)) ([ff2956a](https://github.com/mandakan/splitsmith/commit/ff2956a34ae3f0f6d9d2b05980165ab88006d016))
|
|
855
|
+
* **scripts:** demo seeder keeps the draw fixed when stretching a shot sequence ([#1008](https://github.com/mandakan/splitsmith/issues/1008)) ([5ce832e](https://github.com/mandakan/splitsmith/commit/5ce832e85814aa501d058700cadc9d1b87deeb47))
|
|
856
|
+
* **ui:** demo seeder writes the match stage table and a second shooter; audit draw counts from the beep ([#1005](https://github.com/mandakan/splitsmith/issues/1005)) ([cc8dd5f](https://github.com/mandakan/splitsmith/commit/cc8dd5fbf523485a8eeafd986b1cce4cf9e9ccb0))
|
|
857
|
+
* **ui:** share bar names the match on a phone; marketing deploy installs wrangler ([#1010](https://github.com/mandakan/splitsmith/issues/1010)) ([d43752f](https://github.com/mandakan/splitsmith/commit/d43752fe54064cdea3f6c86f074d8acbfe15e323))
|
|
858
|
+
* **ui:** six defects found in the UX review ([#970](https://github.com/mandakan/splitsmith/issues/970)) ([25fc8e8](https://github.com/mandakan/splitsmith/commit/25fc8e80593c6e652ca543422088ba57daba37e1))
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
### Documentation
|
|
862
|
+
|
|
863
|
+
* CLAUDE.md no-go list after UX PR 4 ([#989](https://github.com/mandakan/splitsmith/issues/989)) ([786451a](https://github.com/mandakan/splitsmith/commit/786451afce673c2885ae9e9779f0ba2c0a377bdc))
|
|
864
|
+
* rendered cards and stage summaries ([#973](https://github.com/mandakan/splitsmith/issues/973), [#972](https://github.com/mandakan/splitsmith/issues/972)) ([#983](https://github.com/mandakan/splitsmith/issues/983)) ([3828941](https://github.com/mandakan/splitsmith/commit/3828941c9fc1f30bb57f4479fe6845e6e65863a7))
|
|
865
|
+
* UI budget conventions for parallel work ([#982](https://github.com/mandakan/splitsmith/issues/982)) ([1f65467](https://github.com/mandakan/splitsmith/commit/1f654675ca71695eac75aaf8b6d7b6635278ca4c))
|
|
866
|
+
|
|
867
|
+
## [0.34.0](https://github.com/mandakan/splitsmith/compare/v0.33.1...v0.34.0) (2026-09-13)
|
|
868
|
+
|
|
869
|
+
|
|
870
|
+
### Features
|
|
871
|
+
|
|
872
|
+
* **results:** play one shooter's audited stages back to back ([#967](https://github.com/mandakan/splitsmith/issues/967)) ([0176f03](https://github.com/mandakan/splitsmith/commit/0176f03c1cfdcf3431688811a5b96340e87b5aff))
|
|
873
|
+
* **ui:** deep-link a synced match's local Results tab to its hosted share surface ([#966](https://github.com/mandakan/splitsmith/issues/966)) ([15d9d32](https://github.com/mandakan/splitsmith/commit/15d9d328b745413b076c5ea9509e53634ef7b9e2))
|
|
874
|
+
|
|
875
|
+
|
|
876
|
+
### Bug Fixes
|
|
877
|
+
|
|
878
|
+
* **ui:** keep the "Open on splitsmith.app" link once a match has been pushed ([#965](https://github.com/mandakan/splitsmith/issues/965)) ([ecb7be5](https://github.com/mandakan/splitsmith/commit/ecb7be52575185ff30cac2b852e4b7078925a3e2))
|
|
879
|
+
* **ui:** rebind waveform zoom to + / 0 / - so it works in Safari ([#969](https://github.com/mandakan/splitsmith/issues/969)) ([20716e2](https://github.com/mandakan/splitsmith/commit/20716e2a9f771c3e5d5b31f6f6c9a4d476fb3ec7))
|
|
880
|
+
|
|
881
|
+
## [0.33.1](https://github.com/mandakan/splitsmith/compare/v0.33.0...v0.33.1) (2026-09-13)
|
|
882
|
+
|
|
883
|
+
|
|
884
|
+
### Bug Fixes
|
|
885
|
+
|
|
886
|
+
* **beep:** saturate silence-preference so loudness stops deciding the ranking ([#950](https://github.com/mandakan/splitsmith/issues/950)) ([2f9e7d2](https://github.com/mandakan/splitsmith/commit/2f9e7d26b24bfaaec12050edb210903511cb77b0))
|
|
887
|
+
* **docker:** bump the ffmpeg build pin to a release that still exists ([#962](https://github.com/mandakan/splitsmith/issues/962)) ([14170e5](https://github.com/mandakan/splitsmith/commit/14170e55169e555330b8522b124b7dac048c9af7))
|
|
888
|
+
* **ui:** point the scoreboard match link at /match, not the bare id path ([#954](https://github.com/mandakan/splitsmith/issues/954)) ([860d4b1](https://github.com/mandakan/splitsmith/commit/860d4b1f77e00a22607ff2eb8146d09f7793a72b))
|
|
889
|
+
|
|
890
|
+
|
|
891
|
+
### Documentation
|
|
892
|
+
|
|
893
|
+
* add interactive system architecture diagram ([#957](https://github.com/mandakan/splitsmith/issues/957)) ([c724fac](https://github.com/mandakan/splitsmith/commit/c724fac71c28192e294dbf0326e306ad951e6f0e))
|
|
894
|
+
* add lifecycle, detection workflow, share-link sequence and ER diagrams ([#958](https://github.com/mandakan/splitsmith/issues/958)) ([38085d9](https://github.com/mandakan/splitsmith/commit/38085d928dddfefff41da23ca84cf15b6876cf5b))
|
|
895
|
+
* correct the beep auto-trust default and the ready-status docstring ([#959](https://github.com/mandakan/splitsmith/issues/959)) ([7766293](https://github.com/mandakan/splitsmith/commit/7766293781923053d92e6e9301f2c88fed345240))
|
|
896
|
+
* render the architecture diagrams inline on GitHub as Mermaid ([#961](https://github.com/mandakan/splitsmith/issues/961)) ([677f78d](https://github.com/mandakan/splitsmith/commit/677f78d95e72d09aa604bea0aa780c12b2b54603))
|
|
897
|
+
|
|
898
|
+
|
|
899
|
+
### Build / CI
|
|
900
|
+
|
|
901
|
+
* check the ffmpeg build pin daily before upstream prunes it ([#963](https://github.com/mandakan/splitsmith/issues/963)) ([be63955](https://github.com/mandakan/splitsmith/commit/be639555971663348fc07e007ffc186086afc935))
|
|
902
|
+
|
|
903
|
+
## [0.33.0](https://github.com/mandakan/splitsmith/compare/v0.32.2...v0.33.0) (2026-08-18)
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
### Features
|
|
907
|
+
|
|
908
|
+
* **cleanup:** gate irreplaceable files on the CLI, and make the freed figure visible ([#925](https://github.com/mandakan/splitsmith/issues/925)) ([6b1c59c](https://github.com/mandakan/splitsmith/commit/6b1c59c88484611ada40ccb6bb38c89b4e691789))
|
|
909
|
+
* **cleanup:** reclaim space on hosted, and give the dialog a caller ([#921](https://github.com/mandakan/splitsmith/issues/921)) ([8d96819](https://github.com/mandakan/splitsmith/commit/8d968191b83ebc2f7ecb007ccbbd0a86ea4783dc))
|
|
910
|
+
* **dev:** eval the filtered subset from the Corpus toolbar ([#941](https://github.com/mandakan/splitsmith/issues/941)) ([a8e2742](https://github.com/mandakan/splitsmith/commit/a8e27423d044b6a1b4ddcd6701098b37c7a25fa4))
|
|
911
|
+
* **dev:** full-stage playback + one synced playhead on the workbench ([#943](https://github.com/mandakan/splitsmith/issues/943)) ([32df8c1](https://github.com/mandakan/splitsmith/commit/32df8c1a73e26517ff32c639935d92d2b37559f4))
|
|
912
|
+
* **dev:** honest post-build flow -- real numbers, no promote theater ([#946](https://github.com/mandakan/splitsmith/issues/946)) ([8ccd6c6](https://github.com/mandakan/splitsmith/commit/8ccd6c653ee02c52ff605774916791c88e0f0117))
|
|
913
|
+
* **dev:** review state and model membership on the corpus ([#936](https://github.com/mandakan/splitsmith/issues/936)) ([d853971](https://github.com/mandakan/splitsmith/commit/d853971cd24715b5d62ad2d1b59545530461ff16))
|
|
914
|
+
* **dev:** the labeling workbench belongs to Review, and Review can eval ([#942](https://github.com/mandakan/splitsmith/issues/942)) ([de4debd](https://github.com/mandakan/splitsmith/commit/de4debd4ffdbd5ee1da0bc0e1d1a1c5416ebb81c))
|
|
915
|
+
* **exports:** persistent export-run history ([#629](https://github.com/mandakan/splitsmith/issues/629)) ([bfe6ad4](https://github.com/mandakan/splitsmith/commit/bfe6ad4f17be8ffe4b80e5581d0d6cb202152e9c))
|
|
916
|
+
* **model:** ship ensemble v2026.08.17 with the 48-fixture HFO corpus ([#948](https://github.com/mandakan/splitsmith/issues/948)) ([f36fd75](https://github.com/mandakan/splitsmith/commit/f36fd75c5070967239807284612590bb5cbc36de))
|
|
917
|
+
|
|
918
|
+
|
|
919
|
+
### Bug Fixes
|
|
920
|
+
|
|
921
|
+
* **api:** gate the cleanup endpoint on the same opt-in the CLI and dialog use ([#927](https://github.com/mandakan/splitsmith/issues/927)) ([6618070](https://github.com/mandakan/splitsmith/commit/661807021d922b3c686191d72d84442725e64fb1)), closes [#926](https://github.com/mandakan/splitsmith/issues/926)
|
|
922
|
+
* **dev:** distinct FP colour in the lab outcome palette ([#937](https://github.com/mandakan/splitsmith/issues/937)) ([65a0bb6](https://github.com/mandakan/splitsmith/commit/65a0bb6c88309d5c837a684bb4e5384d0f11328d))
|
|
923
|
+
* **dev:** FN rows get the subclass vocabulary in the label dropdown ([#938](https://github.com/mandakan/splitsmith/issues/938)) ([c63c3b5](https://github.com/mandakan/splitsmith/commit/c63c3b5ef67d746215ad0ae19b9c0906116ab788))
|
|
924
|
+
* **dev:** one scroll surface per pane on the labeling page ([#939](https://github.com/mandakan/splitsmith/issues/939)) ([43875a5](https://github.com/mandakan/splitsmith/commit/43875a5faec35ad04fac1f128b63a22230abb602))
|
|
925
|
+
* **dev:** the labeling aside never scrolls ([#940](https://github.com/mandakan/splitsmith/issues/940)) ([33e88df](https://github.com/mandakan/splitsmith/commit/33e88df52f2490ef12a07e6d8d26c11b6f4ddc30))
|
|
926
|
+
* **dev:** wire Approve to corpus, and Retrain re-attaches to its job ([#944](https://github.com/mandakan/splitsmith/issues/944)) ([7ea6769](https://github.com/mandakan/splitsmith/commit/7ea67690075c143caa2bc017bc2f45a8454dd8a4))
|
|
927
|
+
* **jobs:** a SystemExit in a job body fails the job instead of hanging it ([#945](https://github.com/mandakan/splitsmith/issues/945)) ([9012d4c](https://github.com/mandakan/splitsmith/commit/9012d4c7a5f0fcc1ecad017094d8884309ef3f58))
|
|
928
|
+
* **lab:** route each fixture's camera class through the eval ensemble ([#947](https://github.com/mandakan/splitsmith/issues/947)) ([95d02a8](https://github.com/mandakan/splitsmith/commit/95d02a81b991d4f1845aff65477cd3875aeb6513))
|
|
929
|
+
|
|
930
|
+
|
|
931
|
+
### Refactors
|
|
932
|
+
|
|
933
|
+
* **sync:** delete the unreachable clause in the delete-corroboration ([#860](https://github.com/mandakan/splitsmith/issues/860)) ([110a680](https://github.com/mandakan/splitsmith/commit/110a6808735affb5e802c7fb99d01c899b6a8d08))
|
|
934
|
+
|
|
935
|
+
## [0.32.2](https://github.com/mandakan/splitsmith/compare/v0.32.1...v0.32.2) (2026-08-15)
|
|
936
|
+
|
|
937
|
+
|
|
938
|
+
### Performance
|
|
939
|
+
|
|
940
|
+
* **docker:** ship ffmpeg's shared build, not two copies of every codec ([#916](https://github.com/mandakan/splitsmith/issues/916)) ([48604b9](https://github.com/mandakan/splitsmith/commit/48604b937aac68ce1151a83894d81d8fb9f2fc64))
|
|
941
|
+
* **docker:** stop baking the 450 MB model cache into the image ([#918](https://github.com/mandakan/splitsmith/issues/918)) ([0607649](https://github.com/mandakan/splitsmith/commit/060764982fc46fe4bf4934b83bb63d412664b458))
|
|
942
|
+
|
|
943
|
+
## [0.32.1](https://github.com/mandakan/splitsmith/compare/v0.32.0...v0.32.1) (2026-08-15)
|
|
944
|
+
|
|
945
|
+
|
|
946
|
+
### Bug Fixes
|
|
947
|
+
|
|
948
|
+
* **docker:** pull ffmpeg from a pinned GitHub release, checksum it before extracting ([#914](https://github.com/mandakan/splitsmith/issues/914)) ([e1611b3](https://github.com/mandakan/splitsmith/commit/e1611b35da0511738cf511e51d215a8cc8ac1d62))
|
|
949
|
+
|
|
950
|
+
## [0.32.0](https://github.com/mandakan/splitsmith/compare/v0.31.0...v0.32.0) (2026-08-14)
|
|
951
|
+
|
|
952
|
+
|
|
953
|
+
### ⚠ BREAKING CHANGES
|
|
954
|
+
|
|
955
|
+
* **dev:** delete the legacy Lab page ([#897](https://github.com/mandakan/splitsmith/issues/897))
|
|
956
|
+
|
|
957
|
+
### Features
|
|
958
|
+
|
|
959
|
+
* **desktop:** refresh the linked account's display name ([#877](https://github.com/mandakan/splitsmith/issues/877)) ([bbc3f78](https://github.com/mandakan/splitsmith/commit/bbc3f781c788f06ade097fb31d14d9e1521bbe04))
|
|
960
|
+
* **dev:** delete the legacy Lab page ([#897](https://github.com/mandakan/splitsmith/issues/897)) ([cb5705c](https://github.com/mandakan/splitsmith/commit/cb5705cbf80ec8d727d972fb70e897fcdbdd9f97))
|
|
961
|
+
* **dev:** full-page fixture detail with labeling at /dev/corpus/:slug ([#893](https://github.com/mandakan/splitsmith/issues/893)) ([cbaae33](https://github.com/mandakan/splitsmith/commit/cbaae33b41c85b4fa1fe8168b14aee2344a5f094))
|
|
962
|
+
* **dev:** promotion on Corpus, tuning + sweeps on Validate ([#896](https://github.com/mandakan/splitsmith/issues/896)) ([9d6d591](https://github.com/mandakan/splitsmith/commit/9d6d5914bedae905555287c5d471d6cf78ac0c90))
|
|
963
|
+
* **dev:** review queue items deep-link to the fixture detail page for labeling ([#912](https://github.com/mandakan/splitsmith/issues/912)) ([bb8506d](https://github.com/mandakan/splitsmith/commit/bb8506d12ce0aa6ddeaa73bbbfe92cb3083f4914))
|
|
964
|
+
* **lab:** scoped eval merges into a same-config cached run ([#891](https://github.com/mandakan/splitsmith/issues/891)) ([1af97f8](https://github.com/mandakan/splitsmith/commit/1af97f8edae286902f15db16a5f88a2f8193ef46))
|
|
965
|
+
* **lab:** shooter selector in the batch-promote panel, all selected by default ([#886](https://github.com/mandakan/splitsmith/issues/886)) ([fac2759](https://github.com/mandakan/splitsmith/commit/fac2759cbf32c4f41a4b55aec1a614a2ac2fe466))
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
### Bug Fixes
|
|
969
|
+
|
|
970
|
+
* **agent-gpu:** force clean onnxruntime-gpu reinstall in the swap ([#880](https://github.com/mandakan/splitsmith/issues/880)) ([3bb889b](https://github.com/mandakan/splitsmith/commit/3bb889b68b63d5e91c7f773a60b4fb57060ca25a))
|
|
971
|
+
* **dev:** fixture-detail polish -- fetch-error state, filtered prev/next, accent nits ([#909](https://github.com/mandakan/splitsmith/issues/909)) ([39653e9](https://github.com/mandakan/splitsmith/commit/39653e9df68ee54e8fa79851f6304e362c8f1f01))
|
|
972
|
+
* **dev:** gate the fixture-detail auto-eval on hydration, not a 250ms timer ([#903](https://github.com/mandakan/splitsmith/issues/903)) ([d410028](https://github.com/mandakan/splitsmith/commit/d410028427e6054bd2f7754f06d6bfd62b056cf6))
|
|
973
|
+
* **dev:** one consensus control on Validate, ranged to the real 3-voter ensemble ([#910](https://github.com/mandakan/splitsmith/issues/910)) ([8012140](https://github.com/mandakan/splitsmith/commit/8012140b1bdbd5d6decd40e76fbeff8e254e1c6e))
|
|
974
|
+
* **lab:** explain the pre-eval state and offer a per-fixture eval ([#887](https://github.com/mandakan/splitsmith/issues/887)) ([5c64d18](https://github.com/mandakan/splitsmith/commit/5c64d187b439882bf7003b9f465b1aef7ad06fa9))
|
|
975
|
+
* **lab:** scroll the fixture detail drawer into view on row click ([#888](https://github.com/mandakan/splitsmith/issues/888)) ([2237ac5](https://github.com/mandakan/splitsmith/commit/2237ac581ec3959263fb5f97c55f81f6bb03b0f9))
|
|
976
|
+
* **lab:** separate the shooter slug from the fixture slug in promote ([#885](https://github.com/mandakan/splitsmith/issues/885)) ([6dec3e0](https://github.com/mandakan/splitsmith/commit/6dec3e07d9d362d926457ae6e87d804ae20f68ca))
|
|
977
|
+
* **ui:** give the dev-mode Lab an explicit match context ([#883](https://github.com/mandakan/splitsmith/issues/883)) ([b1be1c5](https://github.com/mandakan/splitsmith/commit/b1be1c5321e627dce09b1f03568d8e9a344126d7))
|
|
978
|
+
* **ui:** thread the chosen match through mode flips and dev-mode picks ([#884](https://github.com/mandakan/splitsmith/issues/884)) ([3d6d9d5](https://github.com/mandakan/splitsmith/commit/3d6d9d5f67eb276b79b8170389ce838086575ea5))
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
### Refactors
|
|
982
|
+
|
|
983
|
+
* **dev:** drop the legacy compat shims from the shared lab components ([#911](https://github.com/mandakan/splitsmith/issues/911)) ([9e23cfd](https://github.com/mandakan/splitsmith/commit/9e23cfd755376a9d01b94ea8e1713ca64b0a7d31))
|
|
984
|
+
* **lab:** extract lab primitives to components/lab ([#890](https://github.com/mandakan/splitsmith/issues/890)) ([81b5dd6](https://github.com/mandakan/splitsmith/commit/81b5dd6fce623b11f03741d7a5c9b7e4f2c8a90e))
|
|
985
|
+
|
|
986
|
+
|
|
987
|
+
### Build / CI
|
|
988
|
+
|
|
989
|
+
* no workflow applies a migration -- gate it ([#876](https://github.com/mandakan/splitsmith/issues/876)) ([89dd37b](https://github.com/mandakan/splitsmith/commit/89dd37bb7d0132201fa2ab70b3d2fdc39cdcc5fc))
|
|
990
|
+
|
|
991
|
+
## [0.31.0](https://github.com/mandakan/splitsmith/compare/v0.30.0...v0.31.0) (2026-08-14)
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
### Features
|
|
995
|
+
|
|
996
|
+
* pin camera streams to the measured clip kind ([#874](https://github.com/mandakan/splitsmith/issues/874)) ([0267be8](https://github.com/mandakan/splitsmith/commit/0267be8f725038324fa2b2cdba5bc0424b9ad507))
|
|
997
|
+
* **ui:** mobile audit screen (mobile audit design, step 6) ([6abcd80](https://github.com/mandakan/splitsmith/commit/6abcd80b8a2cb0078f29ab7f7b1e0b1acc586a91))
|
|
998
|
+
|
|
999
|
+
|
|
1000
|
+
### Bug Fixes
|
|
1001
|
+
|
|
1002
|
+
* **ui:** video kind from peaks flag, dirty-guard on back, guarded 409 reload ([54f402d](https://github.com/mandakan/splitsmith/commit/54f402d2ccbf4db2c07bd36578cccc5a5562ac9e))
|
|
1003
|
+
|
|
1004
|
+
|
|
1005
|
+
### Refactors
|
|
1006
|
+
|
|
1007
|
+
* **ui:** camera polish follow-ups from [#868](https://github.com/mandakan/splitsmith/issues/868) review ([#871](https://github.com/mandakan/splitsmith/issues/871)) ([9c9d62d](https://github.com/mandakan/splitsmith/commit/9c9d62d9249a7d9aaa915b27393136f86bf6e54c))
|
|
1008
|
+
|
|
1009
|
+
## [0.30.0](https://github.com/mandakan/splitsmith/compare/v0.29.0...v0.30.0) (2026-08-14)
|
|
1010
|
+
|
|
1011
|
+
|
|
1012
|
+
### Features
|
|
1013
|
+
|
|
1014
|
+
* **account:** a display name accounts can set, and codes that tell commenters apart ([#869](https://github.com/mandakan/splitsmith/issues/869)) ([4651b01](https://github.com/mandakan/splitsmith/commit/4651b01c067396c24f842a60ab15094f5f0e1560))
|
|
1015
|
+
* **share:** timestamped comments on shared stage video ([#866](https://github.com/mandakan/splitsmith/issues/866)) ([1a11a22](https://github.com/mandakan/splitsmith/commit/1a11a22bf574b9791ddaea872176949591462b54))
|
|
1016
|
+
* **ui:** camera selection on shared and owner match views ([#868](https://github.com/mandakan/splitsmith/issues/868)) ([78c915b](https://github.com/mandakan/splitsmith/commit/78c915b8f10c3a40cb1f21dad6ff628591b39944))
|
|
1017
|
+
|
|
1018
|
+
|
|
1019
|
+
### Build / CI
|
|
1020
|
+
|
|
1021
|
+
* verify Railway deploys via deployment status, not the log stream ([#864](https://github.com/mandakan/splitsmith/issues/864)) ([86ef884](https://github.com/mandakan/splitsmith/commit/86ef8845256b3b5a2e2acddd328f1902d3d469e4)), closes [#863](https://github.com/mandakan/splitsmith/issues/863)
|
|
1022
|
+
|
|
1023
|
+
## [0.29.0](https://github.com/mandakan/splitsmith/compare/v0.28.0...v0.29.0) (2026-08-13)
|
|
1024
|
+
|
|
1025
|
+
|
|
1026
|
+
### Features
|
|
1027
|
+
|
|
1028
|
+
* **sync:** shots become a first-class synced entity ([#848](https://github.com/mandakan/splitsmith/issues/848)) ([8ab16a8](https://github.com/mandakan/splitsmith/commit/8ab16a8f6079aa9c4f595567453460cb79b80a7d))
|
|
1029
|
+
|
|
1030
|
+
|
|
1031
|
+
### Bug Fixes
|
|
1032
|
+
|
|
1033
|
+
* **test:** make the mode-resolution gate test load-independent ([#859](https://github.com/mandakan/splitsmith/issues/859)) ([99d3a4d](https://github.com/mandakan/splitsmith/commit/99d3a4d241bbbefd2442e3ba628da990488c2628))
|
|
1034
|
+
* **ui:** a reset re-detect records the shots it wipes ([#856](https://github.com/mandakan/splitsmith/issues/856)) ([f067fba](https://github.com/mandakan/splitsmith/commit/f067fba36525327b128c4bc153525a0b1e0e1fbd)), closes [#842](https://github.com/mandakan/splitsmith/issues/842)
|
|
1035
|
+
* **ui:** apply PATCH-returned WorkerView instead of refetching the roster ([#579](https://github.com/mandakan/splitsmith/issues/579)) ([#862](https://github.com/mandakan/splitsmith/issues/862)) ([0fb3025](https://github.com/mandakan/splitsmith/commit/0fb302578744077d051ee8be903f06a8f4aa919b))
|
|
1036
|
+
* **ui:** candidate numbers are never reused within a stage ([#857](https://github.com/mandakan/splitsmith/issues/857)) ([d0113f1](https://github.com/mandakan/splitsmith/commit/d0113f1e0e9e18af18c024ebe8f532360e2338b6)), closes [#842](https://github.com/mandakan/splitsmith/issues/842)
|
|
1037
|
+
* **ui:** deriveMarkers no longer double-emits a candidate-matched shot ([#852](https://github.com/mandakan/splitsmith/issues/852)) ([4a09719](https://github.com/mandakan/splitsmith/commit/4a09719799a4169d71d40dfdb2b1f9f4cca5c33f)), closes [#847](https://github.com/mandakan/splitsmith/issues/847)
|
|
1038
|
+
* **ui:** hosted export downloads survive a reload ([#858](https://github.com/mandakan/splitsmith/issues/858)) ([86753e1](https://github.com/mandakan/splitsmith/commit/86753e11781021e794a19d0a60051b5d0ab5318a))
|
|
1039
|
+
* **ui:** reject non-finite floats at the audit save boundary ([#853](https://github.com/mandakan/splitsmith/issues/853)) ([e1f2be8](https://github.com/mandakan/splitsmith/commit/e1f2be807b7039959f49dbebffb2b8dfeb39113c)), closes [#843](https://github.com/mandakan/splitsmith/issues/843)
|
|
1040
|
+
* **ui:** repoint the coach PATCH at the by-id route ([#844](https://github.com/mandakan/splitsmith/issues/844)) ([ae4ee6a](https://github.com/mandakan/splitsmith/commit/ae4ee6ae8986b54dddb374e78a472f4ef0726606))
|
|
1041
|
+
* **ui:** scope SyncCard to its own match ([#861](https://github.com/mandakan/splitsmith/issues/861)) ([4f2ae12](https://github.com/mandakan/splitsmith/commit/4f2ae121fe75f68138e7b0b164d53000caaf777b))
|
|
1042
|
+
|
|
1043
|
+
|
|
1044
|
+
### Refactors
|
|
1045
|
+
|
|
1046
|
+
* **sync:** promote the names two sync modules already share ([#854](https://github.com/mandakan/splitsmith/issues/854)) ([7aabd60](https://github.com/mandakan/splitsmith/commit/7aabd60ce737419e52a4a820a2d887cc9b600bcb)), closes [#845](https://github.com/mandakan/splitsmith/issues/845)
|
|
1047
|
+
|
|
1048
|
+
## [0.28.0](https://github.com/mandakan/splitsmith/compare/v0.27.0...v0.28.0) (2026-08-12)
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
### Features
|
|
1052
|
+
|
|
1053
|
+
* compare share OG shell, meta and card - closes the compare unfurl gap ([95bad24](https://github.com/mandakan/splitsmith/commit/95bad242d1e3125f51650868e76ca0fb28d10053))
|
|
1054
|
+
* moment badge on stage cards and new CompareCard model ([4aec17d](https://github.com/mandakan/splitsmith/commit/4aec17d3c76be8d9a64f64c394d0aed0b3a8bf71))
|
|
1055
|
+
* moment deep links - share exact timestamps on video and compare pages ([0a8b3b6](https://github.com/mandakan/splitsmith/commit/0a8b3b6e394b013c5ab7a7383096fec3ae98dcb9))
|
|
1056
|
+
* moment-aware stage OG cards, meta and shell forwarding ([eae4f3e](https://github.com/mandakan/splitsmith/commit/eae4f3e959056d44434b61a4d9c955133f587506))
|
|
1057
|
+
* **ui:** apply moment deep links on the compare page ([d567641](https://github.com/mandakan/splitsmith/commit/d567641976fb1ca0f79689d234ddaaf4ecd56b54))
|
|
1058
|
+
* **ui:** copy link at moment and track marker on the compare page ([8bbea46](https://github.com/mandakan/splitsmith/commit/8bbea46c047310fb093660f714685dcf873bbbcf))
|
|
1059
|
+
* **ui:** moment marker, one-shot paused seek and copy hook in ResultsPlayer ([13cc1e1](https://github.com/mandakan/splitsmith/commit/13cc1e1baab301698612104b0c3511762d980942))
|
|
1060
|
+
* **ui:** moment polish - dedicated marker color, who cap parity, re-arm on new moment, share-aware copy ([28470a5](https://github.com/mandakan/splitsmith/commit/28470a5dbfd7093d86186a6664532a541a40c863))
|
|
1061
|
+
* **ui:** Moment type with URL serializer for timestamp deep links ([b1ce96d](https://github.com/mandakan/splitsmith/commit/b1ce96dcd1b1108d00b4fe3f2cccffb9812bec93))
|
|
1062
|
+
* **ui:** share-aware copy-link-at-moment on owner pages ([0061ac3](https://github.com/mandakan/splitsmith/commit/0061ac361656f62db77f877f03e72c0d5202218d))
|
|
1063
|
+
* **ui:** timestamp deep links on the results video page ([77ea8c5](https://github.com/mandakan/splitsmith/commit/77ea8c5c938b6b22e38df84d8d61302c5ce301a8))
|
|
1064
|
+
* uncached moment-card render path and CompareCard dispatch ([7b59b4e](https://github.com/mandakan/splitsmith/commit/7b59b4ee1772f9295d9f13e1680444b5a6a2c141))
|
|
1065
|
+
|
|
1066
|
+
|
|
1067
|
+
### Bug Fixes
|
|
1068
|
+
|
|
1069
|
+
* **moment:** dedicated color token, who cap parity, re-arm on moment change ([599c265](https://github.com/mandakan/splitsmith/commit/599c265100918f661f4f1e85a2b42ee103e465db))
|
|
1070
|
+
* preserve RasterizerUnavailableError detail in share card render fallback ([8ec089d](https://github.com/mandakan/splitsmith/commit/8ec089dd510f9e33601eece951938539ae059bae))
|
|
1071
|
+
* **share-card:** compare card headline carries shooter names, not "Compare" ([be67f77](https://github.com/mandakan/splitsmith/commit/be67f7765be7ed98a7a1591e0bd04424c1131c0a))
|
|
1072
|
+
* **share:** validate compare stage number, widen png type, clamp moment t ([99d6b89](https://github.com/mandakan/splitsmith/commit/99d6b89c1eb8dce2ce63d24c71e8200eaf858b58))
|
|
1073
|
+
* single ASCII dash in new test docstrings ([f5d6023](https://github.com/mandakan/splitsmith/commit/f5d6023dce6cd1b3337c182b95b5927fb0db466d))
|
|
1074
|
+
|
|
1075
|
+
|
|
1076
|
+
### Documentation
|
|
1077
|
+
|
|
1078
|
+
* moment deep links design spec ([b06b61e](https://github.com/mandakan/splitsmith/commit/b06b61ea8b4c17093de2a5a5e55339d68605e422))
|
|
1079
|
+
* moment deep links implementation plan ([84d2cb5](https://github.com/mandakan/splitsmith/commit/84d2cb575072d76ace81d19962d6f5a086db1ded))
|
|
1080
|
+
|
|
1081
|
+
## [0.27.0](https://github.com/mandakan/splitsmith/compare/v0.26.0...v0.27.0) (2026-08-12)
|
|
1082
|
+
|
|
1083
|
+
|
|
1084
|
+
### Features
|
|
1085
|
+
|
|
1086
|
+
* add scope column to share_tokens, resolver surfaces it ([#779](https://github.com/mandakan/splitsmith/issues/779)) ([fc2eb34](https://github.com/mandakan/splitsmith/commit/fc2eb34cfefc9eaada8dce6e94c8f57f48783f09))
|
|
1087
|
+
* match capability model - one table for guard and payload ([#756](https://github.com/mandakan/splitsmith/issues/756)) ([1be2a46](https://github.com/mandakan/splitsmith/commit/1be2a46c46a8032bbf55d90161adb6dc0ffd75b5))
|
|
1088
|
+
* match writability as a server-derived capability ([#756](https://github.com/mandakan/splitsmith/issues/756)) ([1266623](https://github.com/mandakan/splitsmith/commit/1266623cab66cad1f0f54aba67bfca08afb939a3))
|
|
1089
|
+
* read-scoped share requests run READ ONLY transactions ([#779](https://github.com/mandakan/splitsmith/issues/779)) ([ed19e06](https://github.com/mandakan/splitsmith/commit/ed19e06ce9e34283188c943ffe8bc2b67ae05b03))
|
|
1090
|
+
* scope-keyed read-only defense for share requests ([#779](https://github.com/mandakan/splitsmith/issues/779)) ([bb763b5](https://github.com/mandakan/splitsmith/commit/bb763b5647769f491367a4c4f4c45a6dcb992f5b))
|
|
1091
|
+
* serialize match capabilities on project, shooter-list, beep-queue payloads ([#756](https://github.com/mandakan/splitsmith/issues/756)) ([acbeb96](https://github.com/mandakan/splitsmith/commit/acbeb962a690510fecf349c74dc171586ca7c5aa))
|
|
1092
|
+
* share middleware pins token scope in a db-layer ContextVar ([#779](https://github.com/mandakan/splitsmith/issues/779)) ([e7f2a5a](https://github.com/mandakan/splitsmith/commit/e7f2a5a0da4a077f87e556e045c952f1793d0284))
|
|
1093
|
+
* state stores refuse mutations under read-scoped share requests ([#779](https://github.com/mandakan/splitsmith/issues/779)) ([9a2c7b3](https://github.com/mandakan/splitsmith/commit/9a2c7b3a43a9a8009ca94a2055d63d5905ecf2a4))
|
|
1094
|
+
* **sync:** remote snippet GC - push deletes beep_review objects for reviewed videos ([#821](https://github.com/mandakan/splitsmith/issues/821)) ([915959e](https://github.com/mandakan/splitsmith/commit/915959e2c484ce181f48f661aecf49c16f3087df))
|
|
1095
|
+
* **ui:** capability-gate beep re-detect, exports, and trim rebuild ([#756](https://github.com/mandakan/splitsmith/issues/756)) ([7e5e2ed](https://github.com/mandakan/splitsmith/commit/7e5e2edb94f58b10823376df44aee79c9fdbcc91))
|
|
1096
|
+
* **ui:** Home and Ingest gate edit affordances on the capability set ([#756](https://github.com/mandakan/splitsmith/issues/756)) ([123a1bd](https://github.com/mandakan/splitsmith/commit/123a1bda9fca92260470c766c6cb59f8821ef774))
|
|
1097
|
+
* **ui:** MatchCapability type, capabilityDenied helper, capability-keyed banner ([#756](https://github.com/mandakan/splitsmith/issues/756)) ([f802cd8](https://github.com/mandakan/splitsmith/commit/f802cd80e26644a721cedecd7c57f5ef18e1db20))
|
|
1098
|
+
|
|
1099
|
+
|
|
1100
|
+
### Bug Fixes
|
|
1101
|
+
|
|
1102
|
+
* ASCII single-dash + precise dep claim in share_guard import comment ([5bfd830](https://github.com/mandakan/splitsmith/commit/5bfd830f5b8d4066c1812249b915cae5928f811e))
|
|
1103
|
+
* device-flow and shell hardening wave ([#734](https://github.com/mandakan/splitsmith/issues/734) [#735](https://github.com/mandakan/splitsmith/issues/735) [#736](https://github.com/mandakan/splitsmith/issues/736) [#737](https://github.com/mandakan/splitsmith/issues/737) [#738](https://github.com/mandakan/splitsmith/issues/738) [#739](https://github.com/mandakan/splitsmith/issues/739) [#725](https://github.com/mandakan/splitsmith/issues/725)) ([78e22f1](https://github.com/mandakan/splitsmith/commit/78e22f12cd672a30ef50c15e558f37cf7512412f))
|
|
1104
|
+
* fail-closed share scope check + wider byte-identity net ([#779](https://github.com/mandakan/splitsmith/issues/779) review) ([7ab4128](https://github.com/mandakan/splitsmith/commit/7ab41282a131cc10300114124fc2da90e10890cc))
|
|
1105
|
+
* final review wave - honest revoke-failure comment, stale-comment sweep, repoint ordering test ([#737](https://github.com/mandakan/splitsmith/issues/737) [#738](https://github.com/mandakan/splitsmith/issues/738)) ([2a5e326](https://github.com/mandakan/splitsmith/commit/2a5e3260edf165f00f0ec1d4f9454e77d85db45c))
|
|
1106
|
+
* one honest proxy_ready everywhere; mirror copy stops promising a proxy ([#821](https://github.com/mandakan/splitsmith/issues/821)) ([d11cc5b](https://github.com/mandakan/splitsmith/commit/d11cc5be62118a187f580f97f105fd9d70c74e14))
|
|
1107
|
+
* scope beep-queue snippet listing to beep_review prefixes ([#821](https://github.com/mandakan/splitsmith/issues/821)) ([5cabb02](https://github.com/mandakan/splitsmith/commit/5cabb020e336f711a0e39203c3f5ce8f0956ebfa))
|
|
1108
|
+
* **sync:** beep-review sync follow-ups - snippet GC, honest proxy_ready, merge gating ([#821](https://github.com/mandakan/splitsmith/issues/821)) ([5016549](https://github.com/mandakan/splitsmith/commit/5016549652a62375a3357879df5958a8f2999eae))
|
|
1109
|
+
* **sync:** confirm-only beep writes merge without re-trim/re-detect ([#821](https://github.com/mandakan/splitsmith/issues/821)) ([9db46a2](https://github.com/mandakan/splitsmith/commit/9db46a27f1a0b9928d84871d32593e244db2fea2))
|
|
1110
|
+
* **sync:** per-subdir extension sets in the media key gate ([#821](https://github.com/mandakan/splitsmith/issues/821)) ([4b1a02f](https://github.com/mandakan/splitsmith/commit/4b1a02fdeb340c5a9175e560773778810e893cca))
|
|
1111
|
+
* **ui:** Add more click surfaces read-only message instead of silent no-op ([0ee33a3](https://github.com/mandakan/splitsmith/commit/0ee33a31be553297d743ff0135e49de1cbc75695))
|
|
1112
|
+
* **ui:** close the [#836](https://github.com/mandakan/splitsmith/issues/836) pre-release findings (scoreboard gate, honest ingest copy) ([a563345](https://github.com/mandakan/splitsmith/commit/a563345e7453b516f622255c3165115b5ef00f79))
|
|
1113
|
+
* **ui:** correct Compare share-mount comment, test the trim-rebuild capability gate ([607abaa](https://github.com/mandakan/splitsmith/commit/607abaa751b7e13223fa81de271187d7a208deb4))
|
|
1114
|
+
* **ui:** gate hosted drop and Shooters page on edit capability ([#756](https://github.com/mandakan/splitsmith/issues/756) review) ([8f8d835](https://github.com/mandakan/splitsmith/commit/8f8d835286f2c2485f21c747cfd9c6ff8d244690))
|
|
1115
|
+
* **ui:** gate scoreboard connect, disable mirror row controls, honest ingest copy ([#836](https://github.com/mandakan/splitsmith/issues/836)) ([fb2182c](https://github.com/mandakan/splitsmith/commit/fb2182c6f85366fcfcfd2223dc7b22a935ef3129))
|
|
1116
|
+
* **ui:** mirror matches never arm the proxy poll; origin typed optional ([#821](https://github.com/mandakan/splitsmith/issues/821)) ([c8a7cc5](https://github.com/mandakan/splitsmith/commit/c8a7cc5959d84af6eccbf48ffe67f1db0801eacd))
|
|
1117
|
+
* **ui:** sign-out clears a stale load-failure flag ([#738](https://github.com/mandakan/splitsmith/issues/738)) ([9cf58bf](https://github.com/mandakan/splitsmith/commit/9cf58bf3722a1665ca127a3c4c8ff4d931b23d4e))
|
|
1118
|
+
* **ui:** three-way origin capability mapping in MatchShell test helper ([3859684](https://github.com/mandakan/splitsmith/commit/385968496672071aa69489f71d2b6160e702a78b))
|
|
1119
|
+
|
|
1120
|
+
|
|
1121
|
+
### Refactors
|
|
1122
|
+
|
|
1123
|
+
* mirror guard driven by the capability table ([#756](https://github.com/mandakan/splitsmith/issues/756)) ([b5cac43](https://github.com/mandakan/splitsmith/commit/b5cac4390d0cac985dcdd10e145eac066208eb9e))
|
|
1124
|
+
* **ui:** BeepQueueResponse.origin is MatchOrigin; comment covers hosted ([#821](https://github.com/mandakan/splitsmith/issues/821)) ([1ad9331](https://github.com/mandakan/splitsmith/commit/1ad933180b3785c177940f2abb58b3c01bd07556))
|
|
1125
|
+
|
|
1126
|
+
|
|
1127
|
+
### Documentation
|
|
1128
|
+
|
|
1129
|
+
* hardening wave implementation plans (PR 2 branch copy) ([497dd75](https://github.com/mandakan/splitsmith/commit/497dd7582536b7d0fd0dcaab9a20328ce87bc252))
|
|
1130
|
+
* implementation plans for share-write foundation PRs A and B ([a99d59d](https://github.com/mandakan/splitsmith/commit/a99d59dd19e46259cafea844c8a2cf515c1c56fc))
|
|
1131
|
+
* share-write foundation design spec ([#779](https://github.com/mandakan/splitsmith/issues/779) + [#756](https://github.com/mandakan/splitsmith/issues/756)) ([fd8e5ae](https://github.com/mandakan/splitsmith/commit/fd8e5ae37a25013e17b46d844a6ad24f1929b75e))
|
|
1132
|
+
|
|
1133
|
+
## [0.26.0](https://github.com/mandakan/splitsmith/compare/v0.25.0...v0.26.0) (2026-08-11)
|
|
1134
|
+
|
|
1135
|
+
|
|
1136
|
+
### Features
|
|
1137
|
+
|
|
1138
|
+
* **admin-workers:** show GPU capabilities and flag outdated versions ([#830](https://github.com/mandakan/splitsmith/issues/830)) ([97cb2bf](https://github.com/mandakan/splitsmith/commit/97cb2bf37b338242da0f7172de86d90f3de26bd4))
|
|
1139
|
+
* **results:** add per-stage compare CTA to share view and match summary ([#831](https://github.com/mandakan/splitsmith/issues/831)) ([7693e4a](https://github.com/mandakan/splitsmith/commit/7693e4a8a47786bf5a7105bfe5a60cc002e670e0))
|
|
1140
|
+
|
|
1141
|
+
|
|
1142
|
+
### Documentation
|
|
1143
|
+
|
|
1144
|
+
* **workers:** fix native state-dir default + add PyPI/auto-update section ([#828](https://github.com/mandakan/splitsmith/issues/828)) ([f00bffe](https://github.com/mandakan/splitsmith/commit/f00bffe925f18caed1e46162d69a1b8f527e3014))
|
|
1145
|
+
|
|
1146
|
+
## [0.25.0](https://github.com/mandakan/splitsmith/compare/v0.24.0...v0.25.0) (2026-08-11)
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
### Features
|
|
1150
|
+
|
|
1151
|
+
* **audit:** desktop surfaces triage flag; audit save resolves it ([#823](https://github.com/mandakan/splitsmith/issues/823)) ([0afee37](https://github.com/mandakan/splitsmith/commit/0afee37905eebf847989b2c62a7ba06b8fcbe6f5))
|
|
1152
|
+
* **coach:** exempt coach writes from the mirror read-only gate ([75f62d3](https://github.com/mandakan/splitsmith/commit/75f62d3050723eaa7d4044569feaee6d91e9a3fc))
|
|
1153
|
+
* mobile audit triage surface (operator surfaces slice 4) ([162fc38](https://github.com/mandakan/splitsmith/commit/162fc3887ec80be574430becf68f356c4f83b137))
|
|
1154
|
+
* mobile beep review (mobile operator surfaces slice 3) ([0fa1a1b](https://github.com/mandakan/splitsmith/commit/0fa1a1b603c6d076248a3c4742462a41e3ff58a5))
|
|
1155
|
+
* mobile interval reclassify (slice 5) ([4fbe3eb](https://github.com/mandakan/splitsmith/commit/4fbe3ebc25c301a3da029b3a00ad7f42e5405f29))
|
|
1156
|
+
* **sync:** generate beep review snippets for unconfirmed videos ([dfb2095](https://github.com/mandakan/splitsmith/commit/dfb2095607089baaf001a66f13a58f4524a5e642))
|
|
1157
|
+
* **sync:** needs_attention LWW merge unit; exempt updated_at stamp from tripwire ([c54beac](https://github.com/mandakan/splitsmith/commit/c54beac9ccf253c9c02335eb4568b7f3c3cda7ca))
|
|
1158
|
+
* **sync:** push beep review snippets with the media plan ([798e7bc](https://github.com/mandakan/splitsmith/commit/798e7bc505b303146a8ad79447fe8378af282135))
|
|
1159
|
+
* **triage:** accept audit events count as audited status ([e63ce70](https://github.com/mandakan/splitsmith/commit/e63ce702d74c8d1a8164124aee07e71560fd0f78))
|
|
1160
|
+
* **triage:** accept-stage endpoint with classification enforcement ([4b2a915](https://github.com/mandakan/splitsmith/commit/4b2a9152ef89aaa681f62a1642900860299f2164))
|
|
1161
|
+
* **triage:** flag-for-desktop attention endpoint ([e4ee8d5](https://github.com/mandakan/splitsmith/commit/e4ee8d55e5c7369ee52ef0f61d468c2c3cd96187))
|
|
1162
|
+
* **triage:** match triage aggregation endpoint ([fb1167d](https://github.com/mandakan/splitsmith/commit/fb1167d9f7a8ba477c428f79fd343ca6fed5968d))
|
|
1163
|
+
* **triage:** mirror write gate admits accept and attention posts ([6979afb](https://github.com/mandakan/splitsmith/commit/6979afb50ba13ded965a624d8a0eb5d2973ab480))
|
|
1164
|
+
* **triage:** summary endpoint and resolved threshold in payload ([#823](https://github.com/mandakan/splitsmith/issues/823)) ([42aca8f](https://github.com/mandakan/splitsmith/commit/42aca8f6d11f231295800c60b8cbc9d6740113e7))
|
|
1165
|
+
* **ui:** awaiting-desktop-reprocess chip on stale stages ([a5dac8e](https://github.com/mandakan/splitsmith/commit/a5dac8ebde5628b609c2131d781132b6fb6104f1))
|
|
1166
|
+
* **ui:** coach patch/undo builders + isShareView moved to lib ([ad4bd2c](https://github.com/mandakan/splitsmith/commit/ad4bd2cec7bed3aeae3f3ee0371967954091060b))
|
|
1167
|
+
* **ui:** interval reclassify sheet + undo snackbar on ResultsStage ([9923b5a](https://github.com/mandakan/splitsmith/commit/9923b5a8c7a031d9e6d10eedab1f9333f8121f96))
|
|
1168
|
+
* **ui:** mobile beep review card pager replaces DesktopGate ([ae4cc1e](https://github.com/mandakan/splitsmith/commit/ae4cc1e835296bfb80687065e7d64efd6f28bab3))
|
|
1169
|
+
* **ui:** ReclassifySheet bottom sheet for interval classes ([470eb94](https://github.com/mandakan/splitsmith/commit/470eb944ce3f4b7d2225ad6bd87bf13182413264))
|
|
1170
|
+
* **ui:** responsive stage triage surface at /match/:matchId/triage ([54fbd9c](https://github.com/mandakan/splitsmith/commit/54fbd9c77cd2f696e887a2068d37b45162d13c8c))
|
|
1171
|
+
* **ui:** sheet busy feedback + roving tabindex for class chips ([eafd723](https://github.com/mandakan/splitsmith/commit/eafd723c5c899429ddf10f717cc0dded4c73dcdb))
|
|
1172
|
+
* **ui:** Snackbar component with action button ([7422e01](https://github.com/mandakan/splitsmith/commit/7422e01d26d3b25c915fb2a2d44d2d202f675051))
|
|
1173
|
+
* **ui:** tappable interval chips in SplitsList ([9f65800](https://github.com/mandakan/splitsmith/commit/9f658004bad676c2db5cb5ef154814fb9df98229))
|
|
1174
|
+
* **ui:** triage api client types and mutations ([dc01649](https://github.com/mandakan/splitsmith/commit/dc01649f5d7c4960d9e01514e8004c70a74ea8d7))
|
|
1175
|
+
* **ui:** triage nav item with flagged-for-desktop badge ([df2d895](https://github.com/mandakan/splitsmith/commit/df2d8953c8a3015c340f13df52a0832a6f5bfb18))
|
|
1176
|
+
|
|
1177
|
+
|
|
1178
|
+
### Bug Fixes
|
|
1179
|
+
|
|
1180
|
+
* interval reclassify polish ([#826](https://github.com/mandakan/splitsmith/issues/826)) ([54f4b23](https://github.com/mandakan/splitsmith/commit/54f4b232810f66a8dc5813818f0b5b6d5600ed3f))
|
|
1181
|
+
* **sync:** beep_review media keys pass sync validation; window + ffmpeg-error fixes ([89c6c9a](https://github.com/mandakan/splitsmith/commit/89c6c9a54f27cac3734a496bcb08b45c52c0198e))
|
|
1182
|
+
* **sync:** needs_attention conflicts compare content, not stamps ([23a06d6](https://github.com/mandakan/splitsmith/commit/23a06d6f1d20c5919f92aff8e160bd9b10f70b00))
|
|
1183
|
+
* **sync:** pull materializes metadata-only audit flags, tolerate naive ts ([a1bd5f5](https://github.com/mandakan/splitsmith/commit/a1bd5f59c717d80af47ad8dccae9bd171351dab8))
|
|
1184
|
+
* triage follow-ups - flag on desktop Audit, cheap badge poll, threshold resolution ([#823](https://github.com/mandakan/splitsmith/issues/823)) ([b5df7a0](https://github.com/mandakan/splitsmith/commit/b5df7a0e4b6639b93dd00cb2c032fa093c884f0a))
|
|
1185
|
+
* **triage:** beep-queue threshold resolution, gate pin tests, chip DOM cleanup ([#823](https://github.com/mandakan/splitsmith/issues/823)) ([17872b1](https://github.com/mandakan/splitsmith/commit/17872b110725beb01d719bf67f6c9021bed70ccf))
|
|
1186
|
+
* **triage:** stub the doc-less flag so status doesn't stick in_progress ([d014b56](https://github.com/mandakan/splitsmith/commit/d014b569061d4ebfccda13ad1fd15bd221f5422d))
|
|
1187
|
+
* **ui:** mirror banner constant stays sentence case - CSS uppercases the banner, apiErrorText reuses it inline ([f12c6b1](https://github.com/mandakan/splitsmith/commit/f12c6b13e9d61c40021156ccbf894e00dbcd7692))
|
|
1188
|
+
* **ui:** mirror banner copy reflects phone-writable review actions ([16e4e53](https://github.com/mandakan/splitsmith/commit/16e4e53d949e095064f8a1189401a6bbf55fbdf8))
|
|
1189
|
+
* **ui:** mobile beep review draft reset, timer cleanup, slider a11y ([fc3e5af](https://github.com/mandakan/splitsmith/commit/fc3e5af12890c90a08db522b7a7921b157706164))
|
|
1190
|
+
* **ui:** stable Snackbar auto-dismiss timer + destructive error tone ([3dd41e8](https://github.com/mandakan/splitsmith/commit/3dd41e8c43f224a2df514af7cb5be7f19cf97258))
|
|
1191
|
+
* **ui:** staleness chip ignores ignored videos and missing beeps ([30fc697](https://github.com/mandakan/splitsmith/commit/30fc697c2d7c0c3e5a845bb747815fdd37ed3e09))
|
|
1192
|
+
* **ui:** trim both sides of coach note comparison; exact seek-row test name ([972bc1f](https://github.com/mandakan/splitsmith/commit/972bc1f033bf5f7982532413bdbe788dd6ad7cb7))
|
|
1193
|
+
* **ui:** undo double-tap guard, stale-close guard, friendly patch error ([6cf7503](https://github.com/mandakan/splitsmith/commit/6cf7503a603e820d7ec0e3b94c5623a7c8dff79f))
|
|
1194
|
+
|
|
1195
|
+
|
|
1196
|
+
### Refactors
|
|
1197
|
+
|
|
1198
|
+
* **ui:** BeepQueueResponse.origin is required, matching the backend ([88a32fa](https://github.com/mandakan/splitsmith/commit/88a32fa340474f4e483a88269970b2aaa2ca27fe))
|
|
1199
|
+
* **ui:** extract useBeepQueue hook from BeepReview ([4b9d3b6](https://github.com/mandakan/splitsmith/commit/4b9d3b602c0bf1cbd3645882ae401dad0fc39370))
|
|
1200
|
+
* **ui:** optional AnomalyChips onJump; MobileConfirmSheet ReactNode body ([4ff445e](https://github.com/mandakan/splitsmith/commit/4ff445eeb4ba669db225138671881e59b6be2ddd))
|
|
1201
|
+
* **ui:** triage summary poll and payload-driven confidence threshold ([#823](https://github.com/mandakan/splitsmith/issues/823)) ([5a405fb](https://github.com/mandakan/splitsmith/commit/5a405fbcaae8d806c2469a4121c6f0eb64ed7273))
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
### Documentation
|
|
1205
|
+
|
|
1206
|
+
* mobile audit triage plan (slice 4) ([e722770](https://github.com/mandakan/splitsmith/commit/e722770f3364c0b5e9b1a16280a0b31337290bb1))
|
|
1207
|
+
* mobile interval reclassify (slice 5) implementation plan ([8629024](https://github.com/mandakan/splitsmith/commit/86290242594eae66e250d0029767659642cc8bfb))
|
|
1208
|
+
* reclassify polish ([#826](https://github.com/mandakan/splitsmith/issues/826)) implementation plan ([b5efced](https://github.com/mandakan/splitsmith/commit/b5efced525a62d27997599790c395ed309ce865e))
|
|
1209
|
+
* triage follow-ups plan ([#823](https://github.com/mandakan/splitsmith/issues/823)) ([b45804a](https://github.com/mandakan/splitsmith/commit/b45804a82861d6cd7b628a3835c3335934608886))
|
|
1210
|
+
* **ui:** update stale isShareView comments after lib move ([456739c](https://github.com/mandakan/splitsmith/commit/456739c4edd289ca587492a5622cb29b53f992a8))
|
|
1211
|
+
|
|
1212
|
+
## [0.24.0](https://github.com/mandakan/splitsmith/compare/v0.23.1...v0.24.0) (2026-08-11)
|
|
1213
|
+
|
|
1214
|
+
|
|
1215
|
+
### Features
|
|
1216
|
+
|
|
1217
|
+
* **agent:** GPU agent image (NVENC + CUDA) for NVIDIA self-hosted hosts ([#796](https://github.com/mandakan/splitsmith/issues/796)) ([#809](https://github.com/mandakan/splitsmith/issues/809)) ([6db7092](https://github.com/mandakan/splitsmith/commit/6db70923680612abcc8b4238e37d242af90c1f50))
|
|
1218
|
+
* **agent:** native (no-Docker) GPU agent for WSL2, zero env setup ([#796](https://github.com/mandakan/splitsmith/issues/796)) ([#810](https://github.com/mandakan/splitsmith/issues/810)) ([fa78737](https://github.com/mandakan/splitsmith/commit/fa78737d82364308cbbc97d25da75d7141778cfd))
|
|
1219
|
+
* **agent:** opportunistic NVENC audit encoding + GPU capability advertisement ([#796](https://github.com/mandakan/splitsmith/issues/796)) ([#806](https://github.com/mandakan/splitsmith/issues/806)) ([5c233b2](https://github.com/mandakan/splitsmith/commit/5c233b210a423c1246aab9b4ad26f187d5501f1e))
|
|
1220
|
+
* **db:** add retry for failed jobs in the postgres job backend ([f66017c](https://github.com/mandakan/splitsmith/commit/f66017c9447c4b57b3ba05b71762cb12a199b888))
|
|
1221
|
+
* **db:** persist wire submit args on compute_jobs for retry ([b7c315a](https://github.com/mandakan/splitsmith/commit/b7c315adc9c721445852487bb3525237a93dd6aa))
|
|
1222
|
+
* **ensemble:** CUDA execution provider for ONNX inference, opportunistic ([#796](https://github.com/mandakan/splitsmith/issues/796)) ([#808](https://github.com/mandakan/splitsmith/issues/808)) ([b210a69](https://github.com/mandakan/splitsmith/commit/b210a698c5b149c50a942277e66ed24b31717189))
|
|
1223
|
+
* mobile-first jobs page with retry ([3b63306](https://github.com/mandakan/splitsmith/commit/3b633064ff9fddc642b0506eb741eaa320c701ca))
|
|
1224
|
+
* retry endpoint for failed jobs ([dc9d38f](https://github.com/mandakan/splitsmith/commit/dc9d38ffc2231eee211576f866720f2a230d38a2))
|
|
1225
|
+
* retry for failed jobs in the in-memory job registry ([62f5cda](https://github.com/mandakan/splitsmith/commit/62f5cdafe1cd7555050067d29954166a1408d803))
|
|
1226
|
+
* **sync:** bidirectional pull-merge-push desktop sync ([6ab7180](https://github.com/mandakan/splitsmith/commit/6ab7180eed866d7de1ac79b6c68acfc9b493c048))
|
|
1227
|
+
* **sync:** hosted doc manifest + GET routes, version-guarded PUTs ([60646da](https://github.com/mandakan/splitsmith/commit/60646dacfb4eb64e2577898ba37f83923fe7ae05))
|
|
1228
|
+
* **sync:** pull planning via manifest version diff ([a3d2651](https://github.com/mandakan/splitsmith/commit/a3d265171a12216fff963df374ea2cc25a9151b2))
|
|
1229
|
+
* **sync:** pull-merge-push orchestration with bounded conflict retry ([3714d6e](https://github.com/mandakan/splitsmith/commit/3714d6ecaf3cca13a8413228185aad367234b448))
|
|
1230
|
+
* **sync:** pure three-way merge engine with conflict matrix ([87bcb3f](https://github.com/mandakan/splitsmith/commit/87bcb3f0632acc5890ad4f906fb61efc2b1afc5a))
|
|
1231
|
+
* **sync:** remote-staleness hint on sync status + SyncCard ([18809cc](https://github.com/mandakan/splitsmith/commit/18809cce8753d46a3a403b7f200ad2fea0b22f85))
|
|
1232
|
+
* **sync:** stamp ids on the MCP shot-detect audit_events append too ([263c6ac](https://github.com/mandakan/splitsmith/commit/263c6ac00752ceebbc24bb828ec06d54151f49b7))
|
|
1233
|
+
* **sync:** stamp unique ids on audit_events entries ([cacafac](https://github.com/mandakan/splitsmith/commit/cacafac485bc711e8f5d63ecaf7a76387f3dbb93))
|
|
1234
|
+
* **sync:** state-doc manifest query on ProjectStateStore ([86fdc7d](https://github.com/mandakan/splitsmith/commit/86fdc7d6c8a11e058d443f85f8806c9a02e25de0))
|
|
1235
|
+
* **sync:** sync_state v2 doc_versions + sync_base snapshot store ([7b6c96f](https://github.com/mandakan/splitsmith/commit/7b6c96fd926e6b90af02f47f5d65732afcb7b6f1))
|
|
1236
|
+
* **ui:** job timings type and retry action in the jobs data layer ([bb75166](https://github.com/mandakan/splitsmith/commit/bb75166b811f82255f50d031c60559b4a40b16f9))
|
|
1237
|
+
* **ui:** jobs route, nav item and failed-count badge ([be19e13](https://github.com/mandakan/splitsmith/commit/be19e1326f67da839b6b285b381a4f78efbfcfa7))
|
|
1238
|
+
* **ui:** mobile-first jobs page with retry and phase timings ([1059506](https://github.com/mandakan/splitsmith/commit/10595061ef1c43c733e60102fc907a699b4a13a4))
|
|
1239
|
+
|
|
1240
|
+
|
|
1241
|
+
### Bug Fixes
|
|
1242
|
+
|
|
1243
|
+
* **docker:** GPU image build must not assert runtime CUDA on a GPU-less builder ([#796](https://github.com/mandakan/splitsmith/issues/796)) ([#813](https://github.com/mandakan/splitsmith/issues/813)) ([13a7e8c](https://github.com/mandakan/splitsmith/commit/13a7e8c0bae8e8b44c641e1c7982b16193949de0))
|
|
1244
|
+
* **docker:** pin the onnxruntime-gpu swap to the project venv ([#796](https://github.com/mandakan/splitsmith/issues/796)) ([#815](https://github.com/mandakan/splitsmith/issues/815)) ([513d4d8](https://github.com/mandakan/splitsmith/commit/513d4d8fc5d8561cefc70c108ec1e5757b9a3bd0))
|
|
1245
|
+
* **docker:** verify GPU wheel by provider .so, not dist metadata ([#796](https://github.com/mandakan/splitsmith/issues/796)) ([#814](https://github.com/mandakan/splitsmith/issues/814)) ([daf0b10](https://github.com/mandakan/splitsmith/commit/daf0b104b90b241c88543c6ab5f104c056a911d9))
|
|
1246
|
+
* **jobs:** make retry's acknowledged flip an atomic claim ([8b0921a](https://github.com/mandakan/splitsmith/commit/8b0921ab8ac0b6d446b230f2c536122146934024))
|
|
1247
|
+
* **jobs:** retry rebinds the original job's match context ([7c2ef83](https://github.com/mandakan/splitsmith/commit/7c2ef832e605682d618ad0ccb0f25cdda3f509d6))
|
|
1248
|
+
* **sync:** base snapshot path must append .json, not replace key suffix ([8e28a87](https://github.com/mandakan/splitsmith/commit/8e28a87f812e97485a421a01858c25f4eb5aa02c))
|
|
1249
|
+
* **sync:** malformed manifest degrades status hint to unknown ([ff7963a](https://github.com/mandakan/splitsmith/commit/ff7963a5897164b9afa5d0c71a5627f4a02a9657))
|
|
1250
|
+
* **sync:** skip pulled audit docs with no local counterpart ([972139f](https://github.com/mandakan/splitsmith/commit/972139f98f17fa7de2339f9ab4ae6593acd789dd))
|
|
1251
|
+
* **test:** seed_mirror sends required expected_version on doc PUT ([6e62a1e](https://github.com/mandakan/splitsmith/commit/6e62a1e13efa045d0c652253879607dbad7f219c))
|
|
1252
|
+
* **test:** seed_mirror sends required expected_version on doc PUT ([098c185](https://github.com/mandakan/splitsmith/commit/098c1850065db1315c1eea19aa129dd6787934a5))
|
|
1253
|
+
* **ui:** address Jobs page review findings ([1e9c9af](https://github.com/mandakan/splitsmith/commit/1e9c9af4fbcd44dea187d81d6881fc667a97e772))
|
|
1254
|
+
* **ui:** match breadcrumb labels against the match-relative path, show shooter on job cards ([f49744e](https://github.com/mandakan/splitsmith/commit/f49744e86c775fafe85694b49abf0ef5850e0d0a))
|
|
1255
|
+
|
|
1256
|
+
|
|
1257
|
+
### Documentation
|
|
1258
|
+
|
|
1259
|
+
* bidirectional sync slice design (mobile program slice 2) ([9f4ef9f](https://github.com/mandakan/splitsmith/commit/9f4ef9fb268be5b06e380bd61ff76cff197849ac))
|
|
1260
|
+
* bidirectional sync slice implementation plan ([0ee2ef8](https://github.com/mandakan/splitsmith/commit/0ee2ef8a28b4f6f42691ad1d1b709f73c0d209f4))
|
|
1261
|
+
* mobile operator surfaces spec + jobs page plan ([678aa20](https://github.com/mandakan/splitsmith/commit/678aa20354fd304a5b1c4314a5ec7300f7bb5936))
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
### Build / CI
|
|
1265
|
+
|
|
1266
|
+
* **publish-image:** publish the GPU agent image under -gpu tags ([#796](https://github.com/mandakan/splitsmith/issues/796)) ([#812](https://github.com/mandakan/splitsmith/issues/812)) ([3346588](https://github.com/mandakan/splitsmith/commit/3346588d2a45ab9c90454054da6f9390e4066d33))
|
|
1267
|
+
* **test:** warm librosa/numba JIT cache before the xdist run ([#742](https://github.com/mandakan/splitsmith/issues/742)) ([#816](https://github.com/mandakan/splitsmith/issues/816)) ([164c919](https://github.com/mandakan/splitsmith/commit/164c919a678a1dbe427a967c3518982dc220c000))
|
|
1268
|
+
|
|
1269
|
+
## [0.23.1](https://github.com/mandakan/splitsmith/compare/v0.23.0...v0.23.1) (2026-08-10)
|
|
1270
|
+
|
|
1271
|
+
|
|
1272
|
+
### Bug Fixes
|
|
1273
|
+
|
|
1274
|
+
* **ui:** coach heal persist 500s on slim local installs ([#804](https://github.com/mandakan/splitsmith/issues/804)) ([e3cc8a5](https://github.com/mandakan/splitsmith/commit/e3cc8a5597009f54bb82b9590c588ec8863dc045))
|
|
1275
|
+
|
|
1276
|
+
## [0.23.0](https://github.com/mandakan/splitsmith/compare/v0.22.1...v0.23.0) (2026-08-10)
|
|
1277
|
+
|
|
1278
|
+
|
|
1279
|
+
### Features
|
|
1280
|
+
|
|
1281
|
+
* **ui:** add compare leaderboard rail for cockpit layout ([3429231](https://github.com/mandakan/splitsmith/commit/342923156aff6d935f874b864f99023c65069085))
|
|
1282
|
+
* **ui:** add fused transport + timeline dock for compare cockpit ([e718824](https://github.com/mandakan/splitsmith/commit/e718824ec046caff6476f90e0c32e45c440f0802))
|
|
1283
|
+
* **ui:** viewport-locked cockpit layout for compare view ([1158c2f](https://github.com/mandakan/splitsmith/commit/1158c2f29881816bfb1b71a98d984658b8396528))
|
|
1284
|
+
* **ui:** viewport-locked cockpit layout for compare view ([0e8bab5](https://github.com/mandakan/splitsmith/commit/0e8bab5f52fdc24e44f3a317edaafb5dfe639524))
|
|
1285
|
+
|
|
1286
|
+
|
|
1287
|
+
### Bug Fixes
|
|
1288
|
+
|
|
1289
|
+
* **sync:** skip unchanged docs on push, delta like media ([7c54aca](https://github.com/mandakan/splitsmith/commit/7c54aca988b462ac5e82a145af551ee0bc5cba56))
|
|
1290
|
+
* **sync:** skip unchanged docs on push, delta like media ([1ae0d47](https://github.com/mandakan/splitsmith/commit/1ae0d47f65b38fb0e1c89ae87a32b873e5b5a275)), closes [#797](https://github.com/mandakan/splitsmith/issues/797)
|
|
1291
|
+
* **ui:** bound the ingest workspace height so the clip list scrolls internally ([44da0c8](https://github.com/mandakan/splitsmith/commit/44da0c80ea2fa6b1de0bd1b134c16f384fdcf3f3))
|
|
1292
|
+
* **ui:** bound the ingest workspace height so the clip list scrolls internally ([d6483d5](https://github.com/mandakan/splitsmith/commit/d6483d5be5bdd20fb6291b1142f967b3c954e8a2))
|
|
1293
|
+
* **ui:** compare cockpit layout polish from visual verification ([3bb6a62](https://github.com/mandakan/splitsmith/commit/3bb6a622fe730c68c17e2eab60146a4338a773ba))
|
|
1294
|
+
* **ui:** make secondary camera beeps reviewable and fix secondary focus playback ([49d944c](https://github.com/mandakan/splitsmith/commit/49d944ca25c73691ce470f1e96566a2398eff973))
|
|
1295
|
+
* **ui:** scope share frame viewport lock to md+ viewports ([ee1b675](https://github.com/mandakan/splitsmith/commit/ee1b675ae565d8b7d7ada5cec2e920ba24c28988))
|
|
1296
|
+
* **ui:** secondary camera beep review + trimmed-secondary focus playback ([2515e0d](https://github.com/mandakan/splitsmith/commit/2515e0d302d9e363d97fb3a893fbe918ea246410))
|
|
1297
|
+
* **ui:** thin transport dock ruler ticks on long stages ([ac3aade](https://github.com/mandakan/splitsmith/commit/ac3aade1ab2ffe984bb31bdecd326528dc58dcfb))
|
|
1298
|
+
|
|
1299
|
+
|
|
1300
|
+
### Refactors
|
|
1301
|
+
|
|
1302
|
+
* **ui:** pin share frame to viewport with scrolling middle region ([e111b2e](https://github.com/mandakan/splitsmith/commit/e111b2ec0fa443c889dfaae66c71e53b7d96a74c))
|
|
1303
|
+
|
|
1304
|
+
|
|
1305
|
+
### Documentation
|
|
1306
|
+
|
|
1307
|
+
* implementation plan for compare cockpit layout ([1195ad1](https://github.com/mandakan/splitsmith/commit/1195ad1edf47a00713f3e2956ef613ff69f92bc3))
|
|
1308
|
+
|
|
1309
|
+
## [0.22.1](https://github.com/mandakan/splitsmith/compare/v0.22.0...v0.22.1) (2026-08-10)
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
### Bug Fixes
|
|
1313
|
+
|
|
1314
|
+
* **sync:** register pushed matches in the hosted picker ([4317948](https://github.com/mandakan/splitsmith/commit/4317948728da70e1881e5d53e016db42477fb008))
|
|
1315
|
+
* **sync:** register pushed matches in the hosted picker ([eb6d2f8](https://github.com/mandakan/splitsmith/commit/eb6d2f8a95eca6268921cb7e1a8b47edbd83da50))
|
|
1316
|
+
* **ui:** share pages skip the doomed /api/me fetch ([91558db](https://github.com/mandakan/splitsmith/commit/91558db6257e595c07f473fff3a9605f8278f6fb))
|
|
1317
|
+
* **ui:** share pages skip the doomed /api/me fetch ([04ee5b8](https://github.com/mandakan/splitsmith/commit/04ee5b8985dc8467d8104ef421eea9f6f60e6e04))
|
|
1318
|
+
|
|
1319
|
+
## [0.22.0](https://github.com/mandakan/splitsmith/compare/v0.21.0...v0.22.0) (2026-08-10)
|
|
1320
|
+
|
|
1321
|
+
|
|
1322
|
+
### Features
|
|
1323
|
+
|
|
1324
|
+
* **compare:** log max observed sync drift per playback session ([ff98292](https://github.com/mandakan/splitsmith/commit/ff9829227159ff3a4a6a39f4f9ecdabe554450ec))
|
|
1325
|
+
* **compare:** resolve trims through storage, expose logical video_ref ([e486d72](https://github.com/mandakan/splitsmith/commit/e486d7216e2517c48efbbf2a32cd96c6a7f37089))
|
|
1326
|
+
* **compare:** stream fallback takes logical refs, serves hosted via presign ([baa27d2](https://github.com/mandakan/splitsmith/commit/baa27d24f90937ec00bc74d4a635c1eb266d84bd))
|
|
1327
|
+
* **overlay:** give single-shooter exports the sprite engine and shared clock ([#758](https://github.com/mandakan/splitsmith/issues/758)) ([ea3565e](https://github.com/mandakan/splitsmith/commit/ea3565ed514ace21282e260d950732a8b30284d2))
|
|
1328
|
+
* **share:** allowlist stage compare + ref streaming, strip coach notes for viewers ([1a88efa](https://github.com/mandakan/splitsmith/commit/1a88efaf32875f2d9aae00edf5703794d1a3309f))
|
|
1329
|
+
* **share:** compare view behind share links ([#700](https://github.com/mandakan/splitsmith/issues/700) MVP) ([1cf9bbd](https://github.com/mandakan/splitsmith/commit/1cf9bbd599b838cdb07a2989ca2d26ad7bac2c33))
|
|
1330
|
+
* **share:** Open Graph preview images for share links ([#786](https://github.com/mandakan/splitsmith/issues/786)) ([4f032d9](https://github.com/mandakan/splitsmith/commit/4f032d9bef6f3b0243c6db8519c54c5c33a3bf6e))
|
|
1331
|
+
* **ui:** compare view behind share links - desktop-only, read-only ([43875a9](https://github.com/mandakan/splitsmith/commit/43875a9e5a4d86f89215312deead10663b361c62))
|
|
1332
|
+
|
|
1333
|
+
|
|
1334
|
+
### Bug Fixes
|
|
1335
|
+
|
|
1336
|
+
* align unclassified split-stat fallback with the auto-classifier ([#776](https://github.com/mandakan/splitsmith/issues/776)) ([abdeba2](https://github.com/mandakan/splitsmith/commit/abdeba2e9cb98f08b95ebf67404eca484c1fa137))
|
|
1337
|
+
* audited stages are always fully classified ([#775](https://github.com/mandakan/splitsmith/issues/775)) ([6d963b6](https://github.com/mandakan/splitsmith/commit/6d963b6aa91143c6c93d090532daa24d0fb43733))
|
|
1338
|
+
* classify intervals on audit save so audited stages are fully classified ([#775](https://github.com/mandakan/splitsmith/issues/775)) ([daf0ce6](https://github.com/mandakan/splitsmith/commit/daf0ce697e45bbeb2fe2eb0f15bca6832ee1036f))
|
|
1339
|
+
* coach GET backfills interval classes on legacy docs, in-memory for share reads ([#775](https://github.com/mandakan/splitsmith/issues/775)) ([adbcdce](https://github.com/mandakan/splitsmith/commit/adbcdce855b4750e19373a613fbe091c3ec6bb62))
|
|
1340
|
+
* **compare:** carry interval classes on the stage compare payload ([4d119c5](https://github.com/mandakan/splitsmith/commit/4d119c522a5b63527cf8d792c9595cc82bb2f100))
|
|
1341
|
+
* **compare:** compose summary stills at the grid's composed size ([a1eb917](https://github.com/mandakan/splitsmith/commit/a1eb917ec6c854b9f8f3984153070a492e9c2908))
|
|
1342
|
+
* **compare:** compose summary stills at the grid's composed size ([#691](https://github.com/mandakan/splitsmith/issues/691)) ([45d79a2](https://github.com/mandakan/splitsmith/commit/45d79a28b4bef93988b26ded892bd51a179278c5))
|
|
1343
|
+
* **compare:** RankingTable follows the unified split rule ([e45172b](https://github.com/mandakan/splitsmith/commit/e45172b92f6a682e6d0c45f652f86131b4d61395))
|
|
1344
|
+
* **exports:** one function names a stage's files, so readers stop missing them ([#768](https://github.com/mandakan/splitsmith/issues/768)) ([b2edbc4](https://github.com/mandakan/splitsmith/commit/b2edbc4bc25c7329733dd91344b9f0dc48639029))
|
|
1345
|
+
* heal partial classification in overlay loader and clear_class patch, harden backfill guard ([#775](https://github.com/mandakan/splitsmith/issues/775)) ([6038eaf](https://github.com/mandakan/splitsmith/commit/6038eafd1f61ad98ef0fc5cd39373b422f1a5dac))
|
|
1346
|
+
* **overlay:** resolve the auto codec through the injected probe runner ([#770](https://github.com/mandakan/splitsmith/issues/770)) ([0a3a031](https://github.com/mandakan/splitsmith/commit/0a3a0313a5937cfc3876f154a63550acf970c709))
|
|
1347
|
+
* split statistics count only split-classed intervals, page shows the draw ([#774](https://github.com/mandakan/splitsmith/issues/774)) ([5e53846](https://github.com/mandakan/splitsmith/commit/5e538466415aac466f6ce0649c8af4e771336ac8)), closes [#772](https://github.com/mandakan/splitsmith/issues/772)
|
|
1348
|
+
* **ui:** add splitsFromTimeline pairing gaps with interval classes ([374abb1](https://github.com/mandakan/splitsmith/commit/374abb194c44fd8006a2737cc921e118917d8fff))
|
|
1349
|
+
* **ui:** compose Lab fixture slugs the way the backend reads them ([#771](https://github.com/mandakan/splitsmith/issues/771)) ([f6ea18e](https://github.com/mandakan/splitsmith/commit/f6ea18ebe4f875237c22deb32f6f9d7a476ecd80))
|
|
1350
|
+
* **ui:** global bar and account chips fit a phone ([#733](https://github.com/mandakan/splitsmith/issues/733)) ([#790](https://github.com/mandakan/splitsmith/issues/790)) ([4ddce6f](https://github.com/mandakan/splitsmith/commit/4ddce6f35267ff82a19090c28993e64ecd2eff64))
|
|
1351
|
+
* **ui:** hide operator-only Export FCPXML button and use neutral banner copy on share views ([5c491b7](https://github.com/mandakan/splitsmith/commit/5c491b7d66391ca6e69b59a337ae77791a80a91c))
|
|
1352
|
+
* **ui:** offer the overlay codecs the backend actually accepts ([#765](https://github.com/mandakan/splitsmith/issues/765)) ([0f64819](https://github.com/mandakan/splitsmith/commit/0f6481999e069947197ccf61478761a9026f668a)), closes [#761](https://github.com/mandakan/splitsmith/issues/761)
|
|
1353
|
+
* **ui:** RankingTable follows the unified split rule, adds Draw ([a6bdb44](https://github.com/mandakan/splitsmith/commit/a6bdb44fea58a2960c39170c7ba45a10c929ea9a))
|
|
1354
|
+
|
|
1355
|
+
|
|
1356
|
+
### Performance
|
|
1357
|
+
|
|
1358
|
+
* **overlay:** key the ffmpeg capability probe on the font's bytes ([#764](https://github.com/mandakan/splitsmith/issues/764)) ([ed3a7d5](https://github.com/mandakan/splitsmith/commit/ed3a7d5f191d0ad462e4af80c19597587d3d47c9)), closes [#762](https://github.com/mandakan/splitsmith/issues/762)
|
|
1359
|
+
|
|
1360
|
+
|
|
1361
|
+
### Refactors
|
|
1362
|
+
|
|
1363
|
+
* **coach:** one heal_unclassified guard for all four surfaces ([#789](https://github.com/mandakan/splitsmith/issues/789)) ([5e6884f](https://github.com/mandakan/splitsmith/commit/5e6884fc0df90331920ad4fa07b036572c633bec)), closes [#780](https://github.com/mandakan/splitsmith/issues/780)
|
|
1364
|
+
* **compare:** move audit reading into a core module and cut the cycle ([#767](https://github.com/mandakan/splitsmith/issues/767)) ([60e1cfe](https://github.com/mandakan/splitsmith/commit/60e1cfe79160df28f5ec23caade5fd20cdb4d7c0)), closes [#760](https://github.com/mandakan/splitsmith/issues/760)
|
|
1365
|
+
* **overlay:** remove the PIL text machinery nothing calls any more ([#766](https://github.com/mandakan/splitsmith/issues/766)) ([c0c09b1](https://github.com/mandakan/splitsmith/commit/c0c09b13031ddaaa9acc48e73f0cf981459210f9)), closes [#759](https://github.com/mandakan/splitsmith/issues/759)
|
|
1366
|
+
* **project:** the match-project model is core, not part of the web UI ([#769](https://github.com/mandakan/splitsmith/issues/769)) ([21487e6](https://github.com/mandakan/splitsmith/commit/21487e603fb832472b42961dc96f8cb1b88036af))
|
|
1367
|
+
* **ui:** drop Coach mount-time auto-reclassify, backend guarantees classified stages ([#775](https://github.com/mandakan/splitsmith/issues/775)) ([e4807a3](https://github.com/mandakan/splitsmith/commit/e4807a322ce283001bf56b90347e7b1b124034b9))
|
|
1368
|
+
|
|
1369
|
+
|
|
1370
|
+
### Documentation
|
|
1371
|
+
|
|
1372
|
+
* **compare:** correct still-size wording after the composed-size fix ([#691](https://github.com/mandakan/splitsmith/issues/691)) ([38beea2](https://github.com/mandakan/splitsmith/commit/38beea294ccde47676a9a8582a8fb86bff536ef1))
|
|
1373
|
+
* design for [#781](https://github.com/mandakan/splitsmith/issues/781) (RankingTable unified splits) ([37784dc](https://github.com/mandakan/splitsmith/commit/37784dc4a0e4ec884fc32a86069ce6d6b2be9908))
|
|
1374
|
+
* design for the [#700](https://github.com/mandakan/splitsmith/issues/700) compare share MVP ([76fea29](https://github.com/mandakan/splitsmith/commit/76fea29ea619e473d280a909b803cc7fb660aba7))
|
|
1375
|
+
* design spec for [#775](https://github.com/mandakan/splitsmith/issues/775) classify-on-audit-save ([a3bfb19](https://github.com/mandakan/splitsmith/commit/a3bfb19f102c7284dc66ddfb9f9cdea83c5810dc))
|
|
1376
|
+
* implementation plan for [#775](https://github.com/mandakan/splitsmith/issues/775) classify-on-audit-save ([fe529cd](https://github.com/mandakan/splitsmith/commit/fe529cdbecf584aa886d4304cee1bc39d4c4f2a5))
|
|
1377
|
+
* implementation plan for [#781](https://github.com/mandakan/splitsmith/issues/781); spec aligned with StageStats reality ([590ca22](https://github.com/mandakan/splitsmith/commit/590ca224654e88f53333329a153e61ac5140c2ff))
|
|
1378
|
+
* implementation plan for the [#700](https://github.com/mandakan/splitsmith/issues/700) compare share MVP ([0e352ed](https://github.com/mandakan/splitsmith/commit/0e352edfa7d934eb8f45527acf28eff555154767))
|
|
1379
|
+
* **overlay:** kickoff for the four [#684](https://github.com/mandakan/splitsmith/issues/684) follow-ups ([#763](https://github.com/mandakan/splitsmith/issues/763)) ([4dcf56a](https://github.com/mandakan/splitsmith/commit/4dcf56a9da85afc8ad60620ce1ab21afe2a06c77))
|
|
1380
|
+
* plan for composing summary stills at the composed grid size ([#691](https://github.com/mandakan/splitsmith/issues/691)) ([bf5abaf](https://github.com/mandakan/splitsmith/commit/bf5abaf0e78a6582cdfd9edd7fbd9ff68e2811dc))
|
|
1381
|
+
* state the [#775](https://github.com/mandakan/splitsmith/issues/775) full-classification invariant at both statistic_splits mirrors ([24e05a4](https://github.com/mandakan/splitsmith/commit/24e05a4209daa598a8d7072c230d9b2422b39429))
|
|
1382
|
+
|
|
1383
|
+
## [0.21.0](https://github.com/mandakan/splitsmith/compare/v0.20.1...v0.21.0) (2026-08-08)
|
|
1384
|
+
|
|
1385
|
+
|
|
1386
|
+
### Features
|
|
1387
|
+
|
|
1388
|
+
* browser-assisted desktop auth ([#719](https://github.com/mandakan/splitsmith/issues/719)) ([0facc1a](https://github.com/mandakan/splitsmith/commit/0facc1ae071a91c1a0bfcdcd3745b997927032cb))
|
|
1389
|
+
* **compare:** show each tile's stage summary from its own footage end ([#744](https://github.com/mandakan/splitsmith/issues/744)) ([49321f8](https://github.com/mandakan/splitsmith/commit/49321f8aa74cfafa6c49e5c376980c59f983528d))
|
|
1390
|
+
* **ui:** add depth-counted file-drag tracking util ([ce0daf7](https://github.com/mandakan/splitsmith/commit/ce0daf75443eabe935cdae437d97c1c6307c5c8f))
|
|
1391
|
+
* **ui:** add-videos UX rework - mode-gated drops + single-scroll folder picker ([19b310c](https://github.com/mandakan/splitsmith/commit/19b310ca474ac8573ddfee94789868cfb1eb2c61))
|
|
1392
|
+
* **ui:** expose deployment-mode resolution state from useDeploymentMode ([45f50e2](https://github.com/mandakan/splitsmith/commit/45f50e23942e3cfc9c71f02ae0a0f1fc3453962f))
|
|
1393
|
+
* **ui:** guard the SPA against unhandled file drops ([7b862eb](https://github.com/mandakan/splitsmith/commit/7b862eb460b88d85174f45b30cb72dcd441b7cb9))
|
|
1394
|
+
* **ui:** mode-gate the ingest empty state and add hosted full-page drop ([3bddaec](https://github.com/mandakan/splitsmith/commit/3bddaecb8e465bacc072d5c4063d8d52d3e9c139))
|
|
1395
|
+
* **ui:** rewrite FolderPicker as a single-scroll picker dialog ([4f321e3](https://github.com/mandakan/splitsmith/commit/4f321e37c635e881304bcde326cbb76cfb0c6db7))
|
|
1396
|
+
|
|
1397
|
+
|
|
1398
|
+
### Bug Fixes
|
|
1399
|
+
|
|
1400
|
+
* **ui:** clear hosted drop overlay on modal drops, storage toggle a11y, polish ([bc80ffc](https://github.com/mandakan/splitsmith/commit/bc80ffc8546a184817bc8d499743d8ad88089d9e))
|
|
1401
|
+
* **ui:** decrement drag depth unconditionally on dragleave ([39be313](https://github.com/mandakan/splitsmith/commit/39be31334d55682f252fcc053c296062a485667f))
|
|
1402
|
+
* **ui:** folder picker escape scoping, error gating, busy announcements ([fdeadaf](https://github.com/mandakan/splitsmith/commit/fdeadafa37477df3d25d1be9557aa78828e97f82))
|
|
1403
|
+
* **ui:** migrate HostedAccountChip to resolved deployment-mode state ([aa8bf3b](https://github.com/mandakan/splitsmith/commit/aa8bf3bad958a0a624c1902e903c5beae90a88cf))
|
|
1404
|
+
|
|
1405
|
+
|
|
1406
|
+
### Refactors
|
|
1407
|
+
|
|
1408
|
+
* **ui:** extract HostedUploadModal with depth-counted dropzone ([0757d99](https://github.com/mandakan/splitsmith/commit/0757d993ab4cdf27591cd222d1b7f5e3f4f75466))
|
|
1409
|
+
* **ui:** one-shot local add-footage, drop queue and picker facades ([f848a02](https://github.com/mandakan/splitsmith/commit/f848a025e6471c1cffa6d9a3ee17a147d453c245))
|
|
1410
|
+
* **ui:** single-dash comments in HostedUploadModal ([0147e48](https://github.com/mandakan/splitsmith/commit/0147e481f7c26e1c159a0ccd3d6abb09753873f7))
|
|
1411
|
+
* **ui:** sweep stale add-footage references and comments ([543362d](https://github.com/mandakan/splitsmith/commit/543362df085acc65315af1b40aed6d7d86f381e2))
|
|
1412
|
+
|
|
1413
|
+
|
|
1414
|
+
### Documentation
|
|
1415
|
+
|
|
1416
|
+
* add-videos UX rework design (mode-gated drops, single-scroll picker) ([d746d48](https://github.com/mandakan/splitsmith/commit/d746d48b57589832be3b06bd85a00494fd83b1e3))
|
|
1417
|
+
* add-videos UX rework implementation plan ([57f1caa](https://github.com/mandakan/splitsmith/commit/57f1caafeea2afd0d7adf9e4ab9f516bf4e47115))
|
|
1418
|
+
* keep empty-looking folder picks valid for add-footage (recursive scan) ([eb8aaa0](https://github.com/mandakan/splitsmith/commit/eb8aaa01ed8c530f58d1237763571e26f44f65c2))
|
|
1419
|
+
|
|
1420
|
+
## [0.20.1](https://github.com/mandakan/splitsmith/compare/v0.20.0...v0.20.1) (2026-08-08)
|
|
1421
|
+
|
|
1422
|
+
|
|
1423
|
+
### Build / CI
|
|
1424
|
+
|
|
1425
|
+
* **deps:** batch all outstanding dependabot updates ([2e2d2cd](https://github.com/mandakan/splitsmith/commit/2e2d2cdaa7751899649847b2f170d0877fc029d5))
|
|
1426
|
+
* **deps:** batch all outstanding dependabot updates ([f716ceb](https://github.com/mandakan/splitsmith/commit/f716ceb24c1934286da0e182c72d24bef46f9d4e))
|
|
1427
|
+
|
|
1428
|
+
## [0.20.0](https://github.com/mandakan/splitsmith/compare/v0.19.0...v0.20.0) (2026-08-08)
|
|
1429
|
+
|
|
1430
|
+
|
|
1431
|
+
### Features
|
|
1432
|
+
|
|
1433
|
+
* **ui:** share results full width on mobile, empty-stage collapse + hit counts ([#730](https://github.com/mandakan/splitsmith/issues/730)) ([81b5752](https://github.com/mandakan/splitsmith/commit/81b5752f7cb969db9572371bc9e8379729370f35))
|
|
1434
|
+
|
|
1435
|
+
|
|
1436
|
+
### Documentation
|
|
1437
|
+
|
|
1438
|
+
* kickoff for [#719](https://github.com/mandakan/splitsmith/issues/719), with what moved under the spec since it was written ([#729](https://github.com/mandakan/splitsmith/issues/729)) ([e4c2552](https://github.com/mandakan/splitsmith/commit/e4c2552ce8db9491358c07aab064e0177ad4ce71))
|
|
1439
|
+
* record the RootLayout refactor in the 0.19.0 changelog ([#727](https://github.com/mandakan/splitsmith/issues/727)) ([0d95088](https://github.com/mandakan/splitsmith/commit/0d95088178d2631d6d8a4573a8d767a29010b9a8))
|
|
1440
|
+
|
|
1441
|
+
## [0.19.0](https://github.com/mandakan/splitsmith/compare/v0.18.0...v0.19.0) (2026-08-08)
|
|
1442
|
+
|
|
1443
|
+
|
|
1444
|
+
### Features
|
|
1445
|
+
|
|
1446
|
+
* **ui:** brand the public share surface + document share links ([#722](https://github.com/mandakan/splitsmith/issues/722)) ([ba81b4e](https://github.com/mandakan/splitsmith/commit/ba81b4ed740d746819707c202328896c34d41506))
|
|
1447
|
+
|
|
1448
|
+
|
|
1449
|
+
### Refactors
|
|
1450
|
+
|
|
1451
|
+
* **ui:** a RootLayout that owns global chrome ([#550](https://github.com/mandakan/splitsmith/issues/550)) ([#724](https://github.com/mandakan/splitsmith/issues/724)) ([be602ae](https://github.com/mandakan/splitsmith/commit/be602ae))
|
|
1452
|
+
|
|
1453
|
+
|
|
1454
|
+
### Documentation
|
|
1455
|
+
|
|
1456
|
+
* design for browser-assisted desktop auth ([#719](https://github.com/mandakan/splitsmith/issues/719)) ([#726](https://github.com/mandakan/splitsmith/issues/726)) ([8699f9b](https://github.com/mandakan/splitsmith/commit/8699f9bfd7198349dbe4bfe84a016b5e6bbd6077))
|
|
1457
|
+
|
|
1458
|
+
## [0.18.0](https://github.com/mandakan/splitsmith/compare/v0.17.0...v0.18.0) (2026-08-07)
|
|
1459
|
+
|
|
1460
|
+
|
|
1461
|
+
### Features
|
|
1462
|
+
|
|
1463
|
+
* **ui:** share view polish - row affordance, back link, shooter switcher, timer freeze ([#720](https://github.com/mandakan/splitsmith/issues/720)) ([1464041](https://github.com/mandakan/splitsmith/commit/1464041a51bb61c2a4fe58e87fd5ff0605a4da7d))
|
|
1464
|
+
|
|
1465
|
+
## [0.17.0](https://github.com/mandakan/splitsmith/compare/v0.16.0...v0.17.0) (2026-08-07)
|
|
1466
|
+
|
|
1467
|
+
|
|
1468
|
+
### Features
|
|
1469
|
+
|
|
1470
|
+
* **sync:** concurrent part PUTs in upload_media ([#713](https://github.com/mandakan/splitsmith/issues/713)) ([#715](https://github.com/mandakan/splitsmith/issues/715)) ([34f243e](https://github.com/mandakan/splitsmith/commit/34f243ec8b0d6185c1cb331c2c87e97229cda06d))
|
|
1471
|
+
* **sync:** desktop-to-hosted match push MVP ([#631](https://github.com/mandakan/splitsmith/issues/631)) ([#707](https://github.com/mandakan/splitsmith/issues/707)) ([379c545](https://github.com/mandakan/splitsmith/commit/379c5454a4b3e749e729ee04dfde26af936a3570))
|
|
1472
|
+
* **sync:** phase timings + per-item upload metrics on push ([#631](https://github.com/mandakan/splitsmith/issues/631)) ([#710](https://github.com/mandakan/splitsmith/issues/710)) ([ae7edea](https://github.com/mandakan/splitsmith/commit/ae7edea7f702e0af4d05cc0c3a2f11c4c546c6c3))
|
|
1473
|
+
|
|
1474
|
+
|
|
1475
|
+
### Bug Fixes
|
|
1476
|
+
|
|
1477
|
+
* **hosted:** magic-link log line reaches Railway with an empty message ([#711](https://github.com/mandakan/splitsmith/issues/711)) ([#714](https://github.com/mandakan/splitsmith/issues/714)) ([765bc58](https://github.com/mandakan/splitsmith/commit/765bc589f0850842652957b431d4ade2a82e995c))
|
|
1478
|
+
* **sync:** HostedSyncClient owns the /api/sync prefix; base_url is the bare origin ([#712](https://github.com/mandakan/splitsmith/issues/712)) ([c347053](https://github.com/mandakan/splitsmith/commit/c3470533b43be17bfac43a1d65adbdbe499fb11e))
|
|
1479
|
+
* **ui:** deselect the pre-selection race in the MatchExport stage test ([#718](https://github.com/mandakan/splitsmith/issues/718)) ([de25775](https://github.com/mandakan/splitsmith/commit/de25775d64dd83a41731bd134f936b9b241ac12a))
|
|
1480
|
+
|
|
1481
|
+
|
|
1482
|
+
### Documentation
|
|
1483
|
+
|
|
1484
|
+
* **observability:** correct the [#711](https://github.com/mandakan/splitsmith/issues/711) comments after the live post-deploy check ([#717](https://github.com/mandakan/splitsmith/issues/717)) ([b4b26d6](https://github.com/mandakan/splitsmith/commit/b4b26d66c3a415d5e54280ca14661c5ca43e3785))
|
|
1485
|
+
* **overlay:** kickoff for [#684](https://github.com/mandakan/splitsmith/issues/684), with the issue's stale premises corrected ([#709](https://github.com/mandakan/splitsmith/issues/709)) ([276aad5](https://github.com/mandakan/splitsmith/commit/276aad5ecc92868f97b345ebf30ad3c1343cf573))
|
|
1486
|
+
* **testing:** document -n0 for multi-file pytest -m docker runs ([#716](https://github.com/mandakan/splitsmith/issues/716)) ([d9e054d](https://github.com/mandakan/splitsmith/commit/d9e054dbd6e383424a175996c2763216968e06d7))
|
|
1487
|
+
|
|
1488
|
+
## [0.16.0](https://github.com/mandakan/splitsmith/compare/v0.15.0...v0.16.0) (2026-08-07)
|
|
1489
|
+
|
|
1490
|
+
|
|
1491
|
+
### Features
|
|
1492
|
+
|
|
1493
|
+
* **compare:** burn an opt-in splits overlay into the grid MP4 ([#677](https://github.com/mandakan/splitsmith/issues/677)) ([ef51e06](https://github.com/mandakan/splitsmith/commit/ef51e0635ece6a76f084e4cb3c99fea09ad2e89a))
|
|
1494
|
+
* **compare:** hold a frozen stage summary at the end of each stage ([#687](https://github.com/mandakan/splitsmith/issues/687)) ([3566c54](https://github.com/mandakan/splitsmith/commit/3566c54f5e1233668c3873384eadd09293d1fa5e))
|
|
1495
|
+
* **compare:** render the multi-shooter grid directly to MP4 (phase 0) ([#674](https://github.com/mandakan/splitsmith/issues/674)) ([2e0370e](https://github.com/mandakan/splitsmith/commit/2e0370e11fd2869277aaa57accd87e45a6f51fda))
|
|
1496
|
+
* **compare:** ship a merged audio track as the grid's default ([#675](https://github.com/mandakan/splitsmith/issues/675)) ([b24f71f](https://github.com/mandakan/splitsmith/commit/b24f71f82b309d099fd981f0923de5a0d57fb7ab))
|
|
1497
|
+
* **ensemble:** export voters C and E to ONNX, drop the sklearn pickle coupling ([#649](https://github.com/mandakan/splitsmith/issues/649)) ([#661](https://github.com/mandakan/splitsmith/issues/661)) ([b472172](https://github.com/mandakan/splitsmith/commit/b472172d445115c8231383e3f2130ab6f20bba60))
|
|
1498
|
+
* **ui:** queue-level upload progress with an ETA ([#556](https://github.com/mandakan/splitsmith/issues/556)) ([#657](https://github.com/mandakan/splitsmith/issues/657)) ([84b1d4e](https://github.com/mandakan/splitsmith/commit/84b1d4e2f5c244c9f01697b20505f3b892646c10))
|
|
1499
|
+
|
|
1500
|
+
|
|
1501
|
+
### Bug Fixes
|
|
1502
|
+
|
|
1503
|
+
* **audit:** stop a focused rejected marker from force-showing the whole rejected layer ([#685](https://github.com/mandakan/splitsmith/issues/685)) ([67416dc](https://github.com/mandakan/splitsmith/commit/67416dc73cf988f04361bbc63f74b1bb966c1315)), closes [#666](https://github.com/mandakan/splitsmith/issues/666)
|
|
1504
|
+
* **compare:** pre-flight the overlay's ffmpeg, and remove the live delta strip ([#678](https://github.com/mandakan/splitsmith/issues/678)) ([277acf5](https://github.com/mandakan/splitsmith/commit/277acf505a89e24267d95fb5f234985213680b0a))
|
|
1505
|
+
* **jobs:** jobs carry shooter identity, so one shooter's detection no longer blocks another's ([#688](https://github.com/mandakan/splitsmith/issues/688)) ([bfd804f](https://github.com/mandakan/splitsmith/commit/bfd804f0a10cae72f11270245f6b2ecaf3dff564))
|
|
1506
|
+
* **jobs:** journal the local job queue so a killed app re-enqueues it on restart ([#665](https://github.com/mandakan/splitsmith/issues/665)) ([#694](https://github.com/mandakan/splitsmith/issues/694)) ([cf709bc](https://github.com/mandakan/splitsmith/commit/cf709bce6c4efec52d6105bd968c038111424b6d))
|
|
1507
|
+
* **trim:** rebuild missing trim caches for every angle, not just the primary ([#351](https://github.com/mandakan/splitsmith/issues/351)) ([#655](https://github.com/mandakan/splitsmith/issues/655)) ([f105677](https://github.com/mandakan/splitsmith/commit/f105677da36f7a0d9a8847b6a31f1effe4040514))
|
|
1508
|
+
* **ui:** dedup failed-shooter errors and stop rendering raw API bodies ([#660](https://github.com/mandakan/splitsmith/issues/660)) ([5c947ef](https://github.com/mandakan/splitsmith/commit/5c947ef653410ca6c3eb60389fe06113de7d1b4b)), closes [#651](https://github.com/mandakan/splitsmith/issues/651)
|
|
1509
|
+
* **ui:** refresh sidebar stage status when a background job finishes ([#663](https://github.com/mandakan/splitsmith/issues/663)) ([#697](https://github.com/mandakan/splitsmith/issues/697)) ([710a674](https://github.com/mandakan/splitsmith/commit/710a674c7e69feadd10ad16f919b8bcb525f07e6))
|
|
1510
|
+
|
|
1511
|
+
|
|
1512
|
+
### Performance
|
|
1513
|
+
|
|
1514
|
+
* **ui:** read the calibration directly for /api/calibrated-camera-models ([#667](https://github.com/mandakan/splitsmith/issues/667)) ([#669](https://github.com/mandakan/splitsmith/issues/669)) ([9aed108](https://github.com/mandakan/splitsmith/commit/9aed108bbf8b1e1b45fc5a9b1e3e8e75109f3867))
|
|
1515
|
+
|
|
1516
|
+
|
|
1517
|
+
### Refactors
|
|
1518
|
+
|
|
1519
|
+
* **hosted:** derive raw-video ownership in one place ([#562](https://github.com/mandakan/splitsmith/issues/562)) ([#659](https://github.com/mandakan/splitsmith/issues/659)) ([ecd01ac](https://github.com/mandakan/splitsmith/commit/ecd01ac966f9c24b450d1cc71d50aca7b4dac40c))
|
|
1520
|
+
* **overlay:** a composition seam, a box engine, and a summary built around splits ([#683](https://github.com/mandakan/splitsmith/issues/683)) ([#703](https://github.com/mandakan/splitsmith/issues/703)) ([70a118d](https://github.com/mandakan/splitsmith/commit/70a118d1eb03b22049f9ee69b1105c706c1aa27a))
|
|
1521
|
+
* **overlay:** the live sprites go through the box engine too ([#693](https://github.com/mandakan/splitsmith/issues/693)) ([#706](https://github.com/mandakan/splitsmith/issues/706)) ([46b568a](https://github.com/mandakan/splitsmith/commit/46b568a0daceb40d5d8af5bce31e399104c9796e))
|
|
1522
|
+
|
|
1523
|
+
|
|
1524
|
+
### Documentation
|
|
1525
|
+
|
|
1526
|
+
* amend milestone B for the summary ranking and the clock bleed ([b6732de](https://github.com/mandakan/splitsmith/commit/b6732ded018cf27f36689b4ce4dc5a382c87805d))
|
|
1527
|
+
* kickoff for the compare-grid stage summary hold (milestone B) ([ec32be2](https://github.com/mandakan/splitsmith/commit/ec32be28758624e1d4602c4349524c34b8fc46ca))
|
|
1528
|
+
* kickoff for the honest fixture and render-frames tool ([#682](https://github.com/mandakan/splitsmith/issues/682)) ([ea8dcf3](https://github.com/mandakan/splitsmith/commit/ea8dcf3e8e46f9f47f7c602daa3ea599a2948bb6))
|
|
1529
|
+
* kickoff for the overlay composition seam ([#683](https://github.com/mandakan/splitsmith/issues/683)) ([1856704](https://github.com/mandakan/splitsmith/commit/1856704d859b39455ae6e3cfbdf4a401a20bd312))
|
|
1530
|
+
* **overlay:** the design docstrings now cite a file that exists ([#704](https://github.com/mandakan/splitsmith/issues/704)) ([7fb4089](https://github.com/mandakan/splitsmith/commit/7fb40896b5a3cc5abd82b47f97b815ec2ca18c98))
|
|
1531
|
+
* phase 1 kickoff for the compare-grid splits overlay ([d5ad724](https://github.com/mandakan/splitsmith/commit/d5ad72492e9b6b4810317e5f4c05bdaa784cb20f))
|
|
1532
|
+
* spec how the live overlay and the stage summary share the frame ([0604426](https://github.com/mandakan/splitsmith/commit/0604426cc04167083920c0e0e119fab93b60367f))
|
|
1533
|
+
|
|
1534
|
+
|
|
1535
|
+
### Build / CI
|
|
1536
|
+
|
|
1537
|
+
* install ffmpeg and fail the build when integration tests skip ([#670](https://github.com/mandakan/splitsmith/issues/670)) ([#671](https://github.com/mandakan/splitsmith/issues/671)) ([81d6862](https://github.com/mandakan/splitsmith/commit/81d68627014b6c3479349b7b48df9055f8319e21))
|
|
1538
|
+
* validate the SPA and the wheel on every PR ([#647](https://github.com/mandakan/splitsmith/issues/647)) ([#658](https://github.com/mandakan/splitsmith/issues/658)) ([e3b0230](https://github.com/mandakan/splitsmith/commit/e3b0230e9eb00552a07c341440e7c69dbcaf4df8))
|
|
1539
|
+
|
|
1540
|
+
## [0.15.0](https://github.com/mandakan/splitsmith/compare/v0.14.1...v0.15.0) (2026-08-03)
|
|
1541
|
+
|
|
1542
|
+
|
|
1543
|
+
### Features
|
|
1544
|
+
|
|
1545
|
+
* **ui:** stage-list editor in the SPA ([#652](https://github.com/mandakan/splitsmith/issues/652)) ([47896cd](https://github.com/mandakan/splitsmith/commit/47896cd0acfee777ab35a9fa2404b0a1ba455dfa))
|
|
1546
|
+
|
|
1547
|
+
## [0.14.1](https://github.com/mandakan/splitsmith/compare/v0.14.0...v0.14.1) (2026-08-03)
|
|
1548
|
+
|
|
1549
|
+
|
|
1550
|
+
### Bug Fixes
|
|
1551
|
+
|
|
1552
|
+
* **deps:** pin scikit-learn <1.9 so the ensemble artifacts load ([#648](https://github.com/mandakan/splitsmith/issues/648)) ([d9fa707](https://github.com/mandakan/splitsmith/commit/d9fa707e97cf803aae0d41e133622c46e7e6a2dd))
|
|
1553
|
+
|
|
1554
|
+
## [0.14.0](https://github.com/mandakan/splitsmith/compare/v0.13.1...v0.14.0) (2026-08-03)
|
|
1555
|
+
|
|
1556
|
+
|
|
1557
|
+
### Bug Fixes
|
|
1558
|
+
|
|
1559
|
+
* **packaging:** ship the built SPA in the wheel ([#643](https://github.com/mandakan/splitsmith/issues/643)) ([393942a](https://github.com/mandakan/splitsmith/commit/393942af97248476d55d1d7e880a958467a2b437)), closes [#642](https://github.com/mandakan/splitsmith/issues/642)
|
|
1560
|
+
|
|
1561
|
+
## [0.13.1](https://github.com/mandakan/splitsmith/compare/v0.13.0...v0.13.1) (2026-08-03)
|
|
1562
|
+
|
|
1563
|
+
|
|
1564
|
+
### Bug Fixes
|
|
1565
|
+
|
|
1566
|
+
* **deploy:** retry the startup migration's DB connect ([#559](https://github.com/mandakan/splitsmith/issues/559)) ([#635](https://github.com/mandakan/splitsmith/issues/635)) ([58b20fa](https://github.com/mandakan/splitsmith/commit/58b20faa82a98bc1b32de7daf4ae9224551dcf69))
|
|
1567
|
+
* **hosted:** five more preflights downloaded raw sources to check existence ([#638](https://github.com/mandakan/splitsmith/issues/638)) ([#640](https://github.com/mandakan/splitsmith/issues/640)) ([c5d2dbd](https://github.com/mandakan/splitsmith/commit/c5d2dbd45a9e12c5720693214d589bed09a489a6))
|
|
1568
|
+
* **hosted:** three preflights downloaded raw sources to check existence ([#637](https://github.com/mandakan/splitsmith/issues/637)) ([#639](https://github.com/mandakan/splitsmith/issues/639)) ([8b35747](https://github.com/mandakan/splitsmith/commit/8b357475885ba2a9b05fd860ec6ddbb19abcfdb5))
|
|
1569
|
+
|
|
1570
|
+
|
|
1571
|
+
### Documentation
|
|
1572
|
+
|
|
1573
|
+
* **ui:** correct stale HostedUploadSurface docstring ([#523](https://github.com/mandakan/splitsmith/issues/523)) ([#633](https://github.com/mandakan/splitsmith/issues/633)) ([c1279f1](https://github.com/mandakan/splitsmith/commit/c1279f16d61adc97fe04bdd0a1f9112f5ab6bbf8))
|
|
1574
|
+
|
|
1575
|
+
## [0.13.0](https://github.com/mandakan/splitsmith/compare/v0.12.0...v0.13.0) (2026-08-03)
|
|
1576
|
+
|
|
1577
|
+
|
|
1578
|
+
### Features
|
|
1579
|
+
|
|
1580
|
+
* audit-free trim export with per-shooter camera selection ([#612](https://github.com/mandakan/splitsmith/issues/612)) ([4933580](https://github.com/mandakan/splitsmith/commit/49335807911d4f25bf59b5c9645335030e70b6fa))
|
|
1581
|
+
* **scripts:** staging magic-link minting script + /staging-login skill ([#606](https://github.com/mandakan/splitsmith/issues/606)) ([35c7c69](https://github.com/mandakan/splitsmith/commit/35c7c695749bce3e21c98e38637b80f4edf5db2b))
|
|
1582
|
+
* **ui:** self-relative split tier labels (quick/typical/long) ([#604](https://github.com/mandakan/splitsmith/issues/604)) ([c9d58d9](https://github.com/mandakan/splitsmith/commit/c9d58d9362a968244552b8d948d7dd7e754682ef))
|
|
1583
|
+
|
|
1584
|
+
|
|
1585
|
+
### Bug Fixes
|
|
1586
|
+
|
|
1587
|
+
* one audit precondition across every export surface ([#619](https://github.com/mandakan/splitsmith/issues/619)) ([#627](https://github.com/mandakan/splitsmith/issues/627)) ([7eb5626](https://github.com/mandakan/splitsmith/commit/7eb56264a111a53033d8b495f38e5a1c12415a42))
|
|
1588
|
+
* one trim-eligibility rule across CLI, server and SPA ([#613](https://github.com/mandakan/splitsmith/issues/613), [#614](https://github.com/mandakan/splitsmith/issues/614)) ([#625](https://github.com/mandakan/splitsmith/issues/625)) ([1a8df09](https://github.com/mandakan/splitsmith/commit/1a8df09ca2dbb658a2340d265f35f4321b1e6363))
|
|
1589
|
+
* surface trim-run divergence, guard camera ambiguity ([#617](https://github.com/mandakan/splitsmith/issues/617), [#618](https://github.com/mandakan/splitsmith/issues/618)) ([#626](https://github.com/mandakan/splitsmith/issues/626)) ([7b01927](https://github.com/mandakan/splitsmith/commit/7b019276f76cc1196dad4061f9c914f54a0e54f1))
|
|
1590
|
+
* trim filename authority ([#615](https://github.com/mandakan/splitsmith/issues/615)) + honest trims-only export reporting ([#616](https://github.com/mandakan/splitsmith/issues/616)) ([#624](https://github.com/mandakan/splitsmith/issues/624)) ([6ea9dd7](https://github.com/mandakan/splitsmith/commit/6ea9dd76a005f74794da6f2b40e18f1ea45dfb74))
|
|
1591
|
+
* **ui:** anomaly pins track waveform zoom + scroll ([#607](https://github.com/mandakan/splitsmith/issues/607)) ([c085c73](https://github.com/mandakan/splitsmith/commit/c085c73f3c40ca887ea50e6cd4f5ed79f2d53b44))
|
|
1592
|
+
* **ui:** multi-cam per-stage export job crashed building its result ([#622](https://github.com/mandakan/splitsmith/issues/622)) ([05f5e2d](https://github.com/mandakan/splitsmith/commit/05f5e2d48b08b2618fc024c4b19c8595ed70dfe7))
|
|
1593
|
+
|
|
1594
|
+
## [0.12.0](https://github.com/mandakan/splitsmith/compare/v0.11.0...v0.12.0) (2026-07-08)
|
|
1595
|
+
|
|
1596
|
+
|
|
1597
|
+
### Features
|
|
1598
|
+
|
|
1599
|
+
* **ui:** mobile results viewer -- shot ticker, fullscreen, sticky player ([#603](https://github.com/mandakan/splitsmith/issues/603)) ([041dbbf](https://github.com/mandakan/splitsmith/commit/041dbbfa26ba29338e3d095819f7d8523f47d9d9))
|
|
1600
|
+
|
|
1601
|
+
|
|
1602
|
+
### Bug Fixes
|
|
1603
|
+
|
|
1604
|
+
* **ui:** label derived match HF + announce error banners to AT ([#601](https://github.com/mandakan/splitsmith/issues/601)) ([5710ed7](https://github.com/mandakan/splitsmith/commit/5710ed7514f545d8a7084a346c913638d7656182))
|
|
1605
|
+
|
|
1606
|
+
## [0.11.0](https://github.com/mandakan/splitsmith/compare/v0.10.6...v0.11.0) (2026-07-08)
|
|
1607
|
+
|
|
1608
|
+
|
|
1609
|
+
### Features
|
|
1610
|
+
|
|
1611
|
+
* post-creation scoreboard linking + scorecard persistence (PR A) ([#599](https://github.com/mandakan/splitsmith/issues/599)) ([8311df3](https://github.com/mandakan/splitsmith/commit/8311df36223c1901d1302fc3f7e6ce22cc14cd87))
|
|
1612
|
+
* **ui:** hide rejected shots by default with hold-to-peek ([#597](https://github.com/mandakan/splitsmith/issues/597)) ([c7bee6e](https://github.com/mandakan/splitsmith/commit/c7bee6ea59d79292d62bbb5f24068ba11c5a1369))
|
|
1613
|
+
* **ui:** scored results view -- scorecard + splits + match totals (PR B) ([#600](https://github.com/mandakan/splitsmith/issues/600)) ([1422172](https://github.com/mandakan/splitsmith/commit/142217215cbf8c71004c747efbed60fc1dd09cc7))
|
|
1614
|
+
|
|
1615
|
+
|
|
1616
|
+
### Bug Fixes
|
|
1617
|
+
|
|
1618
|
+
* derive stage status from state_docs in hosted mode ([#595](https://github.com/mandakan/splitsmith/issues/595)) ([6d609da](https://github.com/mandakan/splitsmith/commit/6d609da8710d489c5b402026504676448d0c0206))
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
### Documentation
|
|
1622
|
+
|
|
1623
|
+
* scoreboard linking + scored results (spec + PR A/B plans) ([#598](https://github.com/mandakan/splitsmith/issues/598)) ([b468bae](https://github.com/mandakan/splitsmith/commit/b468bae90d55e568d6f9cc0b0967856ebaf31249))
|
|
1624
|
+
|
|
1625
|
+
## [0.10.6](https://github.com/mandakan/splitsmith/compare/v0.10.5...v0.10.6) (2026-07-07)
|
|
1626
|
+
|
|
1627
|
+
|
|
1628
|
+
### Bug Fixes
|
|
1629
|
+
|
|
1630
|
+
* serve audit /peaks + /audio without mirroring the full source ([#592](https://github.com/mandakan/splitsmith/issues/592)) ([#593](https://github.com/mandakan/splitsmith/issues/593)) ([8a17876](https://github.com/mandakan/splitsmith/commit/8a17876617fff458577a76e0a8ddaedcc442ec5d))
|
|
1631
|
+
|
|
1632
|
+
## [0.10.5](https://github.com/mandakan/splitsmith/compare/v0.10.4...v0.10.5) (2026-07-07)
|
|
1633
|
+
|
|
1634
|
+
|
|
1635
|
+
### Bug Fixes
|
|
1636
|
+
|
|
1637
|
+
* serve preview media directly from R2 to fix slow hosted playback ([#589](https://github.com/mandakan/splitsmith/issues/589)) ([fa070cc](https://github.com/mandakan/splitsmith/commit/fa070cc91df537c13363c496de25e3fefe045df0))
|
|
1638
|
+
|
|
1639
|
+
## [0.10.4](https://github.com/mandakan/splitsmith/compare/v0.10.3...v0.10.4) (2026-07-07)
|
|
1640
|
+
|
|
1641
|
+
|
|
1642
|
+
### Bug Fixes
|
|
1643
|
+
|
|
1644
|
+
* **ui:** make Space own play/pause over native video controls ([#587](https://github.com/mandakan/splitsmith/issues/587)) ([968e875](https://github.com/mandakan/splitsmith/commit/968e875c7a548d98dbddb75433f3b7bed5c63440))
|
|
1645
|
+
|
|
1646
|
+
## [0.10.3](https://github.com/mandakan/splitsmith/compare/v0.10.2...v0.10.3) (2026-07-07)
|
|
1647
|
+
|
|
1648
|
+
|
|
1649
|
+
### Bug Fixes
|
|
1650
|
+
|
|
1651
|
+
* **ui:** show match name in Ingest breadcrumb instead of "..." ([#585](https://github.com/mandakan/splitsmith/issues/585)) ([fa0e80e](https://github.com/mandakan/splitsmith/commit/fa0e80e620d81dae25fe0cdb0e3d8e638e132651))
|
|
1652
|
+
* **ui:** stop Space double-toggling a focused video player ([#586](https://github.com/mandakan/splitsmith/issues/586)) ([06dbd6e](https://github.com/mandakan/splitsmith/commit/06dbd6e215401a3f2036c788d0a8267066641701))
|
|
1653
|
+
|
|
1654
|
+
|
|
1655
|
+
### Build / CI
|
|
1656
|
+
|
|
1657
|
+
* decouple prod deploy from the image publish ([#584](https://github.com/mandakan/splitsmith/issues/584)) ([e490fc5](https://github.com/mandakan/splitsmith/commit/e490fc5d52eb5095be76875a87a0aaf5c4a6df69))
|
|
1658
|
+
* skip redundant :edge image build on release commits ([#582](https://github.com/mandakan/splitsmith/issues/582)) ([823dd7b](https://github.com/mandakan/splitsmith/commit/823dd7b4dbf35686cf2a1b7b6400eb00928a9c9d))
|
|
1659
|
+
|
|
1660
|
+
## [0.10.2](https://github.com/mandakan/splitsmith/compare/v0.10.1...v0.10.2) (2026-07-07)
|
|
1661
|
+
|
|
1662
|
+
|
|
1663
|
+
### Bug Fixes
|
|
1664
|
+
|
|
1665
|
+
* stop blocking the event loop on stage assignment (async DB path) ([#578](https://github.com/mandakan/splitsmith/issues/578)) ([f123b33](https://github.com/mandakan/splitsmith/commit/f123b33ad9f48cd26d1a556d8afeb4fb66fd54a4))
|
|
1666
|
+
* **ui:** drop redundant post-mutation refetches across the SPA ([#579](https://github.com/mandakan/splitsmith/issues/579)) ([571ea8c](https://github.com/mandakan/splitsmith/commit/571ea8cf06d5f5182035f9e11c0a29388ff2eab4))
|
|
1667
|
+
* **ui:** optimistic stage assignment to kill click-to-update lag ([#576](https://github.com/mandakan/splitsmith/issues/576)) ([58640a8](https://github.com/mandakan/splitsmith/commit/58640a893836f0414bb8e2bc96660231150e59a4))
|
|
1668
|
+
|
|
1669
|
+
## [0.10.1](https://github.com/mandakan/splitsmith/compare/v0.10.0...v0.10.1) (2026-07-06)
|
|
1670
|
+
|
|
1671
|
+
|
|
1672
|
+
### Bug Fixes
|
|
1673
|
+
|
|
1674
|
+
* worker priority direction so higher = preferred (matches UI copy) ([#574](https://github.com/mandakan/splitsmith/issues/574)) ([ebf28e8](https://github.com/mandakan/splitsmith/commit/ebf28e8cc09ba1df1bee04336f5e215b8c80fd7b))
|
|
1675
|
+
|
|
1676
|
+
## [0.10.0](https://github.com/mandakan/splitsmith/compare/v0.9.0...v0.10.0) (2026-07-06)
|
|
1677
|
+
|
|
1678
|
+
|
|
1679
|
+
### Features
|
|
1680
|
+
|
|
1681
|
+
* log and display worker version in admin view ([#569](https://github.com/mandakan/splitsmith/issues/569)) ([d4644cc](https://github.com/mandakan/splitsmith/commit/d4644cc567aa744d1db9be5163dabe8a7fd1849e))
|
|
1682
|
+
* **ui:** within-session background uploads ([#573](https://github.com/mandakan/splitsmith/issues/573)) ([6d53f35](https://github.com/mandakan/splitsmith/commit/6d53f35b27a683265214f9f939436c6b8ca05ad1))
|
|
1683
|
+
|
|
1684
|
+
|
|
1685
|
+
### Bug Fixes
|
|
1686
|
+
|
|
1687
|
+
* auto-attach uploads, recover lost worker wakes ([#570](https://github.com/mandakan/splitsmith/issues/570)) ([#572](https://github.com/mandakan/splitsmith/issues/572)) ([b2abc35](https://github.com/mandakan/splitsmith/commit/b2abc35aec2a9ae7b54ce8b44d7b4699cc977ae8))
|
|
1688
|
+
|
|
1689
|
+
## [0.9.0](https://github.com/mandakan/splitsmith/compare/v0.8.4...v0.9.0) (2026-07-06)
|
|
1690
|
+
|
|
1691
|
+
|
|
1692
|
+
### Features
|
|
1693
|
+
|
|
1694
|
+
* persistent LRU source cache for self-hosted worker agent ([#565](https://github.com/mandakan/splitsmith/issues/565)) ([#568](https://github.com/mandakan/splitsmith/issues/568)) ([7fe79dc](https://github.com/mandakan/splitsmith/commit/7fe79dce062849b96c7a17049c9d280a14334294))
|
|
1695
|
+
* preview/proxy videos for uploads (fast stage-assignment streaming) ([#566](https://github.com/mandakan/splitsmith/issues/566)) ([b979d48](https://github.com/mandakan/splitsmith/commit/b979d48cdc9f50ac8ae976232d2d149bf47b2c9c))
|
|
1696
|
+
|
|
1697
|
+
## [0.8.4](https://github.com/mandakan/splitsmith/compare/v0.8.3...v0.8.4) (2026-07-05)
|
|
1698
|
+
|
|
1699
|
+
|
|
1700
|
+
### Bug Fixes
|
|
1701
|
+
|
|
1702
|
+
* hosted ingest shooter scoping and video counts ([#563](https://github.com/mandakan/splitsmith/issues/563)) ([53cf27c](https://github.com/mandakan/splitsmith/commit/53cf27c5f3f087e24d148ea61e512d7d28bfd73d))
|
|
1703
|
+
|
|
1704
|
+
## [0.8.3](https://github.com/mandakan/splitsmith/compare/v0.8.2...v0.8.3) (2026-07-05)
|
|
1705
|
+
|
|
1706
|
+
|
|
1707
|
+
### Bug Fixes
|
|
1708
|
+
|
|
1709
|
+
* **ui:** unfreeze hosted upload queue stuck at 0% ([#555](https://github.com/mandakan/splitsmith/issues/555)) ([2f2279c](https://github.com/mandakan/splitsmith/commit/2f2279c4baffa2d9d9aa1f9fc6dc743f29d8566f))
|
|
1710
|
+
|
|
1711
|
+
## [0.8.2](https://github.com/mandakan/splitsmith/compare/v0.8.1...v0.8.2) (2026-07-05)
|
|
1712
|
+
|
|
1713
|
+
|
|
1714
|
+
### Bug Fixes
|
|
1715
|
+
|
|
1716
|
+
* **ui:** exempt /admin surfaces from the project-bind redirect ([#553](https://github.com/mandakan/splitsmith/issues/553)) ([574d334](https://github.com/mandakan/splitsmith/commit/574d334514c4751a10be1979cbbeda64c130ed74))
|
|
1717
|
+
|
|
1718
|
+
## [0.8.1](https://github.com/mandakan/splitsmith/compare/v0.8.0...v0.8.1) (2026-07-05)
|
|
1719
|
+
|
|
1720
|
+
|
|
1721
|
+
### Bug Fixes
|
|
1722
|
+
|
|
1723
|
+
* **ui:** surface admin Workers link in AccountChip, not AppShell ([#551](https://github.com/mandakan/splitsmith/issues/551)) ([75837a0](https://github.com/mandakan/splitsmith/commit/75837a0939b0b6b5cb40d9280ed876c37877321e))
|
|
1724
|
+
|
|
1725
|
+
|
|
1726
|
+
### Refactors
|
|
1727
|
+
|
|
1728
|
+
* **ui:** migrate legacy shadcn token aliases to Shot Timer tokens ([#552](https://github.com/mandakan/splitsmith/issues/552)) ([2eb4a66](https://github.com/mandakan/splitsmith/commit/2eb4a66a43094732aa5379adea71cad794df60e9))
|
|
1729
|
+
|
|
1730
|
+
|
|
1731
|
+
### Build / CI
|
|
1732
|
+
|
|
1733
|
+
* run image publish and prod deploy automatically on release ([#548](https://github.com/mandakan/splitsmith/issues/548)) ([7044af6](https://github.com/mandakan/splitsmith/commit/7044af6703bce709c4a22e36c6931693e7f7e847))
|
|
1734
|
+
|
|
1735
|
+
## [0.8.0](https://github.com/mandakan/splitsmith/compare/v0.7.0...v0.8.0) (2026-07-05)
|
|
1736
|
+
|
|
1737
|
+
|
|
1738
|
+
### Features
|
|
1739
|
+
|
|
1740
|
+
* public share links for match results (MVP) ([#541](https://github.com/mandakan/splitsmith/issues/541)) ([17ad330](https://github.com/mandakan/splitsmith/commit/17ad3301784884dbaa2419d1f867a1c082b8b1bf))
|
|
1741
|
+
* self-hosted workers - registration, wake channel, priority dispatch ([#542](https://github.com/mandakan/splitsmith/issues/542)) ([d3fa93b](https://github.com/mandakan/splitsmith/commit/d3fa93b141d31439051cf016e7ed4ff25873da61))
|
|
1742
|
+
* **ui:** copy-paste build/run/logs commands in worker register dialog ([#544](https://github.com/mandakan/splitsmith/issues/544)) ([31c4c5a](https://github.com/mandakan/splitsmith/commit/31c4c5ad72a15b69ef080a2c95d5d64733e4c648))
|
|
1743
|
+
|
|
1744
|
+
|
|
1745
|
+
### Bug Fixes
|
|
1746
|
+
|
|
1747
|
+
* agent state dir /data writable by non-root container user ([#543](https://github.com/mandakan/splitsmith/issues/543)) ([8f80e2a](https://github.com/mandakan/splitsmith/commit/8f80e2af490020acdd1650f15b62af04a53188b4))
|
|
1748
|
+
* **ui:** surface app version; drop inert help/settings buttons ([#538](https://github.com/mandakan/splitsmith/issues/538)) ([f14ecd2](https://github.com/mandakan/splitsmith/commit/f14ecd238290ddb97300d20355ca74ef4cbbaa40))
|
|
1749
|
+
|
|
1750
|
+
|
|
1751
|
+
### Build / CI
|
|
1752
|
+
|
|
1753
|
+
* publish container image to GHCR (edge on main, semver on release) ([#545](https://github.com/mandakan/splitsmith/issues/545)) ([7b08069](https://github.com/mandakan/splitsmith/commit/7b0806973f85966d692a0f8768c5a37be07e7d9a))
|
|
1754
|
+
|
|
1755
|
+
## [0.7.0](https://github.com/mandakan/splitsmith/compare/v0.6.0...v0.7.0) (2026-07-04)
|
|
1756
|
+
|
|
1757
|
+
|
|
1758
|
+
### Features
|
|
1759
|
+
|
|
1760
|
+
* **ui:** mobile results viewer - read-only match/stage playback + mobile shell ([#535](https://github.com/mandakan/splitsmith/issues/535)) ([164fd0c](https://github.com/mandakan/splitsmith/commit/164fd0cab79a6dbb51321027b7a8182f7ff00a4d))
|
|
1761
|
+
|
|
1762
|
+
|
|
1763
|
+
### Bug Fixes
|
|
1764
|
+
|
|
1765
|
+
* **worker:** final-review hardening - awake-path net, worker gate, never-raise schedule ([#534](https://github.com/mandakan/splitsmith/issues/534)) ([1c4d861](https://github.com/mandakan/splitsmith/commit/1c4d8618206656b5a0468d3cceae4ccd020d1549))
|
|
1766
|
+
|
|
1767
|
+
|
|
1768
|
+
### Build / CI
|
|
1769
|
+
|
|
1770
|
+
* 6-hourly wake-based worker safety net; document Railway cron incompatibility ([#533](https://github.com/mandakan/splitsmith/issues/533)) ([67979fa](https://github.com/mandakan/splitsmith/commit/67979fa9ec23b2c573506ea6e67cf7c080da9697))
|
|
1771
|
+
* re-enable Railway auto-deploy (push -> staging, release -> production) ([#530](https://github.com/mandakan/splitsmith/issues/530)) ([ac99bb9](https://github.com/mandakan/splitsmith/commit/ac99bb9837f9ff4bcc2437231e0e9f6ae51e60e1))
|
|
1772
|
+
|
|
1773
|
+
## [0.6.0](https://github.com/mandakan/splitsmith/compare/v0.5.3...v0.6.0) (2026-07-03)
|
|
1774
|
+
|
|
1775
|
+
|
|
1776
|
+
### Features
|
|
1777
|
+
|
|
1778
|
+
* **ingest:** two-pane master-detail redesign of Add Footage ([#513](https://github.com/mandakan/splitsmith/issues/513)) ([56e09ad](https://github.com/mandakan/splitsmith/commit/56e09ad90e8fa8838282a379be75445d1769cc13))
|
|
1779
|
+
* **take:** multi-stage single-take videos - windowed beep detection + take overview ([#527](https://github.com/mandakan/splitsmith/issues/527)) ([bfa3be8](https://github.com/mandakan/splitsmith/commit/bfa3be80619897e4ed121477413a9995f81cb96f))
|
|
1780
|
+
* **ui:** edit + verify camera mount/model on the ingest CameraCard ([#511](https://github.com/mandakan/splitsmith/issues/511)) ([4af81d5](https://github.com/mandakan/splitsmith/commit/4af81d51c165a7089a1a841c2f6327f5a2c7992c))
|
|
1781
|
+
* **ui:** in-app stage reference on the ingest page ([#508](https://github.com/mandakan/splitsmith/issues/508)) ([f1a0437](https://github.com/mandakan/splitsmith/commit/f1a0437e730a781243a929f1c9b64ab643637002))
|
|
1782
|
+
* **ui:** surface target shooter on ingest + move footage between shooters ([#510](https://github.com/mandakan/splitsmith/issues/510)) ([1ee0fb5](https://github.com/mandakan/splitsmith/commit/1ee0fb5ac369b9c4c30fba5cd784e5adb46a7ddb))
|
|
1783
|
+
|
|
1784
|
+
|
|
1785
|
+
### Bug Fixes
|
|
1786
|
+
|
|
1787
|
+
* **audit:** waveform interaction batch - hit zones, peak-snap, region loop ([#526](https://github.com/mandakan/splitsmith/issues/526)) ([e9ccca4](https://github.com/mandakan/splitsmith/commit/e9ccca447b9a341edfc57f3be10e722cae9d9226))
|
|
1788
|
+
* **beep:** make beep_reviewed the single source of truth + reopen confirmed beeps ([#518](https://github.com/mandakan/splitsmith/issues/518)) ([a0ac8b4](https://github.com/mandakan/splitsmith/commit/a0ac8b41969641bf9d1d72fbade672f07b9b32ff))
|
|
1789
|
+
* **ingest:** address redesign review follow-ups ([#515](https://github.com/mandakan/splitsmith/issues/515)) ([a2de17b](https://github.com/mandakan/splitsmith/commit/a2de17b2e07a8b19bb90bc677dbc37144af223ab))
|
|
1790
|
+
* **overview:** aggregate match dashboard instead of wrong-shooter scoping ([#517](https://github.com/mandakan/splitsmith/issues/517)) ([369a040](https://github.com/mandakan/splitsmith/commit/369a0405f721a5a45a73ac2c8e7d3a7f2994bf72))
|
|
1791
|
+
* **ui:** clear all eslint errors, incl. pre-existing react-hooks violations ([#516](https://github.com/mandakan/splitsmith/issues/516)) ([0107a00](https://github.com/mandakan/splitsmith/commit/0107a00b1dc1d4400249a6a6ecf24b26aeebf489))
|
|
1792
|
+
* **ui:** overlay layering architecture -- z tokens, body portals, dialog focus contract ([#519](https://github.com/mandakan/splitsmith/issues/519)) ([10d651e](https://github.com/mandakan/splitsmith/commit/10d651e0ded48eb8d36f27fa94343478c875706b))
|
|
1793
|
+
* **ui:** remove dead first-run buttons, add phase-boundary CTAs, surface stage-time stall ([#520](https://github.com/mandakan/splitsmith/issues/520)) ([83a4de2](https://github.com/mandakan/splitsmith/commit/83a4de2728170ad31990a80dbdaf13c0f82d4188))
|
|
1794
|
+
|
|
1795
|
+
|
|
1796
|
+
### Build / CI
|
|
1797
|
+
|
|
1798
|
+
* **deps:** re-lock with uv 0.11.25 ([#512](https://github.com/mandakan/splitsmith/issues/512)) ([3f2a726](https://github.com/mandakan/splitsmith/commit/3f2a7261d823fb332f96a257c7b8454b41c507d1))
|
|
1799
|
+
|
|
1800
|
+
## [0.5.3](https://github.com/mandakan/splitsmith/compare/v0.5.2...v0.5.3) (2026-06-24)
|
|
1801
|
+
|
|
1802
|
+
|
|
1803
|
+
### Build / CI
|
|
1804
|
+
|
|
1805
|
+
* **deps:** Bump idna from 3.13 to 3.15 ([#504](https://github.com/mandakan/splitsmith/issues/504)) ([767dbe3](https://github.com/mandakan/splitsmith/commit/767dbe3928a0b4fbe3a8a603cff574c45cd7a430))
|
|
1806
|
+
* **deps:** Bump react-router and react-router-dom ([#495](https://github.com/mandakan/splitsmith/issues/495)) ([2ffe9b5](https://github.com/mandakan/splitsmith/commit/2ffe9b563ecef887759517331d39f5615446a76a))
|
|
1807
|
+
* **deps:** Bump urllib3 from 2.6.3 to 2.7.0 ([#505](https://github.com/mandakan/splitsmith/issues/505)) ([e8bd1ed](https://github.com/mandakan/splitsmith/commit/e8bd1edc8662fda21ab75de5bead6465005672c6))
|
|
1808
|
+
* **deps:** clear Dependabot security alerts (Python + npm) ([#502](https://github.com/mandakan/splitsmith/issues/502)) ([8811417](https://github.com/mandakan/splitsmith/commit/881141741ad2f55a2d009c7c52cdba35b5220bb7))
|
|
1809
|
+
* disable Railway auto-deploy on push/release ([#507](https://github.com/mandakan/splitsmith/issues/507)) ([a488383](https://github.com/mandakan/splitsmith/commit/a48838376711a0ab37407f1d19112ae259a782fa))
|
|
1810
|
+
|
|
1811
|
+
## [0.5.2](https://github.com/mandakan/splitsmith/compare/v0.5.1...v0.5.2) (2026-06-10)
|
|
1812
|
+
|
|
1813
|
+
|
|
1814
|
+
### Bug Fixes
|
|
1815
|
+
|
|
1816
|
+
* **worker:** retry DB connect so a transient Neon PoolTimeout doesn't crash the drain ([#491](https://github.com/mandakan/splitsmith/issues/491)) ([22c1727](https://github.com/mandakan/splitsmith/commit/22c1727b28a704be22a6c977a615b66be0113d96))
|
|
1817
|
+
|
|
1818
|
+
## [0.5.1](https://github.com/mandakan/splitsmith/compare/v0.5.0...v0.5.1) (2026-06-08)
|
|
1819
|
+
|
|
1820
|
+
|
|
1821
|
+
### Bug Fixes
|
|
1822
|
+
|
|
1823
|
+
* **worker:** size Procrastinate pool min_size=1 so cron drain survives Neon cold start ([#489](https://github.com/mandakan/splitsmith/issues/489)) ([4e8736b](https://github.com/mandakan/splitsmith/commit/4e8736b84f63ff7f498273ee277c81f55c047b31))
|
|
1824
|
+
|
|
1825
|
+
## [0.5.0](https://github.com/mandakan/splitsmith/compare/v0.4.0...v0.5.0) (2026-06-07)
|
|
1826
|
+
|
|
1827
|
+
|
|
1828
|
+
### Features
|
|
1829
|
+
|
|
1830
|
+
* **saas:** hard-delete projects with full resource cleanup + confirm dialogs ([#486](https://github.com/mandakan/splitsmith/issues/486)) ([171f50f](https://github.com/mandakan/splitsmith/commit/171f50f356060fcea7d8835809eaa8e34edc6aea))
|
|
1831
|
+
* **saas:** Tier-1 job observability -- per-phase timings, JSON logs, Sentry ([#485](https://github.com/mandakan/splitsmith/issues/485)) ([c1d19e2](https://github.com/mandakan/splitsmith/commit/c1d19e2b219bb5d6fdb6bfd964f7255bb20cbba1))
|
|
1832
|
+
* **ui:** Ingest scan rows -- inline preview, assign feedback, role signposting ([#482](https://github.com/mandakan/splitsmith/issues/482)) ([760b574](https://github.com/mandakan/splitsmith/commit/760b5748751fdcdc2dbf2375324f40db6918c7bf))
|
|
1833
|
+
* **ui:** resolve slug-less per-shooter URLs to the default shooter ([#479](https://github.com/mandakan/splitsmith/issues/479)) ([ff711f4](https://github.com/mandakan/splitsmith/commit/ff711f4a11c5f534c0955d3d56c45173b8b80d82))
|
|
1834
|
+
* **worker:** add --one-shot drain mode so the DB compute can scale to zero ([#488](https://github.com/mandakan/splitsmith/issues/488)) ([1f59003](https://github.com/mandakan/splitsmith/commit/1f59003d0da63e82d798383e85297a702e19fca6))
|
|
1835
|
+
|
|
1836
|
+
|
|
1837
|
+
### Bug Fixes
|
|
1838
|
+
|
|
1839
|
+
* **saas:** clean up shooter state_docs on removal ([#487](https://github.com/mandakan/splitsmith/issues/487)) ([fb5d80b](https://github.com/mandakan/splitsmith/commit/fb5d80bf236814c16c672689cde1f1dbbf7346c4))
|
|
1840
|
+
* **saas:** populate match.stages on scoreboard-created matches ([#484](https://github.com/mandakan/splitsmith/issues/484)) ([fe5eb59](https://github.com/mandakan/splitsmith/commit/fe5eb59cc71f8fe3880e0ed3468c7c45ca845bbb))
|
|
1841
|
+
* **ui:** keep the match prefix when Audit redirects to a stage ([#481](https://github.com/mandakan/splitsmith/issues/481)) ([7cf39e5](https://github.com/mandakan/splitsmith/commit/7cf39e5c53840e013a3bf42e9f9b8ca0b3e047ef))
|
|
1842
|
+
* **ui:** make stage counts consistent across the overview ([#483](https://github.com/mandakan/splitsmith/issues/483)) ([c426909](https://github.com/mandakan/splitsmith/commit/c426909e7d00f3ad335b8d43ecb97fda8cb55938))
|
|
1843
|
+
|
|
1844
|
+
## [0.4.0](https://github.com/mandakan/splitsmith/compare/v0.3.0...v0.4.0) (2026-06-01)
|
|
1845
|
+
|
|
1846
|
+
|
|
1847
|
+
### Features
|
|
1848
|
+
|
|
1849
|
+
* **auth:** introduce Auth abstraction with LoopbackAuth + GET /api/me ([#405](https://github.com/mandakan/splitsmith/issues/405)) ([a39b6ab](https://github.com/mandakan/splitsmith/commit/a39b6abf7dc27f1caa08769276a93dba414c1f1f))
|
|
1850
|
+
* **compute:** introduce ComputeBackend abstraction with LocalComputeBackend ([#406](https://github.com/mandakan/splitsmith/issues/406)) ([17686a6](https://github.com/mandakan/splitsmith/commit/17686a653152d9070401f20b2c518439245fccb6))
|
|
1851
|
+
* **db:** PostgresJobBackend (persistence-only) (doc 04) ([#420](https://github.com/mandakan/splitsmith/issues/420)) ([bf9b269](https://github.com/mandakan/splitsmith/commit/bf9b2695ad6001e0046cc64115c81da8e2dbef54))
|
|
1852
|
+
* **db:** PostgresRecentProjectsStore + multi-tenant table pattern (doc 10) ([#417](https://github.com/mandakan/splitsmith/issues/417)) ([437aa3b](https://github.com/mandakan/splitsmith/commit/437aa3ba2948d7ca0c294731e02dc62d9d847114))
|
|
1853
|
+
* **db:** PostgresScoreboardIdentityStore (doc 10) ([#419](https://github.com/mandakan/splitsmith/issues/419)) ([eb53691](https://github.com/mandakan/splitsmith/commit/eb53691903435eef0096e3c9a53f378366ac3503))
|
|
1854
|
+
* **db:** SQLAlchemy 2.x + Alembic foundation with users table (doc 02) ([#416](https://github.com/mandakan/splitsmith/issues/416)) ([dc7f0b6](https://github.com/mandakan/splitsmith/commit/dc7f0b66d0cc9936aab263172c470e2861b1527b))
|
|
1855
|
+
* **docker:** bake slim ONNX models into the hosted image ([#439](https://github.com/mandakan/splitsmith/issues/439)) ([dc42b78](https://github.com/mandakan/splitsmith/commit/dc42b785bb3ed14687406c9ee16a06e975d06787))
|
|
1856
|
+
* **docker:** multi-stage slim image + hosted smoke script ([#441](https://github.com/mandakan/splitsmith/issues/441)) ([a84811f](https://github.com/mandakan/splitsmith/commit/a84811f27f489fa57622150578d725578471f8f4))
|
|
1857
|
+
* **jobs:** introduce JobBackend Protocol (Tier 2 step 1) ([#413](https://github.com/mandakan/splitsmith/issues/413)) ([57711ac](https://github.com/mandakan/splitsmith/commit/57711ac41da4a7ee69104cfad18edb3597a93f60))
|
|
1858
|
+
* **jobs:** kind+args dispatch + out-of-process worker (PR-gamma) ([#445](https://github.com/mandakan/splitsmith/issues/445)) ([2ea1a76](https://github.com/mandakan/splitsmith/commit/2ea1a76f0881685a9119c90e8ee7a2dfbd808168))
|
|
1859
|
+
* **jobs:** worker runs detect_beep + shot_detect end-to-end (cross-process match resolution) ([#446](https://github.com/mandakan/splitsmith/issues/446)) ([1ac4d18](https://github.com/mandakan/splitsmith/commit/1ac4d1887691b3951dcbb55c7f88e81836633c88))
|
|
1860
|
+
* presigned multipart upload for large raw videos ([#467](https://github.com/mandakan/splitsmith/issues/467)) ([#469](https://github.com/mandakan/splitsmith/issues/469)) ([64aa115](https://github.com/mandakan/splitsmith/commit/64aa115f8fef3faf4348296831b94753661bc17f))
|
|
1861
|
+
* **saas:** audit-trim MP4 storage write-back (PR-epsilon part 1) ([#447](https://github.com/mandakan/splitsmith/issues/447)) ([f4be8ed](https://github.com/mandakan/splitsmith/commit/f4be8ede17a6a523bb21bbe32a3cf30f422cf489))
|
|
1862
|
+
* **saas:** browser raw-video upload UX (hosted mode) ([#427](https://github.com/mandakan/splitsmith/issues/427)) ([a9e2056](https://github.com/mandakan/splitsmith/commit/a9e205632b00b03f63f2a8885e4a23cc9520bf6e))
|
|
1863
|
+
* **saas:** database-enforced tenant isolation via Postgres RLS ([#450](https://github.com/mandakan/splitsmith/issues/450)) ([62833f7](https://github.com/mandakan/splitsmith/commit/62833f7fb5f33834dc2f6ee1439f574cf9cf4243))
|
|
1864
|
+
* **saas:** docker-compose hosted-mode stack + splitsmith serve CLI ([#421](https://github.com/mandakan/splitsmith/issues/421)) ([a4d71b0](https://github.com/mandakan/splitsmith/commit/a4d71b067a8e9fa7ffd3bd5bdf5d80a2af33167e))
|
|
1865
|
+
* **saas:** export media storage write-back (PR-epsilon part 2) ([#448](https://github.com/mandakan/splitsmith/issues/448)) ([47f3a95](https://github.com/mandakan/splitsmith/commit/47f3a95d62261183a74f3aa4b0d8fa2cf72e8ac9))
|
|
1866
|
+
* **saas:** gate signups behind an allowlist toggle (anti-spam) ([#460](https://github.com/mandakan/splitsmith/issues/460)) ([3891aef](https://github.com/mandakan/splitsmith/commit/3891aefd9469ceca77931ca932f14d2deb9d50a4))
|
|
1867
|
+
* **saas:** hosted-mode SPA cleanup ([#425](https://github.com/mandakan/splitsmith/issues/425)) ([#426](https://github.com/mandakan/splitsmith/issues/426)) ([33762a1](https://github.com/mandakan/splitsmith/commit/33762a16734c126ab04d6650bd583191b5dbbf2c))
|
|
1868
|
+
* **saas:** in-house magic-link auth domain (auth-swap PR2a) ([#455](https://github.com/mandakan/splitsmith/issues/455)) ([005512a](https://github.com/mandakan/splitsmith/commit/005512a7ea66c3cb577092afc2d639c1c2310feb))
|
|
1869
|
+
* **saas:** per-request/per-job tenant seam (auth-swap PR1) ([#451](https://github.com/mandakan/splitsmith/issues/451)) ([b1c425a](https://github.com/mandakan/splitsmith/commit/b1c425a5bf1831ceb4700aa089e135f208ca6a1d))
|
|
1870
|
+
* **saas:** POST /api/shooters/{slug}/raw-videos/attach endpoint ([#433](https://github.com/mandakan/splitsmith/issues/433)) ([49514f1](https://github.com/mandakan/splitsmith/commit/49514f12c5c1810d2a64d2df33a40ac813f58b8f))
|
|
1871
|
+
* **saas:** Procrastinate queue foundation (PR-alpha) ([#437](https://github.com/mandakan/splitsmith/issues/437)) ([ffda233](https://github.com/mandakan/splitsmith/commit/ffda233ed09b460b4ee5353d7d09c50d542fffdc))
|
|
1872
|
+
* **saas:** raw_videos[] on MatchProject + v2->v3 migration (doc 05) ([#428](https://github.com/mandakan/splitsmith/issues/428)) ([9db77bc](https://github.com/mandakan/splitsmith/commit/9db77bcf21abfbe62c055a58067df48ba41ff08d))
|
|
1873
|
+
* **saas:** Resend email sender for production magic-link delivery ([#456](https://github.com/mandakan/splitsmith/issues/456)) ([f3ea7b9](https://github.com/mandakan/splitsmith/commit/f3ea7b9e11818a897a8371ee0f7e82d63aff74fc))
|
|
1874
|
+
* **saas:** SPA "attach to project" action in HostedUploadSurface ([#435](https://github.com/mandakan/splitsmith/issues/435)) ([150d5f7](https://github.com/mandakan/splitsmith/commit/150d5f78ddf2ed6e8b5df0b89888b1794d89756c))
|
|
1875
|
+
* **saas:** SPA magic-link login surface (auth-swap PR2c) ([#454](https://github.com/mandakan/splitsmith/issues/454)) ([e2dfd02](https://github.com/mandakan/splitsmith/commit/e2dfd020d5c9eef7840cce2e468494d58e9168a8))
|
|
1876
|
+
* **saas:** splitsmith worker CLI + compose worker service (PR-beta) ([#443](https://github.com/mandakan/splitsmith/issues/443)) ([ba67060](https://github.com/mandakan/splitsmith/commit/ba67060820be7c38797d410c0504e46985137436))
|
|
1877
|
+
* **saas:** storage-aware resolve_video_path + worker download cache ([#434](https://github.com/mandakan/splitsmith/issues/434)) ([178a998](https://github.com/mandakan/splitsmith/commit/178a998aab9dcd27274373e6d5c045623ae95dd7))
|
|
1878
|
+
* **saas:** swap magic-link email transport Resend -> Lettermint ([#458](https://github.com/mandakan/splitsmith/issues/458)) ([64a9fc9](https://github.com/mandakan/splitsmith/commit/64a9fc9cbaaa17f206d68af715e7f1f6057595a5))
|
|
1879
|
+
* **saas:** wire MagicLinkAuth + login routes; retire HostedLoopbackAuth (auth-swap PR2b) ([#453](https://github.com/mandakan/splitsmith/issues/453)) ([5c478e1](https://github.com/mandakan/splitsmith/commit/5c478e1be16e4476affef2e089e847551b6fd12c))
|
|
1880
|
+
* **saas:** wire S3Storage in hosted mode + raw upload endpoint ([#424](https://github.com/mandakan/splitsmith/issues/424)) ([a68e00c](https://github.com/mandakan/splitsmith/commit/a68e00c6ef97664cd3f02ed614246226d55365e6))
|
|
1881
|
+
* **saas:** worker pushes extracted audio to S3 (Phase 1) ([#436](https://github.com/mandakan/splitsmith/issues/436)) ([4dab5aa](https://github.com/mandakan/splitsmith/commit/4dab5aaf1b4a561f10efd8a3e331db72e7a3ee09))
|
|
1882
|
+
* **storage:** introduce Storage abstraction with FilesystemStorage ([#407](https://github.com/mandakan/splitsmith/issues/407)) ([f16d672](https://github.com/mandakan/splitsmith/commit/f16d67272cb4bc386abf3a67e66846c7901f30b7))
|
|
1883
|
+
* **storage:** open_stream for chunked reads on both backends ([#429](https://github.com/mandakan/splitsmith/issues/429)) ([e0d32bb](https://github.com/mandakan/splitsmith/commit/e0d32bb7919c9a79e5d4b8d9f236f06509a0c99e))
|
|
1884
|
+
* **storage:** S3Storage backend wrapping boto3 (R2 / S3 / minio) ([#415](https://github.com/mandakan/splitsmith/issues/415)) ([f5931af](https://github.com/mandakan/splitsmith/commit/f5931af210e226c05731402d0f98d09e90d6f1fb))
|
|
1885
|
+
* Tier 3 (user preferences) + Tier 4 (CLI URL emission) - singleton elimination complete ([#414](https://github.com/mandakan/splitsmith/issues/414)) ([4685a96](https://github.com/mandakan/splitsmith/commit/4685a96f91a92fdd05cbb6c96638a02abbfa07f2))
|
|
1886
|
+
* **ui:** auto-prefetch slim models on UI launch ([#404](https://github.com/mandakan/splitsmith/issues/404)) ([8a27696](https://github.com/mandakan/splitsmith/commit/8a27696bed8a9ad0c79dd27fbbbafc213c99b42c))
|
|
1887
|
+
|
|
1888
|
+
|
|
1889
|
+
### Bug Fixes
|
|
1890
|
+
|
|
1891
|
+
* **db:** apply procrastinate schema statement-by-statement (asyncpg) ([#440](https://github.com/mandakan/splitsmith/issues/440)) ([d153bd9](https://github.com/mandakan/splitsmith/commit/d153bd9798f5f83ea6c3ea25527ec22b6256ae17))
|
|
1892
|
+
* **hosted:** NullPool for asyncpg loop-binding + HOSTED-LOCAL docs ([#423](https://github.com/mandakan/splitsmith/issues/423)) ([eaebdc9](https://github.com/mandakan/splitsmith/commit/eaebdc924b24154bdbc4d6700ea9d754222a4996))
|
|
1893
|
+
* **hosted:** picker detail from store + default-select a shooter for per-shooter tabs ([#477](https://github.com/mandakan/splitsmith/issues/477)) ([f91c498](https://github.com/mandakan/splitsmith/commit/f91c498fb070911b8bcc7cd150f6afd1749f3f48))
|
|
1894
|
+
* **hosted:** playback media-URL scoping + export overview/result write-back ([#472](https://github.com/mandakan/splitsmith/issues/472), [#8](https://github.com/mandakan/splitsmith/issues/8)) ([#473](https://github.com/mandakan/splitsmith/issues/473)) ([d75110e](https://github.com/mandakan/splitsmith/commit/d75110e4844fa3312694f1509544c66bc6e194ab))
|
|
1895
|
+
* **queue:** pass conninfo directly to PsycopgConnector + worker round-trip smoke ([#444](https://github.com/mandakan/splitsmith/issues/444)) ([2a284cd](https://github.com/mandakan/splitsmith/commit/2a284cde6853cbb24bc7b16938b4d0a26f4fbc10))
|
|
1896
|
+
* **saas:** hosted picker/bind resolves a match by match_id, not ephemeral path ([#475](https://github.com/mandakan/splitsmith/issues/475)) ([2ea9e9b](https://github.com/mandakan/splitsmith/commit/2ea9e9bc4631b06dea97ebdaa2e114d94b01f3ea))
|
|
1897
|
+
* **serve:** feed engine StageData a sentinel scorecard time on export ([#471](https://github.com/mandakan/splitsmith/issues/471)) ([4a69614](https://github.com/mandakan/splitsmith/commit/4a6961401f9573862e9dcc6824046c47277bc249))
|
|
1898
|
+
* **serve:** honor a "Mark reviewed" that lands mid-trim so shot-detect chains ([#478](https://github.com/mandakan/splitsmith/issues/478)) ([f713d82](https://github.com/mandakan/splitsmith/commit/f713d822571bd6229f792ae672bfa2bfda91d7d1))
|
|
1899
|
+
* **serve:** hosted match state in Postgres (state refactor phases 1-2) ([#465](https://github.com/mandakan/splitsmith/issues/465)) ([a78ccbd](https://github.com/mandakan/splitsmith/commit/a78ccbdff217c98b2913d9b4ee3a66b72717155d))
|
|
1900
|
+
* **serve:** let manually-timed stages export (manual matches were blocked) ([#470](https://github.com/mandakan/splitsmith/issues/470)) ([c0de9c4](https://github.com/mandakan/splitsmith/commit/c0de9c4b2769f1cffc41c3cf473394e420950d73))
|
|
1901
|
+
* **serve:** surface splitsmith.* INFO logs (incl. console magic link) on stdout ([#466](https://github.com/mandakan/splitsmith/issues/466)) ([03fc6d6](https://github.com/mandakan/splitsmith/commit/03fc6d604971fa067335946b81f008c3209ebf01))
|
|
1902
|
+
* **ui:** beep review plays the source video, not the cached trim ([#474](https://github.com/mandakan/splitsmith/issues/474)) ([df1c48e](https://github.com/mandakan/splitsmith/commit/df1c48e1d7012c8c6b6caac2068f77529689773b))
|
|
1903
|
+
* **ui:** don't block graceful shutdown on the model prefetch ([#438](https://github.com/mandakan/splitsmith/issues/438)) ([be53a35](https://github.com/mandakan/splitsmith/commit/be53a35e76b1ab3cbfb65e7430e16a7aeedb2e37))
|
|
1904
|
+
* **ui:** explain why per-shooter sections route to the shooter list ([#476](https://github.com/mandakan/splitsmith/issues/476)) ([a4cd589](https://github.com/mandakan/splitsmith/commit/a4cd5890b991500b06f557a6de57c94b0f084541))
|
|
1905
|
+
* **upload:** drop blocking client-side hash; stream straight to upload ([#464](https://github.com/mandakan/splitsmith/issues/464)) ([317e469](https://github.com/mandakan/splitsmith/commit/317e46906afeec60bb2c855ad080ff39b621164e))
|
|
1906
|
+
|
|
1907
|
+
|
|
1908
|
+
### Refactors
|
|
1909
|
+
|
|
1910
|
+
* **serve:** finish state refactor -- drop dead JSON-mirror code + worker re-merge retry (phases 3+4) ([#468](https://github.com/mandakan/splitsmith/issues/468)) ([1ea3342](https://github.com/mandakan/splitsmith/commit/1ea3342c014fad1d42b668497c8fbb1fedb50e40))
|
|
1911
|
+
* **state:** match_root reads only the per-request ContextVar (Tier 1 step) ([#409](https://github.com/mandakan/splitsmith/issues/409)) ([cc135af](https://github.com/mandakan/splitsmith/commit/cc135af33e98d88e652dcadb52eccce7be58359f))
|
|
1912
|
+
* **state:** retire legacy single-shooter projects (Tier 1 step 3) ([#411](https://github.com/mandakan/splitsmith/issues/411)) ([148e150](https://github.com/mandakan/splitsmith/commit/148e15083232a59d8d77cfea6b934edc82594d03))
|
|
1913
|
+
* **state:** retire the bound singleton entirely (Tier 1 step 4) ([#412](https://github.com/mandakan/splitsmith/issues/412)) ([c0a07a4](https://github.com/mandakan/splitsmith/commit/c0a07a44f67001655228989e91674ece80f52bf8))
|
|
1914
|
+
* **state:** shooter_root drops the Match-folder singleton fallback (Tier 1 step 2) ([#410](https://github.com/mandakan/splitsmith/issues/410)) ([090ffd3](https://github.com/mandakan/splitsmith/commit/090ffd30644219655588474bff34dd951b49f73f))
|
|
1915
|
+
|
|
1916
|
+
|
|
1917
|
+
### Documentation
|
|
1918
|
+
|
|
1919
|
+
* **saas:** add singleton elimination map (doc 10) ([#408](https://github.com/mandakan/splitsmith/issues/408)) ([e2450ff](https://github.com/mandakan/splitsmith/commit/e2450ff080f77ee7dc3e15902a6d24a5ca1be490))
|
|
1920
|
+
* **saas:** environment strategy (staging + prod) across providers ([#459](https://github.com/mandakan/splitsmith/issues/459)) ([e008722](https://github.com/mandakan/splitsmith/commit/e00872222513ade0780c765027f010b54665ff55))
|
|
1921
|
+
* **site:** lead Quickstart with `splitsmith ui` from PyPI ([#402](https://github.com/mandakan/splitsmith/issues/402)) ([d5d48f9](https://github.com/mandakan/splitsmith/commit/d5d48f9519ce8d4205068415489c54780159741c))
|
|
1922
|
+
|
|
1923
|
+
|
|
1924
|
+
### Build / CI
|
|
1925
|
+
|
|
1926
|
+
* bump actions/checkout v4 -> v5 across workflows ([#463](https://github.com/mandakan/splitsmith/issues/463)) ([7603d2e](https://github.com/mandakan/splitsmith/commit/7603d2ef98dfd4ab54af914506f10d3324f8d8f8))
|
|
1927
|
+
* **deploy:** Railway deploy workflow, .railwayignore, and Procrastinate DSN fix ([#461](https://github.com/mandakan/splitsmith/issues/461)) ([271d2ee](https://github.com/mandakan/splitsmith/commit/271d2ee70b7c0ff1a40ce5e66f92f4e3f77193e3))
|
|
1928
|
+
* **docker:** build the SPA inside the image (Node stage) ([#457](https://github.com/mandakan/splitsmith/issues/457)) ([68dc46a](https://github.com/mandakan/splitsmith/commit/68dc46accc74ddda8acd8fbefed6609170a199ce))
|
|
1929
|
+
|
|
1930
|
+
## [0.3.0](https://github.com/mandakan/splitsmith/compare/v0.2.1...v0.3.0) (2026-05-25)
|
|
1931
|
+
|
|
1932
|
+
|
|
1933
|
+
### Features
|
|
1934
|
+
|
|
1935
|
+
* **beep-review:** single home for beep work; trim audit page ([#399](https://github.com/mandakan/splitsmith/issues/399)) ([9ecf999](https://github.com/mandakan/splitsmith/commit/9ecf9998f94edeb5420e3a982f97ae4edb2114f0))
|
|
1936
|
+
* **brand:** hero + og:image, new tagline, audit shortcut hints ([#401](https://github.com/mandakan/splitsmith/issues/401)) ([40aa55a](https://github.com/mandakan/splitsmith/commit/40aa55ac56da0e9c81ae373554b9dc8816f4b2e0))
|
|
1937
|
+
|
|
1938
|
+
## [0.2.1](https://github.com/mandakan/splitsmith/compare/v0.2.0...v0.2.1) (2026-05-24)
|
|
1939
|
+
|
|
1940
|
+
|
|
1941
|
+
### Bug Fixes
|
|
1942
|
+
|
|
1943
|
+
* **docs:** use absolute GitHub URLs for README images on PyPI ([#398](https://github.com/mandakan/splitsmith/issues/398)) ([de435a6](https://github.com/mandakan/splitsmith/commit/de435a6981b0532f05c159a73da86a9d107bf6af))
|
|
1944
|
+
|
|
1945
|
+
## 0.2.0 (2026-05-24)
|
|
1946
|
+
|
|
1947
|
+
First public release.
|
|
1948
|
+
|
|
1949
|
+
Extract IPSC shot splits from head-mounted camera footage. Detect shots
|
|
1950
|
+
via a 3-voter ensemble (envelope onset / CLAP / GBDT-with-PANN), produce
|
|
1951
|
+
a CSV of splits, and emit an FCPXML timeline with per-shot markers and
|
|
1952
|
+
optional overlay clips for Final Cut Pro.
|
|
1953
|
+
|
|
1954
|
+
Install:
|
|
1955
|
+
|
|
1956
|
+
```
|
|
1957
|
+
uv tool install splitsmith
|
|
1958
|
+
```
|
|
1959
|
+
|
|
1960
|
+
After install, run `splitsmith fetch-models` to pre-download the ~440 MB
|
|
1961
|
+
of ONNX detection artifacts (otherwise they download on first detection).
|