feat: loading bar for existing feed #133

Merged
maxtkc merged 8 commits from 127-load-current-feed-ux into main 2026-05-25 20:24:31 +00:00
Owner

Closes #127

Closes #127
maxtkc self-assigned this 2026-05-25 20:24:23 +00:00
Wire the 'boot' operation key into FeedProgressIndicator across the
init() path so users see progress during the database restore on
refresh, rather than a frozen tab with no feedback.
The validator iterated every stop_times row on every page load but the result
was never displayed (InfoDisplay is unused). Removing the startup invocation
saves multiple seconds of main-thread work on large feeds.
Replace CSV blobs with JSON-serialized row arrays in the file_blobs
IDB store (dbVersion 9 → 10). JSON.parse is native and skips the
Papa.parse + processParsedData per-row coercion pass entirely.

Parallelize all IDB blob reads in restoreDataFromDatabase with
Promise.all instead of sequential awaits, then hand the JSON strings
to the existing gtfs-parser worker for off-main-thread parsing.

Update exportCurrentBlobsAsZip to handle both the old csv field
(pre-upgrade reads) and the new json field (post-upgrade error paths).
Track meta.blobVersion after every persistDirtyBlobs flush. On refresh,
PatchManager.initialize() compares blobVersion to currentVersion and skips
the snapshot decompress + full patch replay when they match — the
in-memory state from GTFSParser.initialize() is already correct.

Fresh imports and initializeEmpty both write blobVersion=0 so the fast
path kicks in on the very next load.
Gate all console.time calls behind CONFIG.DEBUG_BOOT (default false) so
they're available for local measurement without polluting production logs.
Covers total boot time, each major init stage, and per-table setupVirtual
cost for JSON blobs over 1 MB.
maxtkc merged commit a2f8b25c93 into main 2026-05-25 20:24:31 +00:00
maxtkc deleted branch 127-load-current-feed-ux 2026-05-25 20:24:31 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
gtfs.zone/coloring-book!133
No description provided.