Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
> from git history and grouped by theme rather than exhaustive per-commit
> detail.

## [4.2.0] - 2026-10-02
## [5.0.0] - 2026-10-04

### Added
- **Import a GPS-tagged GoPro video as a session.** Every GoPro since the
Expand Down
4 changes: 2 additions & 2 deletions docs/plans/0022-drag-mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> Status: **DONE** — all four commits below landed (detector first,
> logic-first like plan 0015, then mapping, orchestration and UI); ships in
> 4.2.0. The follow-ups section is deliberately out of scope for v1.
> 5.0.0. The follow-ups section is deliberately out of scope for v1.

## Why this exists

Expand Down Expand Up @@ -111,7 +111,7 @@ Course-less pre-application (drag runs, and the waypoint fallback) goes
through `applyCourselessLaps`, which **clears the course selection** first. The
loader carries the previous file's selection into a new load, and a drag
session left holding it kept `canSnapshot` live — a 10-second run could replace
that course's snapshot and cloud-sync it (4.2.0 release review A1).
that course's snapshot and cloud-sync it (5.0.0 release review A1).
`useLapSnapshots` also refuses drag sessions outright (`snapshotEligible`), and
every "fastest" pick in the app goes through `fastestRankedLap`, never a bare
min-reduce (A2).
Expand Down
2 changes: 1 addition & 1 deletion docs/plans/0024-native-export-bridge.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ export shortcut goes away. The pure parts — ordering, totals, labels,
applying a removal, byte formatting — live in `deviceVideos.ts` with tests;
the panel is a thin view.

## Follow-up 4 (landed): release-review hardening (4.2.0)
## Follow-up 4 (landed): release-review hardening (5.0.0)

- **Stale copy, wrong session.** `loadRecording`'s background copy set
`nativeStoredKey` whenever it resolved, so a copy that finished after a
Expand Down
4 changes: 2 additions & 2 deletions docs/plans/0027-precache-resilience.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ service worker at all.

`DEFERRED_ASSET_DIRS` (`samples/`, `loggers/`) is the single source of truth —
it lives in `scripts/deferredAssets.ts` (moved out of `vite.config.ts` after the
4.2.0 release review so the runtime-cache route, previously a hand-copied regex,
5.0.0 release review so the runtime-cache route, previously a hand-copied regex,
could be derived from it and unit-tested). It feeds three things:

1. `globIgnores` — those directories stay out of the install-blocking precache.
Expand Down Expand Up @@ -93,7 +93,7 @@ The route deliberately has no `ExpirationPlugin`: entries written by the client
aren't in the plugin's own index, and a fixed set of build assets has nothing to
expire.

### Revision the deferred cache (follow-up, 4.2.0 release review PERF-1)
### Revision the deferred cache (follow-up, 5.0.0 release review PERF-1)

Moving `samples/` and `loggers/` out of the precache also moved them out of
Workbox's per-file revisioning, and the runtime route is `CacheFirst` with no
Expand Down
2 changes: 1 addition & 1 deletion docs/plans/0029-gopro-gps-video-import.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ the C library).
extractor stays off the main chunk.
- `src/lib/gopro/goproDetect.ts` — the cheap eager gates (`isGoProVideoFile`,
`isGoProVideoBuffer`) the routers call on every import.
- Hardening (4.2.0 review): a malformed GPS stream skips its payload instead of
- Hardening (5.0.0 review): a malformed GPS stream skips its payload instead of
aborting the import, and a uniform `stsz` count is capped at
`fileSize / sampleSize` so a hostile MP4 can't allocate billions of entries.
- `src/lib/gopro/videoHandoff.ts` — one-shot pending video for a session.
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "doves-dataviewer",
"private": true,
"version": "4.2.0",
"version": "5.0.0",
"description": "Open-source, offline-first motorsport telemetry viewer (Dove's DataViewer / LapWing).",
"license": "GPL-3.0-or-later",
"author": "TheAngryRaven",
Expand Down
Loading