Skip to content

feat: add passenger trip shell v1 - #52

Merged
FHoffarth merged 1 commit into
developfrom
feature/passenger-trip-shell-v1
Aug 23, 2026
Merged

FHoffarth merged 1 commit into
developfrom
feature/passenger-trip-shell-v1

Conversation

@FHoffarth

Copy link
Copy Markdown
Owner

Summary

  • Mobile-first Passenger Trip Shell: Built a dedicated, accessible passenger presentation view (<TripShell />) optimized for mobile viewports (320px, 375px, 390px, 430px) as well as tablet and desktop layouts.
  • Factory-Driven Contract: Consumes canonical PassengerTripKnowledgePack and VoyageKnowledgeResult structures generated by the Voyage Knowledge Factory.
  • Pure Functional Adapter: Added buildPassengerTripViewModel() (frontend/src/trip-shell/adapter.ts) forming an explicit presentation barrier that transforms factory output into PassengerTripViewModel.
  • Fact-Scoped Trust Copy: Replaced overclaims with precise, fact-bounded language ("Core trip details confirmed", "Some trip details are confirmed from official sources.", "Specific terminal and berth details are not confirmed yet.").
  • Check-in Semantics Preserved: Renders strictly what the contract proves ("Check-in: 14:00") without inventing check-in windows, arrival buffers, or recommendations.
  • Intentional Unknown Handling: Explicitly renders unknown terminal and berth states ("Not confirmed yet", "Not assigned yet") with reassuring context, without emitting raw UNKNOWN or null values.
  • Generic Destination Infrastructure Separation: Generic port facilities (e.g. Tokyo International Cruise Terminal) are rendered strictly in a separate PORT INFORMATION (DESTINATION) section with an explicit non-assignment notice ("Known port facility — not yet confirmed for your sailing.").
  • Complete Enum & PII Insulation: Zero internal lifecycle enums (SUPPORTED, APPROVED, PUBLISH_ALLOWED, DRAFT, Method.INFERRED, UNKNOWN) or raw cryptographic hashes leak into visible passenger UI. PII notice precisely bounded to reusable trip knowledge.
  • Fixture Demarcation: Bellissima data placed in frontend/src/fixtures/reference_voyage_bellissima.json as reference/demo/test fixture only.
  • Route Integration: my-cruise routes explicitly to ReferenceTripShellPreview, cleanly separating demo preview from pure data-driven TripShellPage.

Open Contract Gaps

  1. Dynamic Runtime Loader / API Bridge: Connecting live intake API / database output to TripShellPage in production without static fixture wrappers.
  2. departure_time (17:00) & arrival_time (05:30): Present in raw booking confirmation but unverified in factory contract.
  3. itinerary_waypoints / sea_days (5–6 Oct At Sea): Waypoints not yet modeled in PassengerTripKnowledgePack.

Scope Exclusions

  • No runtime backend API bridge or database loader implemented in this PR.
  • No background scheduler or automatic recheck mechanism promised or added.
  • No routing, Nearby, 3D deck map, AIS tracking, or booking flow added.
  • No modifications to the Voyage Knowledge Factory or backend truth contracts.

Test & Validation Coverage

  • Frontend Vitest: 56/56 passing tests (including 14 comprehensive truth-copy and boundary invariant tests in frontend/src/trip-shell/TripShell.test.tsx).
  • Frontend Build: Clean Vite production build (dist/ generated with zero errors).
  • Backend Test Suite: 892/892 pytest tests passing across 72 test suites.
  • Diff Hygiene: git diff --check clean with zero whitespace issues.

@FHoffarth
FHoffarth merged commit 1d39b97 into develop Aug 23, 2026
4 checks passed
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