Skip to content

v0.1.4 — Interactive GTFS File Map + large-feed memory optimization

Choose a tag to compare

@ttezer ttezer released this 24 Jun 19:42

This release adds the Interactive GTFS File Map and substantially improves the reliability of large feeds under WebAssembly. Before 0.1.4, VBB-class feeds (e.g. VBB Berlin, ~282k trips / 6.3M stop_times) either ran close to the 4 GB wasm32 memory ceiling or failed during result serialization; 0.1.4 brings peak memory down to roughly 2.74 GB, an improvement of about 1.3 GB of headroom.

Added

  • Interactive GTFS File Map that combines GTFS file relationships with the real analyzer findings for the loaded feed.
  • Per-file finding count, severity, row count, and missing/clean status.
  • Direct navigation from a file into the filtered Detail and Fix views.
  • File-type icons, dark theme, and a mobile layout; non-spec files are shown separately.
  • Turkish, English, and Japanese UI strings for the File Map.
  • Diagnostic information showing the last completed pipeline stage on validation errors and timeouts.

Performance

  • Reduced WASM peak memory on the VBB Berlin test feed from roughly 4.0 GB (or a serialization failure) to about 2.74 GB.
  • CompactStopTime row size reduced from 168 to 96 bytes: dead flag fields removed and stop_headsign boxed.
  • Removed about 454 MB of unused capacity in the stop_times row buffer.
  • Removed the second, borrowed copy of trip_stop_set built in the K4 cross-reference stage, and freed the set after K4 so K6 allocations can reuse that space.
  • Added a large-feed mode to the name index to avoid serialization OOM (notices fall back to raw IDs above a deterministic threshold); small and normal feeds are unchanged.
  • Reduced several high-volume intermediate notice emitters (TRP_020, SHP_022, STP_022, PTH_008).

Fixed

  • Large GTFS feeds that previously approached the wasm32 4 GB limit or ran out of memory can now be analyzed more safely.
  • STM_014 (fast travel) false positives on feeds using extended European route_type codes (S-Bahn, U-Bahn, tram, regional rail) — speed thresholds are now mapped to the correct vehicle category.
  • The File Map no longer disappears entirely when a severity filter is applied; dark-theme file/group colors and file-relationship label readability were corrected.

Known caveat: an intermittent rayon worker crash (memory access out of bounds) was observed in one earlier run; high-water was below 4 GB, so it is not proven to be OOM. The error card now reports the last completed pipeline stage; it will be filed separately if it recurs.

Remaining large-feed runtime optimization is tracked in #37.