Skip to content

Add NYC subway Transit view - #295

Open
kyleve wants to merge 6 commits into
codex/throw-v1from
codex/throw-nyc-transit
Open

Add NYC subway Transit view#295
kyleve wants to merge 6 commits into
codex/throw-v1from
codex/throw-nyc-transit

Conversation

@kyleve

@kyleve kyleve commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • enable Transit as Throw’s second projection experience, starting with NYC Subway data from the official MTA supplemented GTFS schedule and all eight GTFS-Realtime partitions
  • estimate assigned trains along scheduled shapes, preserve per-partition last-good data during retries, and render route-colored network lines, train marks, destinations, and contextual stops
  • add Transit setup and settings, independent map radius/center/appearance preferences, version-three preference migration, and activation/rotation integration
  • keep the transit contracts agency-neutral so another city, such as San Francisco, can supply its own schedule and realtime adapters without changing projection semantics
  • add protobuf generation provenance, SwiftProtobuf and ZIPFoundation attribution, focused unit coverage, and projector/settings snapshots

Correctness and architecture

  • ThrowSession owns one injected TransitRuntime; only active or prewarming experiences may poll
  • static schedule work and realtime decoding run off the main actor, with generation checks preventing late frames from becoming visible
  • valid empty feeds satisfy activation readiness, while partial partition failures retain only bounded last-good data
  • typed TransitMapViewport enforces the 5–50 NM product invariant before values reach persistence or projection
  • configuration and removal update preferences and playlists transactionally

Verification

  • ./ide --no-open
  • ./test ThrowCoreTests ThrowUITests — 369 tests passed
  • selected Throw snapshot suites — passed
  • ./swiftformat --lint
  • ./sf-symbols --lint
  • ./xcstrings --lint
  • ./attribution --check
  • architecture validation — no violations
  • visually reviewed Transit projector snapshots at 16:9, 16:10, and 4:3, plus setup/configured settings snapshots

Stacked on #293.

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.

1 participant