Skip to content

Beta [no not merge yet]#41

Open
TheAngryRaven wants to merge 34 commits into
mainfrom
BETA
Open

Beta [no not merge yet]#41
TheAngryRaven wants to merge 34 commits into
mainfrom
BETA

Conversation

@TheAngryRaven
Copy link
Copy Markdown
Owner

Just to review all changes

claude and others added 3 commits May 24, 2026 03:33
First concrete extension point for the plugin system: plugins contribute
self-contained React panels to a named slot, and the host mounts them.
Built so future personal/third-party plugins plug in the same way.

- panels.ts: PluginPanel/PluginPanelProps contract, PANELS_POINT, PanelSlot,
  getPanelsForSlot. PluginPanelProps is a curated, read-only session snapshot
  so plugins never depend on the host's internal session context.
- PluginPanelHost: mounts every panel for a slot in a titled card, each behind
  a per-panel error boundary so a buggy plugin can't crash the tab.
- LabsTab renders the "labs" slot; Index shows the Labs tab automatically when
  a plugin contributes a labs panel, even with the experimental setting off.

https://claude.ai/code/session_01QF56Xjp5ZMgXrqfTWD14Le
…plugins-vIcuh

Add plugin UI panel framework, surfaced in the Labs tab
First in-repo plugin built on the panel framework: a Labs panel that signs the
user in and does manual, directional push/pull of local IndexedDB data to
Supabase. Structured stores sync as jsonb documents in a new sync_records table;
raw session blobs round-trip through a private per-user Storage bucket. Both are
RLS-scoped to the owner. Sync is additive (no deletion propagation yet) and
online-only — the core app stays fully offline without it.

- supabase migration: sync_records table + user-files bucket, owner-scoped RLS
- syncStores.ts holds the pure store/key config (unit-tested); syncEngine.ts
  does the IDB <-> cloud I/O; cloudClient.ts isolates the typed-client escape
  hatch until Supabase types regenerate
- PluginPanelHost now wraps panels in Suspense so panel components can be lazy;
  CloudSyncPanel is lazy-loaded to keep it off the initial bundle
- sign-in only for now (Google to be added via Lovable); auth UI is a thin stub

https://claude.ai/code/session_01QF56Xjp5ZMgXrqfTWD14Le
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 24, 2026

Coverage Summary

Lines: 13.36% (1328/9935) · Statements: 12.73% · Functions: 9.37% · Branches: 9.93%

Per-file coverage
File Lines Functions Branches
src/App.tsx 0% 0% 0%
src/components/AboutDialog.tsx 0% 0% 100%
src/components/admin/BannedIpsTab.tsx 0% 0% 0%
src/components/admin/CoursesTab.tsx 0% 0% 0%
src/components/admin/MessagesTab.tsx 0% 0% 0%
src/components/admin/SubmissionsTab.tsx 0% 0% 0%
src/components/admin/ToolsTab.tsx 0% 0% 0%
src/components/admin/TracksTab.tsx 0% 0% 0%
src/components/BrowserCompatDialog.tsx 0% 0% 0%
src/components/ContactDialog.tsx 0% 0% 0%
src/components/CreditsDialog.tsx 0% 0% 100%
src/components/DataloggerDownload.tsx 0% 0% 0%
src/components/drawer/DeviceSettingsTab.tsx 0% 0% 0%
src/components/drawer/DeviceTracksTab.tsx 0% 0% 0%
src/components/drawer/FilesTab.tsx 0% 0% 0%
src/components/drawer/KartsTab.tsx 0% 0% 0%
src/components/drawer/NotesTab.tsx 0% 0% 0%
src/components/drawer/SetupsTab.tsx 0% 0% 0%
src/components/drawer/TemplateCreator.tsx 0% 0% 0%
src/components/drawer/VehiclesTab.tsx 0% 0% 0%
src/components/ExternalRefBar.tsx 0% 0% 0%
src/components/FileImport.tsx 0% 0% 0%
src/components/FileManagerDrawer.tsx 0% 0% 0%
src/components/graphview/GraphPanel.tsx 0% 0% 0%
src/components/graphview/GraphViewPanel.tsx 0% 0% 0%
src/components/graphview/InfoBox.tsx 0% 0% 0%
src/components/graphview/MiniMap.tsx 0% 0% 0%
src/components/graphview/SingleSeriesChart.tsx 0% 0% 0%
src/components/InstallPrompt.tsx 0% 0% 0%
src/components/LandingPage.tsx 0% 0% 0%
src/components/LapSummaryWidget.tsx 0% 0% 0%
src/components/LapTable.tsx 0% 0% 0%
src/components/LocalWeatherDialog.tsx 0% 0% 0%
src/components/NavLink.tsx 0% 0% 0%
src/components/RaceLineView.tsx 0% 0% 0%
src/components/RangeSlider.tsx 0% 0% 0%
src/components/ResizableSplit.tsx 0% 0% 0%
src/components/SettingsModal.tsx 0% 0% 0%
src/components/SubmitTrackDialog.tsx 0% 0% 0%
src/components/SupportedFilesDialog.tsx 0% 0% 0%
src/components/tabs/GraphViewTab.tsx 0% 0% 100%
src/components/tabs/LabsTab.tsx 0% 0% 100%
src/components/tabs/LapTimesTab.tsx 0% 0% 100%
src/components/tabs/RaceLineTab.tsx 0% 0% 0%
src/components/TelemetryChart.tsx 0% 0% 0%
src/components/track-editor/AddCourseDialog.tsx 0% 0% 0%
src/components/track-editor/AddTrackDialog.tsx 0% 0% 0%
src/components/track-editor/CourseForm.tsx 0% 0% 0%
src/components/track-editor/EditorModeToggle.tsx 0% 0% 0%
src/components/track-editor/VisualEditor.tsx 0% 0% 0%
src/components/TrackEditor.tsx 0% 0% 0%
src/components/TrackPromptDialog.tsx 0% 0% 0%
src/components/video-overlays/AnalogOverlay.tsx 0% 0% 0%
src/components/video-overlays/BarOverlay.tsx 0% 0% 0%
src/components/video-overlays/BubbleOverlay.tsx 0% 0% 0%
src/components/video-overlays/dataSourceResolver.ts 0% 0% 0%
src/components/video-overlays/DigitalOverlay.tsx 0% 0% 0%
src/components/video-overlays/GraphOverlay.tsx 0% 0% 0%
src/components/video-overlays/LapTimeOverlay.tsx 0% 0% 0%
src/components/video-overlays/MapOverlay.tsx 0% 0% 0%
src/components/video-overlays/OverlaySettingsPanel.tsx 0% 0% 0%
src/components/video-overlays/overlayUtils.ts 0% 0% 0%
src/components/video-overlays/PaceOverlay.tsx 0% 0% 0%
src/components/video-overlays/registry.ts 0% 0% 100%
src/components/video-overlays/SectorOverlay.tsx 0% 0% 0%
src/components/video-overlays/sectorUtils.ts 0% 0% 0%
src/components/video-overlays/themes.ts 0% 0% 0%
src/components/video-overlays/types.ts 0% 100% 100%
src/components/video-overlays/VideoExportDialog.tsx 0% 0% 0%
src/components/VideoPlayer.tsx 0% 0% 0%
src/components/WeatherPanel.tsx 0% 0% 0%
src/contexts/AuthContext.tsx 0% 0% 0%
src/contexts/DeviceContext.tsx 0% 0% 0%
src/contexts/SessionContext.tsx 0% 0% 0%
src/contexts/SettingsContext.tsx 0% 0% 0%
src/hooks/use-mobile.tsx 0% 0% 100%
src/hooks/use-toast.ts 0% 0% 0%
src/hooks/useAuth.ts 100% 100% 100%
src/hooks/useDataLoader.ts 0% 0% 0%
src/hooks/useDocumentHead.ts 0% 0% 0%
src/hooks/useFileManager.ts 0% 0% 0%
src/hooks/useKartManager.ts 100% 100% 100%
src/hooks/useLapManagement.ts 0% 0% 0%
src/hooks/useNoteManager.ts 0% 0% 0%
src/hooks/useOnlineStatus.ts 0% 0% 0%
src/hooks/usePlayback.ts 0% 0% 0%
src/hooks/useReferenceLap.ts 0% 0% 0%
src/hooks/useSessionData.ts 0% 0% 0%
src/hooks/useSessionMetadata.ts 0% 0% 0%
src/hooks/useSettings.ts 0% 0% 0%
src/hooks/useSetupManager.ts 0% 0% 100%
src/hooks/useTemplateManager.ts 0% 0% 0%
src/hooks/useTrackEditorForm.ts 0% 0% 0%
src/hooks/useVehicleManager.ts 0% 0% 100%
src/hooks/useVideoSync.ts 0% 0% 0%
src/lib/aimParser.ts 11.27% 18.18% 3.08%
src/lib/alfanoParser.ts 7.81% 40% 3.93%
src/lib/ble/test/mockBle.ts 100% 100% 50%
src/lib/ble/battery.ts 93.33% 100% 87.5%
src/lib/ble/connection.ts 0% 0% 0%
src/lib/ble/fileTransfer.ts 90.69% 95% 72.91%
src/lib/ble/format.ts 50% 100% 72.22%
src/lib/ble/index.ts 100% 100% 100%
src/lib/ble/internal.ts 100% 100% 50%
src/lib/ble/settings.ts 93.6% 100% 85.29%
src/lib/ble/trackSync.ts 89.69% 90.9% 70.96%
src/lib/ble/types.ts 100% 100% 100%
src/lib/bleDatalogger.ts 100% 100% 100%
src/lib/brakingZones.ts 0% 0% 0%
src/lib/browserCompat.ts 0% 0% 0%
src/lib/chartColors.ts 0% 0% 0%
src/lib/chartUtils.ts 0% 0% 0%
src/lib/courseDetection.ts 99.01% 100% 84.14%
src/lib/datalogParser.ts 17.3% 50% 17.39%
src/lib/db/index.ts 0% 0% 0%
src/lib/db/supabaseAdapter.ts 0% 0% 0%
src/lib/db/types.ts 100% 100% 100%
src/lib/dbUtils.ts 3.33% 0% 0%
src/lib/deviceSettingsSchema.ts 0% 0% 0%
src/lib/deviceTrackSync.ts 100% 100% 90%
src/lib/doveParser.ts 82.4% 72.72% 56.36%
src/lib/dovexParser.ts 76.56% 76.92% 47.27%
src/lib/fieldResolver.ts 0% 0% 0%
src/lib/fileStorage.ts 0% 0% 0%
src/lib/gforceCalculation.ts 92.85% 100% 86.95%
src/lib/graphPrefsStorage.ts 0% 0% 0%
src/lib/kartStorage.ts 0% 0% 0%
src/lib/lapCalculation.ts 96.12% 100% 90.32%
src/lib/motecParser.ts 4.29% 3.44% 0.69%
src/lib/nmeaParser.ts 84.43% 92.85% 67.62%
src/lib/noteStorage.ts 0% 0% 100%
src/lib/overlayCanvasRenderer.ts 0% 0% 0%
src/lib/parserUtils.ts 100% 100% 98.52%
src/lib/referenceUtils.ts 0% 0% 0%
src/lib/setupStorage.ts 0% 0% 0%
src/lib/speedBounds.ts 0% 0% 0%
src/lib/speedEvents.ts 0% 0% 0%
src/lib/templateStorage.ts 0% 0% 0%
src/lib/trackStorage.ts 0% 0% 0%
src/lib/trackUtils.ts 22.22% 12.5% 22.72%
src/lib/ubxParser.ts 5% 0% 0%
src/lib/utils.ts 0% 0% 100%
src/lib/vboParser.ts 2.4% 9.09% 2.43%
src/lib/vehicleStorage.ts 0% 0% 0%
src/lib/videoExport.ts 0% 0% 0%
src/lib/videoFileStorage.ts 0% 0% 0%
src/lib/videoStorage.ts 0% 0% 0%
src/lib/weatherService.ts 0% 0% 0%
src/pages/Admin.tsx 0% 0% 0%
src/pages/Index.tsx 0% 0% 0%
src/pages/Login.tsx 0% 0% 0%
src/pages/NotFound.tsx 0% 0% 0%
src/pages/Privacy.tsx 0% 0% 0%
src/pages/Register.tsx 0% 0% 0%
src/plugins/cloud-sync/cloudClient.ts 0% 0% 100%
src/plugins/cloud-sync/CloudSyncPanel.tsx 0% 0% 0%
src/plugins/cloud-sync/index.ts 0% 0% 100%
src/plugins/cloud-sync/syncEngine.ts 0% 0% 0%
src/plugins/cloud-sync/syncStores.ts 100% 100% 100%
src/plugins/index.ts 0% 0% 0%
src/plugins/panels.ts 100% 100% 100%
src/plugins/PluginPanelHost.tsx 0% 0% 0%
src/plugins/registry.ts 100% 100% 100%
src/plugins/types.ts 100% 100% 100%
src/types/racing.ts 100% 100% 100%

TheAngryRaven and others added 26 commits May 24, 2026 00:10
…plugins-vIcuh

Add Cloud Sync first-party plugin (Supabase file + garage sync)
Phase 1 of the pacing rework: a standalone, unit-tested lib module porting the
DovesLapTimer issue #29 design to the web tool. Not yet wired into the app —
this lands the core math so it can be reviewed in isolation.

- resampleByDistance(): canonical arc-length grid (one point per N meters),
  independent of GPS rate and lap duration — fixes the legacy distance method's
  cumulative-noise drift and gives uniform spatial resolution for the coach.
- computePositionDelta(): projects each native current fix onto the nearest
  reference segment (interpolating the closest point so the gap doesn't snap),
  with a monotonic windowed search to defeat hairpins/self-crossings, an EMA
  (issue #29 convention) + optional zero-lag forward-backward smoother, and a
  sanity guard. Exposes matchIndex/matchFrac as a cross-lap alignment map.
- 10 tests: grid uniformity, GPS-rate independence, zero gap vs self, growing
  gap for slower laps, segment interpolation, sanity guard, smoothing.

https://claude.ai/code/session_01QF56Xjp5ZMgXrqfTWD14Le
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
X-Lovable-Edit-ID: edt-b7983c69-b33b-4805-b644-fb0536a2cc26
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
…elta

Add plugin UI panel framework, surfaced in the Labs tab
Edited UI in Lovable

Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
X-Lovable-Edit-ID: edt-be5ebb3b-4f23-42f8-b8a7-b92bd8ccacd4
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
lovable-dev Bot and others added 5 commits May 24, 2026 15:05
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
X-Lovable-Edit-ID: edt-95d384e5-680a-4a45-b83e-32e5eca3e5d2
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
X-Lovable-Edit-ID: edt-c81929e2-0c30-45b3-b969-de914be4288e
Co-authored-by: TheAngryRaven <2923950+TheAngryRaven@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants