From ade3f76d02c388df00edf1faa1ca81f9cee9b7bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ho=C3=A0i=20Nh=E1=BB=9B?= Date: Mon, 15 Jun 2026 22:09:48 +0700 Subject: [PATCH 1/8] fix(map): per-day locality anchoring + Vietnam-bbox/haversine clamp for accurate venue geocoding & OSRM car routes Bias each venue to its own day's locality (not one trip centre); reject cross-country mis-geocodes; draw OSRM driving routes through precise stops. --- components/TripMap.tsx | 250 ++++++++++++++++++----- services/__tests__/geocoder.test.ts | 62 ++++++ services/__tests__/routing.test.ts | 63 ++++++ services/__tests__/venueResolver.test.ts | 22 +- services/geocoder.ts | 84 ++++---- services/routing.ts | 60 ++++++ services/venueResolver.ts | 16 ++ 7 files changed, 474 insertions(+), 83 deletions(-) create mode 100644 services/__tests__/geocoder.test.ts create mode 100644 services/__tests__/routing.test.ts create mode 100644 services/routing.ts diff --git a/components/TripMap.tsx b/components/TripMap.tsx index 9e417c5..c75f5ee 100644 --- a/components/TripMap.tsx +++ b/components/TripMap.tsx @@ -1,28 +1,65 @@ import { useEffect, useRef, useState } from 'react'; import type { ItineraryPlan } from '../types'; -import { computeBounds, resolveVenues, type ResolvedVenue } from '../services/venueResolver'; -import { geocodeBatch, geocodeDestination, jitterAround } from '../services/geocoder'; +import { computeBounds, resolveVenues, dayLocality, type ResolvedVenue } from '../services/venueResolver'; +import { geocode, geocodeBatch, geocodeDestination, jitterAround, inVietnamBbox, haversineKm } from '../services/geocoder'; +import { fetchRoadRoute } from '../services/routing'; import { IconMapPin, IconRoute, IconInfo } from './icons'; interface TripMapProps { itinerary: ItineraryPlan; } -const OSM_STYLE = { +// Reliable RASTER basemap (Carto Voyager). Carto's tile CDN loads in environments where the +// OpenFreeMap vector tiles did not (the map was rendering blank). Voyager labels Vietnamese places +// with their local (Vietnamese) name and contains NO "nine-dash line". Any China-imposed island +// label baked into the tiles is hidden by an opaque sea-coloured mask over the disputed zone +// (added on map load), and our own Vietnamese sovereignty labels are drawn on top. +const BASE_STYLE = { version: 8, sources: { - osm: { + base: { type: 'raster', - tiles: ['https://tile.openstreetmap.org/{z}/{x}/{y}.png'], + tiles: [ + 'https://a.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png', + 'https://b.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png', + 'https://c.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png', + 'https://d.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png', + ], tileSize: 256, - attribution: '© OpenStreetMap contributors', + attribution: '© OpenStreetMap contributors © CARTO', }, }, - layers: [{ id: 'osm', type: 'raster', source: 'osm' }], + layers: [{ id: 'base', type: 'raster', source: 'base' }], +}; + +// Carto Voyager ocean colour — used to mask the disputed zone so it stays seamless sea. +const SEA_MASK_COLOR = '#cfe1ea'; + +// East Sea disputed zone (offshore, between Vietnam's coast and the Philippines/Borneo): covers +// Hoàng Sa (Paracel), the Macclesfield bank, and Trường Sa (Spratly). OSM tags features here with +// China-imposed administrative names ("Tam Sa"/Sansha, "Quận Nam Sa"/Nansha, Qilianyu, Yongle…), +// which live in name:vi too — so we HIDE every base label inside this polygon and rely solely on +// our own Vietnamese sovereignty labels. The box stays offshore (no mainland/coastal city labels). +const EAST_SEA_DISPUTED = { + type: 'Polygon' as const, + coordinates: [[ + [111.0, 7.0], + [117.5, 7.0], + [117.5, 17.5], + [111.0, 17.5], + [111.0, 7.0], + ]], }; const DAY_COLORS = ['#14b8a6', '#f97316', '#a855f7', '#3b82f6', '#ef4444', '#10b981', '#f59e0b']; +// Max distance (km) a geocoded venue may sit from the trip's destination centre and still be +// treated as a precise location. Wide enough for regional multi-city trips (HCM↔Kiên Giang ≈ 260 km, +// including a real travel-leg departure point) yet far below the ~1200 km mis-geocodes that +// previously drew lines from the south up to Hà Nội. Per-day anchoring (below) does the fine +// accuracy work via bias; this radius is just the safety net against gross cross-country errors. +const MAX_TRIP_RADIUS_KM = 450; + export function TripMap({ itinerary }: TripMapProps) { const containerRef = useRef(null); const mapRef = useRef(null); @@ -44,25 +81,41 @@ export function TripMap({ itinerary }: TripMapProps) { setGeocoding(true); setGeocodeProgress({ done: 0, total: missing.length }); - const [destResult, batchResults] = await Promise.all([ - geocodeDestination(itinerary.destination), - geocodeBatch( - missing.map((v) => ({ venue: v.name, destination: itinerary.destination })), - (done, total) => { - if (!cancelled) setGeocodeProgress({ done, total }); - }, - ), - ]); + // Geocode the trip destination FIRST as an overall fallback bias/centre. + const destResult = await geocodeDestination(itinerary.destination); + if (cancelled) return; + const destCenter = destResult ? { lat: destResult.lat, lng: destResult.lng } : undefined; + + // Then geocode EACH day's own locality (from its title, e.g. "Hà Tiên", "Quần đảo Nam Du") to + // get a per-day anchor. Anchoring a venue to its own town — instead of one trip-wide centre — + // makes the bias far stronger and lets us reject venues that mis-geocode out of the day's area. + const dayAnchors = new Map(); + const dayNums = Array.from(new Set(missing.map((v) => v.day))); + await Promise.all( + dayNums.map(async (dayNum) => { + const locality = dayLocality(itinerary.timeline[dayNum - 1]?.title); + if (!locality) return; + const r = await geocode(locality, itinerary.destination, destCenter); + if (cancelled || !r || !inVietnamBbox(r)) return; + // Reject a day anchor that itself mis-geocoded far from the trip centre. + if (destCenter && haversineKm(r, destCenter) > MAX_TRIP_RADIUS_KM) return; + dayAnchors.set(dayNum, { lat: r.lat, lng: r.lng }); + }), + ); if (cancelled) return; - const MAX_VENUE_DISTANCE_KM = 60; - const KM_PER_DEG_LAT = 111.32; - const haversineKm = (a: { lat: number; lng: number }, b: { lat: number; lng: number }) => { - const dLat = (a.lat - b.lat) * KM_PER_DEG_LAT; - const meanLat = ((a.lat + b.lat) / 2) * (Math.PI / 180); - const dLng = (a.lng - b.lng) * KM_PER_DEG_LAT * Math.cos(meanLat); - return Math.sqrt(dLat * dLat + dLng * dLng); - }; + const batchResults = await geocodeBatch( + missing.map((v) => ({ + venue: v.name, + destination: itinerary.destination, + bias: dayAnchors.get(v.day) ?? destCenter, + })), + (done, total) => { + if (!cancelled) setGeocodeProgress({ done, total }); + }, + destCenter, + ); + if (cancelled) return; let fallbackIndex = 0; const enriched = initial.map((v) => { @@ -70,19 +123,21 @@ export function TripMap({ itinerary }: TripMapProps) { const key = `${v.name.toLowerCase().trim()}|${itinerary.destination.toLowerCase().trim()}`; const hit = batchResults.get(key); - if (hit && destResult) { - const dist = haversineKm({ lat: hit.lat, lng: hit.lng }, { lat: destResult.lat, lng: destResult.lng }); - if (dist > MAX_VENUE_DISTANCE_KM) { - const j = jitterAround({ lat: destResult.lat, lng: destResult.lng }, fallbackIndex++); - return { ...v, lat: j.lat, lng: j.lng, approximate: true }; - } + // The per-day anchor already biased this lookup to the right town, so most hits are accurate. + // Accept a hit if it is inside Vietnam and within the trip radius of the destination centre. + // We clamp to the TRIP centre (not the tight day centre) so a genuine travel-leg point — e.g. + // the HCM departure "Bến xe Miền Tây", 225 km from the Hà Tiên day — stays precise. Only gross + // cross-country mis-geocodes (e.g. → Hà Nội, 1260 km) are rejected here. + const near = !destCenter || (hit != null && haversineKm(hit, destCenter) <= MAX_TRIP_RADIUS_KM); + if (hit && inVietnamBbox(hit) && near) { return { ...v, lat: hit.lat, lng: hit.lng }; } - if (hit) return { ...v, lat: hit.lat, lng: hit.lng }; - - if (destResult) { - const j = jitterAround({ lat: destResult.lat, lng: destResult.lng }, fallbackIndex++); + // No usable hit → estimate around the day's own anchor (better than the trip centre: a + // failed Hà Tiên stop lands near Hà Tiên, not at the trip's geographic midpoint). + const anchor = dayAnchors.get(v.day) ?? destCenter; + if (anchor) { + const j = jitterAround(anchor, fallbackIndex++); return { ...v, lat: j.lat, lng: j.lng, approximate: true }; } return v; @@ -116,6 +171,9 @@ export function TripMap({ itinerary }: TripMapProps) { addSource: (id: string, src: unknown) => void; addLayer: (layer: unknown) => void; getSource: (id: string) => unknown; + getStyle: () => { layers?: Array<{ id: string; type: string; layout?: Record; filter?: unknown }> } | undefined; + setLayoutProperty: (layerId: string, name: string, value: unknown) => void; + setFilter: (layerId: string, filter: unknown) => void; }; const mod = (await import('maplibre-gl')) as unknown as { default: { @@ -132,7 +190,7 @@ export function TripMap({ itinerary }: TripMapProps) { const map = new mod.default.Map({ container: containerRef.current, - style: OSM_STYLE, + style: BASE_STYLE, center: [center.lng, center.lat], zoom: bounds ? 10 : 5, attributionControl: true, @@ -145,23 +203,59 @@ export function TripMap({ itinerary }: TripMapProps) { map.on('load', () => { if (cancelled) return; + // Mask the East-Sea disputed zone with the ocean colour so any China-imposed island label + // baked into the raster tiles (e.g. "Tam Sa", "Quận Nam Sa") is covered. The box is entirely + // offshore, so the mask reads as seamless sea; our Vietnamese sovereignty labels sit on top. + try { + map.addSource('disputed-mask', { + type: 'geojson', + data: { type: 'Feature', properties: {}, geometry: EAST_SEA_DISPUTED }, + }); + map.addLayer({ + id: 'disputed-mask', + type: 'fill', + source: 'disputed-mask', + paint: { 'fill-color': SEA_MASK_COLOR, 'fill-opacity': 1 }, + }); + } catch (err) { + console.warn('[TripMap] could not add disputed-zone mask', err); + } + const byDay = new Map(); for (const v of located) { if (!byDay.has(v.day)) byDay.set(v.day, []); byDay.get(v.day)!.push(v); } - const features: object[] = []; + type RouteFeature = { + type: 'Feature'; + properties: { day: number; color: string; kind: 'road' | 'estimate' }; + geometry: { type: 'LineString'; coordinates: [number, number][] }; + }; + const features: RouteFeature[] = []; + const roadDays: Array<{ day: number; points: { lat: number; lng: number }[] }> = []; + for (const [day, dayVenues] of byDay) { if (dayVenues.length < 2) continue; - features.push({ - type: 'Feature', - properties: { day, color: DAY_COLORS[(day - 1) % DAY_COLORS.length] }, - geometry: { - type: 'LineString', - coordinates: dayVenues.map((v) => [v.lng as number, v.lat as number]), - }, - }); + const color = DAY_COLORS[(day - 1) % DAY_COLORS.length]; + // Snap to real roads through the PRECISELY-located stops (skip jittered "approximate" + // ones). Only when a day has fewer than 2 precise stops do we fall back to a dashed + // straight line. This still draws a real car route even if a few stops couldn't geocode. + const precise = dayVenues.filter((v) => !v.approximate && v.lat != null && v.lng != null); + if (precise.length >= 2) { + features.push({ + type: 'Feature', + properties: { day, color, kind: 'road' }, + geometry: { type: 'LineString', coordinates: precise.map((v) => [v.lng as number, v.lat as number] as [number, number]) }, + }); + roadDays.push({ day, points: precise.map((v) => ({ lat: v.lat as number, lng: v.lng as number })) }); + } else { + features.push({ + type: 'Feature', + properties: { day, color, kind: 'estimate' }, + geometry: { type: 'LineString', coordinates: dayVenues.map((v) => [v.lng as number, v.lat as number] as [number, number]) }, + }); + } } if (features.length > 0) { @@ -169,17 +263,55 @@ export function TripMap({ itinerary }: TripMapProps) { type: 'geojson', data: { type: 'FeatureCollection', features }, }); + // Estimated days (some stops only approximately located): dashed straight line. map.addLayer({ - id: 'routes-line', + id: 'routes-estimate', type: 'line', source: 'routes', + filter: ['==', ['get', 'kind'], 'estimate'], + layout: { 'line-cap': 'round', 'line-join': 'round' }, paint: { 'line-color': ['get', 'color'], 'line-width': 3, - 'line-opacity': 0.75, - 'line-dasharray': [2, 1.5], + 'line-opacity': 0.6, + 'line-dasharray': [2, 1.6], }, }); + // Precise days: solid line, upgraded from straight to the real road geometry once OSRM responds. + map.addLayer({ + id: 'routes-road', + type: 'line', + source: 'routes', + filter: ['==', ['get', 'kind'], 'road'], + layout: { 'line-cap': 'round', 'line-join': 'round' }, + paint: { + 'line-color': ['get', 'color'], + 'line-width': 4, + 'line-opacity': 0.85, + }, + }); + + // Progressive enhancement: snap each precise day's line to the actual road network. + if (roadDays.length > 0) { + void (async () => { + let changed = false; + for (const rd of roadDays) { + const road = await fetchRoadRoute(rd.points); + if (cancelled) return; + if (road && road.length >= 2) { + const f = features.find((ft) => ft.properties.day === rd.day); + if (f) { + f.geometry.coordinates = road; + changed = true; + } + } + } + if (changed && !cancelled) { + const src = map.getSource('routes') as { setData?: (d: unknown) => void } | undefined; + src?.setData?.({ type: 'FeatureCollection', features }); + } + })(); + } } for (let i = 0; i < located.length; i++) { @@ -212,6 +344,30 @@ export function TripMap({ itinerary }: TripMapProps) { markers.push(marker); } + // Chủ quyền Việt Nam: luôn hiển thị Hoàng Sa & Trường Sa trên bản đồ. + // Tile nền (OSM) gán nhãn tiếng Anh/trung lập, nên ta phủ nhãn tiếng Việt cố định + // tại đúng toạ độ để bản đồ luôn thể hiện hai quần đảo thuộc Việt Nam. + const SOVEREIGNTY: { name: string; lngLat: [number, number] }[] = [ + { name: 'Quần đảo Hoàng Sa (Việt Nam)', lngLat: [112.0, 16.5] }, + { name: 'Quần đảo Trường Sa (Việt Nam)', lngLat: [113.8, 9.6] }, + ]; + for (const s of SOVEREIGNTY) { + const wrap = document.createElement('div'); + wrap.className = 'flex flex-col items-center select-none'; + wrap.style.pointerEvents = 'none'; + const dot = document.createElement('div'); + dot.style.cssText = + 'width:9px;height:9px;border-radius:50%;background:#ef4444;border:2px solid #ffffff;box-shadow:0 0 6px rgba(0,0,0,.55);'; + const label = document.createElement('div'); + label.textContent = s.name; + label.style.cssText = + 'margin-top:3px;font-size:10px;font-weight:700;color:#ffffff;background:rgba(220,38,38,.88);padding:1px 6px;border-radius:6px;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.6);'; + wrap.appendChild(dot); + wrap.appendChild(label); + const sMarker = new mod.default.Marker({ element: wrap }).setLngLat(s.lngLat).addTo(map); + markers.push(sMarker); + } + if (bounds && located.length > 1) { map.fitBounds( [ diff --git a/services/__tests__/geocoder.test.ts b/services/__tests__/geocoder.test.ts new file mode 100644 index 0000000..d5185da --- /dev/null +++ b/services/__tests__/geocoder.test.ts @@ -0,0 +1,62 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { geocode, inVietnamBbox, haversineKm } from '../geocoder'; + +describe('inVietnamBbox', () => { + it('accepts real Vietnamese points (incl. multi-city + islands)', () => { + expect(inVietnamBbox({ lat: 10.7737, lng: 106.7166 })).toBe(true); // Hồ Chí Minh + expect(inVietnamBbox({ lat: 10.3644, lng: 104.4435 })).toBe(true); // Mũi Nai, Hà Tiên + expect(inVietnamBbox({ lat: 9.9949, lng: 105.0917 })).toBe(true); // Rạch Giá + expect(inVietnamBbox({ lat: 9.68, lng: 104.36 })).toBe(true); // Nam Du + expect(inVietnamBbox({ lat: 21.0285, lng: 105.8542 })).toBe(true); // Hà Nội + }); + it('rejects foreign points', () => { + expect(inVietnamBbox({ lat: 48.8566, lng: 2.3522 })).toBe(false); // Paris + expect(inVietnamBbox({ lat: 13.7563, lng: 100.5018 })).toBe(false); // Bangkok + expect(inVietnamBbox({ lat: 1.3521, lng: 103.8198 })).toBe(false); // Singapore (below lat 8) + }); +}); + +describe('haversineKm', () => { + const KIEN_GIANG = { lat: 9.767, lng: 104.473 }; + it('measures regional multi-city distances as a few hundred km', () => { + // Real Kiên Giang-trip venues sit close to the destination centre. + expect(haversineKm(KIEN_GIANG, { lat: 10.378, lng: 104.489 })).toBeLessThan(120); // Hà Tiên + expect(haversineKm(KIEN_GIANG, { lat: 10.018, lng: 105.092 })).toBeLessThan(120); // Rạch Giá + expect(haversineKm(KIEN_GIANG, { lat: 10.741, lng: 106.619 })).toBeLessThan(450); // HCM (~260 km) + }); + it('flags cross-country mis-geocodes as far beyond the trip radius', () => { + // "Khách sạn River Hà Tiên" mis-resolving to Hà Nội / Quảng Ninh — must exceed 450 km. + expect(haversineKm(KIEN_GIANG, { lat: 21.028, lng: 105.858 })).toBeGreaterThan(450); // Hà Nội + expect(haversineKm(KIEN_GIANG, { lat: 20.951, lng: 107.084 })).toBeGreaterThan(450); // Quảng Ninh + }); +}); + +describe('geocode Photon request', () => { + beforeEach(() => { + try { localStorage.clear(); } catch { /* ignore */ } + }); + afterEach(() => vi.restoreAllMocks()); + + it('uses lang=en (never the unsupported lang=vi) and applies the bias', async () => { + const urls: string[] = []; + vi.stubGlobal('fetch', vi.fn(async (url: string) => { + urls.push(String(url)); + return { + ok: true, + json: async () => ({ + features: [{ geometry: { coordinates: [108.2279, 16.0612] }, properties: { name: 'Cầu Rồng', city: 'Đà Nẵng', country: 'Vietnam' } }], + }), + }; + }) as unknown as typeof fetch); + + const r = await geocode('Cầu Rồng', 'Đà Nẵng', { lat: 16.05, lng: 108.2 }); + expect(r).toMatchObject({ lat: 16.0612, lng: 108.2279 }); + + const photonUrl = urls.find((u) => u.includes('photon.komoot.io')); + expect(photonUrl).toBeDefined(); + expect(photonUrl).toContain('lang=en'); + expect(photonUrl).not.toContain('lang=vi'); + expect(photonUrl).toContain('lat=16.05'); + expect(photonUrl).toContain('lon=108.2'); + }); +}); diff --git a/services/__tests__/routing.test.ts b/services/__tests__/routing.test.ts new file mode 100644 index 0000000..130e579 --- /dev/null +++ b/services/__tests__/routing.test.ts @@ -0,0 +1,63 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; +import { buildOsrmUrl, fetchRoadRoute } from '../routing'; + +afterEach(() => { + vi.restoreAllMocks(); +}); + +describe('buildOsrmUrl', () => { + it('encodes waypoints as lng,lat pairs joined by ";" (OSRM order, not lat,lng)', () => { + const url = buildOsrmUrl([ + { lat: 16.07, lng: 108.22 }, + { lat: 16.0, lng: 108.25 }, + ]); + expect(url).toContain('/driving/108.22,16.07;108.25,16'); + expect(url).toContain('overview=full'); + expect(url).toContain('geometries=geojson'); + }); +}); + +describe('fetchRoadRoute', () => { + it('returns the road geometry coordinates on success', async () => { + const coords: [number, number][] = [ + [108.22, 16.07], + [108.23, 16.05], + [108.25, 16.0], + ]; + vi.stubGlobal('fetch', vi.fn(async () => ({ + ok: true, + json: async () => ({ code: 'Ok', routes: [{ geometry: { coordinates: coords } }] }), + })) as unknown as typeof fetch); + + const out = await fetchRoadRoute([ + { lat: 16.07, lng: 108.22 }, + { lat: 16.0, lng: 108.25 }, + ]); + expect(out).toEqual(coords); + }); + + it('returns null when fewer than 2 points', async () => { + const f = vi.fn(); + vi.stubGlobal('fetch', f as unknown as typeof fetch); + expect(await fetchRoadRoute([{ lat: 16, lng: 108 }])).toBeNull(); + expect(f).not.toHaveBeenCalled(); + }); + + it('returns null on a non-ok response', async () => { + vi.stubGlobal('fetch', vi.fn(async () => ({ ok: false, json: async () => ({}) })) as unknown as typeof fetch); + const out = await fetchRoadRoute([ + { lat: 21.05, lng: 105.8 }, + { lat: 21.0, lng: 105.85 }, + ]); + expect(out).toBeNull(); + }); + + it('returns null when fetch throws', async () => { + vi.stubGlobal('fetch', vi.fn(async () => { throw new Error('network'); }) as unknown as typeof fetch); + const out = await fetchRoadRoute([ + { lat: 10.77, lng: 106.7 }, + { lat: 10.78, lng: 106.72 }, + ]); + expect(out).toBeNull(); + }); +}); diff --git a/services/__tests__/venueResolver.test.ts b/services/__tests__/venueResolver.test.ts index d87f361..aebf0b4 100644 --- a/services/__tests__/venueResolver.test.ts +++ b/services/__tests__/venueResolver.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest'; -import { buildTiktokQuery, computeBounds, resolveVenues } from '../venueResolver'; +import { buildTiktokQuery, computeBounds, resolveVenues, dayLocality } from '../venueResolver'; import type { ItineraryPlan } from '../../types'; const sampleItinerary: ItineraryPlan = { @@ -82,6 +82,26 @@ describe('computeBounds', () => { }); }); +describe('dayLocality', () => { + it('extracts the locality before a tagline separator', () => { + expect(dayLocality('Hà Tiên - Chốn non nước hữu tình')).toBe('Hà Tiên'); + expect(dayLocality('Quần đảo Nam Du – Biển xanh gọi mời')).toBe('Quần đảo Nam Du'); + expect(dayLocality('Rạch Giá: về lại đất liền')).toBe('Rạch Giá'); + }); + it('strips a leading "Ngày N" prefix', () => { + expect(dayLocality('Ngày 1: Đà Lạt mộng mơ')).toBe('Đà Lạt mộng mơ'); + expect(dayLocality('Ngày 2 - Hội An')).toBe('Hội An'); + }); + it('returns the whole title when there is no separator', () => { + expect(dayLocality('Hà Nội')).toBe('Hà Nội'); + }); + it('returns null for empty/missing titles', () => { + expect(dayLocality(undefined)).toBeNull(); + expect(dayLocality('')).toBeNull(); + expect(dayLocality(' ')).toBeNull(); + }); +}); + describe('buildTiktokQuery', () => { it('builds URL-encoded search', () => { const q = buildTiktokQuery('Cà phê 6am', 'Đà Lạt'); diff --git a/services/geocoder.ts b/services/geocoder.ts index 5ffb2d8..5a389a5 100644 --- a/services/geocoder.ts +++ b/services/geocoder.ts @@ -59,6 +59,13 @@ function cacheKey(query: string, destination: string): string { return `${query.toLowerCase().trim()}|${destination.toLowerCase().trim()}`; } +function cacheResult(key: string, result: GeocodeResult): GeocodeResult { + const fresh = readCache(); + fresh[key] = { ...result, ts: Date.now() }; + writeCache(fresh); + return result; +} + function sleep(ms: number): Promise { return new Promise((resolve) => setTimeout(resolve, ms)); } @@ -127,9 +134,12 @@ function buildQueryCandidates(venue: string, destination: string): string[] { return Array.from(new Set(candidates.filter(Boolean))); } -async function tryPhoton(query: string, osmTag?: string): Promise { +async function tryPhoton(query: string, osmTag?: string, bias?: { lat: number; lng: number }): Promise { const tagParam = osmTag ? `&osm_tag=${encodeURIComponent(osmTag)}` : ''; - const url = `${PHOTON_BASE}?q=${encodeURIComponent(query)}&limit=1&lang=vi${tagParam}`; + // Photon only supports lang = default|de|en|fr (lang=vi → HTTP 400 broke every lookup). The optional + // lat/lon bias (the trip's destination centre) disambiguates same-named places (e.g. "Nam Du"). + const biasParam = bias ? `&lat=${bias.lat}&lon=${bias.lng}` : ''; + const url = `${PHOTON_BASE}?q=${encodeURIComponent(query)}&limit=1&lang=en${tagParam}${biasParam}`; try { const res = await fetch(url, { headers: { Accept: 'application/json' } }); if (!res.ok) return null; @@ -183,7 +193,28 @@ function osmTagForVenue(venue: string): string | undefined { return undefined; } -export async function geocode(venue: string, destination: string): Promise { +/** Vietnam bounding box (incl. offshore islands) — used to reject foreign/wrong geocode matches. */ +export function inVietnamBbox(p: { lat: number; lng: number }): boolean { + return p.lat >= 8 && p.lat <= 24 && p.lng >= 102 && p.lng <= 118; +} + +/** Great-circle distance in km between two lat/lng points. */ +export function haversineKm(a: { lat: number; lng: number }, b: { lat: number; lng: number }): number { + const R = 6371; + const toRad = (d: number) => (d * Math.PI) / 180; + const dLat = toRad(b.lat - a.lat); + const dLng = toRad(b.lng - a.lng); + const s = + Math.sin(dLat / 2) ** 2 + + Math.cos(toRad(a.lat)) * Math.cos(toRad(b.lat)) * Math.sin(dLng / 2) ** 2; + return R * 2 * Math.asin(Math.sqrt(s)); +} + +export async function geocode( + venue: string, + destination: string, + bias?: { lat: number; lng: number }, +): Promise { const trimmed = venue.trim(); if (!trimmed) return null; @@ -204,34 +235,19 @@ export async function geocode(venue: string, destination: string): Promise, + items: Array<{ venue: string; destination: string; bias?: { lat: number; lng: number } }>, onProgress?: (done: number, total: number) => void, + fallbackBias?: { lat: number; lng: number }, ): Promise> { const results = new Map(); let done = 0; - const unique: Array<{ venue: string; destination: string; key: string }> = []; + const unique: Array<{ venue: string; destination: string; bias?: { lat: number; lng: number }; key: string }> = []; const seen = new Set(); for (const item of items) { const k = cacheKey(item.venue, item.destination); @@ -278,7 +290,7 @@ export async function geocodeBatch( while (cursor < unique.length) { const idx = cursor++; const item = unique[idx]; - const r = await geocode(item.venue, item.destination); + const r = await geocode(item.venue, item.destination, item.bias ?? fallbackBias); results.set(item.key, r); done++; onProgress?.(done, unique.length); @@ -292,10 +304,12 @@ export async function geocodeBatch( export function jitterAround( center: { lat: number; lng: number }, index: number, - radius = 0.005, + radius = 0.006, ): { lat: number; lng: number } { - const angle = (index * 137.5 * Math.PI) / 180; - const r = radius * (1 + (index % 3) * 0.3); + // Sequential outward spiral: consecutive fallback points (in schedule order) sit next to each + // other, so the connecting line reads as a clean ordered path instead of a crossing "sunflower". + const angle = index * 0.6; // ~34° step + const r = radius * (1 + index * 0.16); return { lat: center.lat + Math.sin(angle) * r, lng: center.lng + Math.cos(angle) * r, diff --git a/services/routing.ts b/services/routing.ts new file mode 100644 index 0000000..dc68b7f --- /dev/null +++ b/services/routing.ts @@ -0,0 +1,60 @@ +// Road-following routing via the public OSRM demo server. Returns the real road geometry between +// ordered waypoints so the trip map can draw an accurate route instead of a straight line. +// Fails soft (returns null) — callers fall back to a straight line. + +export interface LatLng { + lat: number; + lng: number; +} + +const OSRM_BASE = 'https://router.project-osrm.org/route/v1/driving/'; +const MAX_WAYPOINTS = 25; // OSRM demo limit + +interface OsrmResponse { + code?: string; + routes?: Array<{ geometry?: { coordinates?: [number, number][] } }>; +} + +/** Builds the OSRM URL. Coordinates are `lng,lat` pairs joined by `;` (OSRM order, NOT lat,lng). */ +export function buildOsrmUrl(points: LatLng[]): string { + const coords = points.map((p) => `${p.lng},${p.lat}`).join(';'); + return `${OSRM_BASE}${coords}?overview=full&geometries=geojson`; +} + +const cache = new Map(); + +function cacheKey(points: LatLng[]): string { + return points.map((p) => `${p.lng.toFixed(5)},${p.lat.toFixed(5)}`).join('|'); +} + +/** + * Fetches the road geometry connecting `points` in order. + * @returns array of `[lng, lat]` positions for the route line, or `null` on any failure / <2 points. + */ +export async function fetchRoadRoute(points: LatLng[]): Promise<[number, number][] | null> { + if (!Array.isArray(points) || points.length < 2) return null; + const pts = points.slice(0, MAX_WAYPOINTS); + + const key = cacheKey(pts); + if (cache.has(key)) return cache.get(key) ?? null; + + try { + const res = await fetch(buildOsrmUrl(pts), { headers: { Accept: 'application/json' } }); + if (!res.ok) { + cache.set(key, null); + return null; + } + const data = (await res.json()) as OsrmResponse; + const coords = data.routes?.[0]?.geometry?.coordinates; + if (!Array.isArray(coords) || coords.length < 2) { + cache.set(key, null); + return null; + } + cache.set(key, coords); + return coords; + } catch (err) { + console.warn('[routing] OSRM request failed', err); + cache.set(key, null); + return null; + } +} diff --git a/services/venueResolver.ts b/services/venueResolver.ts index 5a49c83..684348f 100644 --- a/services/venueResolver.ts +++ b/services/venueResolver.ts @@ -51,6 +51,22 @@ export function resolveVenues(itinerary: ItineraryPlan): ResolvedVenue[] { return venues; } +// A day title is usually "Locality – tagline" (e.g. "Hà Tiên - Chốn non nước hữu tình", +// "Quần đảo Nam Du – Biển xanh gọi mời", "Rạch Giá: về lại đất liền"), sometimes prefixed with +// "Ngày N". We extract the day's place name and geocode it as a per-day anchor so each venue is +// biased to its own town rather than one trip-wide centre. +const DAY_PREFIX_RE = /^(ngày|day)\s*\d+\s*[:.\-–—]?\s*/i; +// Split off a trailing tagline: " : tagline" (colon may have no leading space) or " - tagline". +const TAGLINE_SEP_RE = /\s*:\s+|\s+[-–—]\s+/; + +export function dayLocality(title: string | undefined): string | null { + if (!title) return null; + const base = title.replace(DAY_PREFIX_RE, '').trim() || title.trim(); + const head = base.split(TAGLINE_SEP_RE)[0]?.trim(); + const locality = head || base; + return locality.length >= 2 ? locality : null; +} + export function buildTiktokQuery(venueName: string, destination: string): string { const cleaned = venueName.replace(/["']/g, '').trim(); const query = `${cleaned} ${destination}`.trim(); From b4c7698ee626b2e245651c42cdf1bddfe9bfcf24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ho=C3=A0i=20Nh=E1=BB=9B?= Date: Mon, 15 Jun 2026 22:09:48 +0700 Subject: [PATCH 2/8] chore(edge-proxy): wire deployed Worker (KV ids, CORS origins) + VITE_EDGE_PROXY_URL and clear backend-not-configured guard --- .env.example | 6 +++++- services/edgeProxyClient.ts | 22 ++++++++++++++++++++-- workers/edge-proxy/wrangler.toml | 8 ++++---- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/.env.example b/.env.example index 5d04ba4..9c123ef 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,8 @@ -VITE_EDGE_PROXY_URL=https://api.moodtrip.app +# URL of the deployed edge-proxy Cloudflare Worker (holds the Gemini key server-side). +# Set this in your host (e.g. Vercel) build env. In local dev it can stay empty — the Vite +# devEdgeProxy middleware serves /v1/* on the same origin. Example after `wrangler deploy`: +# VITE_EDGE_PROXY_URL=https://moodtrip-edge-proxy..workers.dev +VITE_EDGE_PROXY_URL=https://moodtrip-edge-proxy.remalw2019.workers.dev VITE_SUPABASE_URL= VITE_SUPABASE_ANON_KEY= VITE_SENTRY_DSN= diff --git a/services/edgeProxyClient.ts b/services/edgeProxyClient.ts index 8b86c3a..fc8b84d 100644 --- a/services/edgeProxyClient.ts +++ b/services/edgeProxyClient.ts @@ -2,8 +2,12 @@ import { getSupabaseAccessToken } from './authSession'; const VITE_ENV = (typeof import.meta !== 'undefined' ? (import.meta as { env?: Record }).env : undefined) || {}; const IS_DEV = Boolean(VITE_ENV.DEV); -const CONFIGURED_PROXY_URL = typeof VITE_ENV.VITE_EDGE_PROXY_URL === 'string' ? (VITE_ENV.VITE_EDGE_PROXY_URL as string) : ''; -const EDGE_PROXY_URL = CONFIGURED_PROXY_URL || (IS_DEV ? '' : 'https://api.moodtrip.app'); +const CONFIGURED_PROXY_URL = typeof VITE_ENV.VITE_EDGE_PROXY_URL === 'string' ? (VITE_ENV.VITE_EDGE_PROXY_URL as string).trim() : ''; +// In dev, an empty base means same-origin (the Vite devEdgeProxy middleware serves /v1/*). +// In production there is no such middleware, so the backend MUST be configured via +// VITE_EDGE_PROXY_URL at build time. We deliberately do NOT fall back to a hard-coded domain — +// a stale/placeholder domain produced a cryptic ERR_NAME_NOT_RESOLVED. See assertProxyConfigured(). +const EDGE_PROXY_URL = CONFIGURED_PROXY_URL || ''; const ANON_TOKEN_LS_KEY = 'moodtrip_anon_token_v1'; const ANON_TOKEN_EXPIRY_LS_KEY = 'moodtrip_anon_token_expiry_v1'; @@ -26,6 +30,18 @@ export class EdgeProxyError extends Error { } } +// Fail fast with an actionable message when the backend isn't wired up in a hosted build, +// instead of letting fetch() surface a raw DNS/network error. +function assertProxyConfigured(): void { + if (!IS_DEV && !EDGE_PROXY_URL) { + throw new EdgeProxyError( + 'Backend chưa được cấu hình: thiếu VITE_EDGE_PROXY_URL (URL của edge-proxy Worker) trong môi trường build của host.', + 'PROXY_NOT_CONFIGURED', + 0, + ); + } +} + function readStoredToken(): string | null { try { const token = localStorage.getItem(ANON_TOKEN_LS_KEY); @@ -52,6 +68,7 @@ function storeToken(token: string, expiresInSeconds: number): void { } async function fetchAnonToken(): Promise { + assertProxyConfigured(); const res = await fetch(`${EDGE_PROXY_URL}/v1/anon-token`, { method: 'POST', credentials: 'omit', @@ -107,6 +124,7 @@ export async function generate( contents: GeminiContent[], opts: GenerateOptions = {}, ): Promise { + assertProxyConfigured(); let token = await getAuthToken(opts.supabaseToken); const doFetch = async (bearer: string): Promise => { diff --git a/workers/edge-proxy/wrangler.toml b/workers/edge-proxy/wrangler.toml index a194f39..e9375ad 100644 --- a/workers/edge-proxy/wrangler.toml +++ b/workers/edge-proxy/wrangler.toml @@ -16,14 +16,14 @@ compatibility_flags = ["nodejs_compat"] [[kv_namespaces]] binding = "RATE_LIMIT" -id = "REPLACE_WITH_KV_ID_FROM_WRANGLER_OUTPUT" +id = "33da0a06fcae40709d4caae6bdee7266" [[kv_namespaces]] binding = "SPEND_TRACKER" -id = "REPLACE_WITH_KV_ID_FROM_WRANGLER_OUTPUT" +id = "f65f1c406af24dc49a4765bdeb2a07dc" [vars] -ALLOWED_ORIGINS = "https://moodtrip.app,https://moodtripv2.vercel.app,http://localhost:5173" +ALLOWED_ORIGINS = "https://moodtrip.hoainho.info,https://moodtrip.app,https://moodtripv2.vercel.app,http://localhost:5173" GEMINI_MODEL = "gemini-2.5-flash" GEMINI_MODEL_LITE = "gemini-2.5-flash-lite" SUPABASE_URL = "https://your-project.supabase.co" @@ -48,7 +48,7 @@ GEMINI_FLASH_LITE_OUTPUT_USD_PER_MTOK = "0.40" # routes = [{ pattern = "api.moodtrip.app/*", custom_domain = true }] [env.production.vars] -ALLOWED_ORIGINS = "https://moodtrip.app,https://moodtripv2.vercel.app" +ALLOWED_ORIGINS = "https://moodtrip.hoainho.info,https://moodtrip.app,https://moodtripv2.vercel.app" DAILY_SPEND_LIMIT_USD = "80" [observability] From 6a12bc2ee827c11390e31796fb6e2022d47f19d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ho=C3=A0i=20Nh=E1=BB=9B?= Date: Tue, 16 Jun 2026 21:28:48 +0700 Subject: [PATCH 3/8] feat(edge-proxy): route generation through OpenAI-compatible proxy (proxy.hoainho.info) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Worker forwards /v1/generate to the proxy via a Gemini⇄OpenAI adapter (LLM_PROVIDER switch, key server-side) to bypass Gemini's Vietnam geo-block. Frontend unchanged. +10 adapter tests. --- workers/edge-proxy/.dev.vars.example | 2 + workers/edge-proxy/src/index.ts | 6 +- workers/edge-proxy/src/llmProxy.ts | 121 +++++++++++++++++++++++ workers/edge-proxy/src/types.ts | 9 ++ workers/edge-proxy/test/llmProxy.test.ts | 98 ++++++++++++++++++ workers/edge-proxy/vitest.config.ts | 6 ++ workers/edge-proxy/wrangler.toml | 35 ++++++- 7 files changed, 273 insertions(+), 4 deletions(-) create mode 100644 workers/edge-proxy/src/llmProxy.ts create mode 100644 workers/edge-proxy/test/llmProxy.test.ts diff --git a/workers/edge-proxy/.dev.vars.example b/workers/edge-proxy/.dev.vars.example index 58aa92f..3cc97e0 100644 --- a/workers/edge-proxy/.dev.vars.example +++ b/workers/edge-proxy/.dev.vars.example @@ -2,3 +2,5 @@ GEMINI_API_KEY=your-new-gemini-key-here JWT_SIGNING_SECRET=generate-with-openssl-rand-base64-32 SUPABASE_JWT_SECRET=from-supabase-dashboard-after-phase-0b INTERNAL_MONITOR_TOKEN=generate-with-openssl-rand-base64-32 +# Bearer token for proxy.hoainho.info (only needed when LLM_PROVIDER="proxy") +LLM_PROXY_KEY=your-proxy-bearer-token-here diff --git a/workers/edge-proxy/src/index.ts b/workers/edge-proxy/src/index.ts index bca76f9..2e0944e 100644 --- a/workers/edge-proxy/src/index.ts +++ b/workers/edge-proxy/src/index.ts @@ -6,6 +6,7 @@ import { mintAnonToken, verifyToken } from './jwt'; import { consumeQuota } from './rateLimit'; import { addSpend, estimateCostUsd, readSpend } from './spendTracker'; import { callGemini } from './gemini'; +import { callLlmProxy } from './llmProxy'; import { fetchPublicTripBySlug } from './supabaseRest'; import { buildRecapCardJsx } from './recapCard'; @@ -72,7 +73,10 @@ app.post('/v1/generate', async (c) => { return c.json({ error: 'Invalid JSON body', code: 'BAD_REQUEST' }, 400); } - const result = await callGemini(c.env, reqJson as Parameters[1]); + const useProxy = (c.env.LLM_PROVIDER ?? 'gemini') === 'proxy'; + const result = useProxy + ? await callLlmProxy(c.env, reqJson as Parameters[1]) + : await callGemini(c.env, reqJson as Parameters[1]); if (result.status >= 200 && result.status < 300) { const cost = estimateCostUsd(c.env, result.model, result.promptTokens, result.outputTokens); diff --git a/workers/edge-proxy/src/llmProxy.ts b/workers/edge-proxy/src/llmProxy.ts new file mode 100644 index 0000000..b8a5fbc --- /dev/null +++ b/workers/edge-proxy/src/llmProxy.ts @@ -0,0 +1,121 @@ +import type { Env, GenerateRequest, GenerateResponse } from './types'; +import type { GeminiCallResult } from './gemini'; + +// Adapter: the MoodTrip frontend speaks Gemini's native generateContent shape, but +// proxy.hoainho.info is an OpenAI-compatible server (POST /v1/chat/completions). This module +// translates Gemini request -> OpenAI request, and OpenAI response -> the Gemini-shaped +// GenerateResponse the rest of the app already parses. The bearer key stays server-side here. + +interface OpenAiMessage { + role: 'system' | 'user' | 'assistant'; + content: string; +} + +interface GeminiPart { + text?: string; +} + +interface GeminiContent { + role?: string; + parts?: GeminiPart[]; +} + +interface OpenAiResponse { + choices?: Array<{ message?: { content?: string } }>; + usage?: { prompt_tokens?: number; completion_tokens?: number; total_tokens?: number }; +} + +function partsToText(parts: GeminiPart[] | undefined): string { + if (!Array.isArray(parts)) return ''; + return parts + .map((p) => p?.text ?? '') + .filter(Boolean) + .join('\n'); +} + +/** Gemini contents (role user|model) + systemInstruction -> OpenAI messages (system|user|assistant). */ +export function toOpenAiMessages(systemInstruction: unknown, contents: unknown): OpenAiMessage[] { + const messages: OpenAiMessage[] = []; + const sysText = partsToText((systemInstruction as GeminiContent | undefined)?.parts); + if (sysText) messages.push({ role: 'system', content: sysText }); + + const arr = Array.isArray(contents) ? contents : contents ? [contents] : []; + for (const c of arr as GeminiContent[]) { + const role: 'user' | 'assistant' = c?.role === 'model' ? 'assistant' : 'user'; + const text = partsToText(c?.parts); + if (text) messages.push({ role, content: text }); + } + return messages; +} + +function modelFor(env: Env, req: GenerateRequest): string { + return req.model === 'flash-lite' + ? env.LLM_PROXY_MODEL_LITE || env.LLM_PROXY_MODEL || '' + : env.LLM_PROXY_MODEL || env.LLM_PROXY_MODEL_LITE || ''; +} + +export function buildOpenAiRequest(env: Env, req: GenerateRequest): Record { + const cfg = (req.generationConfig ?? {}) as Record; + const body: Record = { + model: modelFor(env, req), + messages: toOpenAiMessages(req.systemInstruction, req.contents), + }; + if (typeof cfg.temperature === 'number') body.temperature = cfg.temperature; + if (typeof cfg.maxOutputTokens === 'number') body.max_tokens = cfg.maxOutputTokens; + // Ask for strict JSON when the app does. Toggleable: some models/proxies reject response_format. + const jsonMode = (env.LLM_PROXY_JSON_MODE ?? 'true') !== 'false'; + if (jsonMode && cfg.responseMimeType === 'application/json') { + body.response_format = { type: 'json_object' }; + } + return body; +} + +/** Some models wrap JSON in a ```json ... ``` fence despite being asked not to — strip it. */ +export function stripJsonFences(text: string): string { + const t = text.trim(); + const m = t.match(/^```[a-zA-Z]*\s*\n?([\s\S]*?)\n?```$/); + const inner = m?.[1]; + return inner !== undefined ? inner.trim() : t; +} + +export function openAiToGemini(data: OpenAiResponse): GenerateResponse { + const content = data.choices?.[0]?.message?.content ?? ''; + const usage = data.usage ?? {}; + return { + candidates: [{ content: { parts: [{ text: stripJsonFences(content) }] } }], + usageMetadata: { + promptTokenCount: usage.prompt_tokens ?? 0, + candidatesTokenCount: usage.completion_tokens ?? 0, + totalTokenCount: usage.total_tokens ?? 0, + }, + }; +} + +export async function callLlmProxy(env: Env, req: GenerateRequest): Promise { + const model = req.model === 'flash-lite' ? 'flash-lite' : 'flash'; + const base = (env.LLM_PROXY_URL || '').replace(/\/+$/, ''); + const res = await fetch(`${base}/v1/chat/completions`, { + method: 'POST', + headers: { + 'content-type': 'application/json', + authorization: `Bearer ${env.LLM_PROXY_KEY ?? ''}`, + }, + body: JSON.stringify(buildOpenAiRequest(env, req)), + }); + + const raw = (await res.json().catch(() => ({}))) as OpenAiResponse; + if (!res.ok) { + // Surface the proxy's real error/status to the client instead of a fake 200. + return { body: raw as unknown as GenerateResponse, status: res.status, promptTokens: 0, outputTokens: 0, model }; + } + + const body = openAiToGemini(raw); + const usage = body.usageMetadata ?? {}; + return { + body, + status: res.status, + promptTokens: usage.promptTokenCount ?? 0, + outputTokens: usage.candidatesTokenCount ?? 0, + model, + }; +} diff --git a/workers/edge-proxy/src/types.ts b/workers/edge-proxy/src/types.ts index 840f11c..5d0a902 100644 --- a/workers/edge-proxy/src/types.ts +++ b/workers/edge-proxy/src/types.ts @@ -23,6 +23,15 @@ export interface Env { GEMINI_FLASH_OUTPUT_USD_PER_MTOK: string; GEMINI_FLASH_LITE_INPUT_USD_PER_MTOK: string; GEMINI_FLASH_LITE_OUTPUT_USD_PER_MTOK: string; + + // LLM backend selection + OpenAI-compatible proxy (proxy.hoainho.info). Optional: when + // LLM_PROVIDER !== "proxy" the Worker calls Google Gemini directly (default behaviour). + LLM_PROVIDER?: string; // "gemini" (default) | "proxy" + LLM_PROXY_URL?: string; // e.g. https://proxy.hoainho.info + LLM_PROXY_KEY?: string; // bearer token — set via `wrangler secret put`, never committed + LLM_PROXY_MODEL?: string; // model id mapped from "flash" + LLM_PROXY_MODEL_LITE?: string; // model id mapped from "flash-lite" + LLM_PROXY_JSON_MODE?: string; // "true" (default) | "false" — send response_format json_object } export type Tier = 'anonymous' | 'free' | 'paid'; diff --git a/workers/edge-proxy/test/llmProxy.test.ts b/workers/edge-proxy/test/llmProxy.test.ts new file mode 100644 index 0000000..1584565 --- /dev/null +++ b/workers/edge-proxy/test/llmProxy.test.ts @@ -0,0 +1,98 @@ +import { describe, it, expect } from 'vitest'; +import { + toOpenAiMessages, + buildOpenAiRequest, + stripJsonFences, + openAiToGemini, +} from '../src/llmProxy'; +import type { Env, GenerateRequest } from '../src/types'; + +const env = { + LLM_PROXY_URL: 'https://proxy.hoainho.info', + LLM_PROXY_MODEL: 'big-model', + LLM_PROXY_MODEL_LITE: 'lite-model', + LLM_PROXY_JSON_MODE: 'true', +} as Env; + +describe('toOpenAiMessages', () => { + it('maps systemInstruction → system and contents (user/model → user/assistant)', () => { + const msgs = toOpenAiMessages( + { role: 'system', parts: [{ text: 'You are Mơ.' }] }, + [ + { role: 'user', parts: [{ text: 'Plan a trip' }] }, + { role: 'model', parts: [{ text: 'Sure' }] }, + ], + ); + expect(msgs).toEqual([ + { role: 'system', content: 'You are Mơ.' }, + { role: 'user', content: 'Plan a trip' }, + { role: 'assistant', content: 'Sure' }, + ]); + }); + + it('joins multiple parts and skips empty ones; tolerates a single content object', () => { + const msgs = toOpenAiMessages(undefined, { role: 'user', parts: [{ text: 'a' }, { text: 'b' }] }); + expect(msgs).toEqual([{ role: 'user', content: 'a\nb' }]); + }); +}); + +describe('buildOpenAiRequest', () => { + it('maps model, config, and json response_format', () => { + const req: GenerateRequest = { + model: 'flash', + contents: [{ role: 'user', parts: [{ text: 'hi' }] }], + generationConfig: { temperature: 0.7, maxOutputTokens: 8192, responseMimeType: 'application/json' }, + }; + const body = buildOpenAiRequest(env, req); + expect(body.model).toBe('big-model'); + expect(body.temperature).toBe(0.7); + expect(body.max_tokens).toBe(8192); + expect(body.response_format).toEqual({ type: 'json_object' }); + }); + + it('uses the lite model id for flash-lite', () => { + const body = buildOpenAiRequest(env, { model: 'flash-lite', contents: [] }); + expect(body.model).toBe('lite-model'); + }); + + it('omits response_format when JSON mode is disabled', () => { + const body = buildOpenAiRequest( + { ...env, LLM_PROXY_JSON_MODE: 'false' } as Env, + { model: 'flash', contents: [], generationConfig: { responseMimeType: 'application/json' } }, + ); + expect(body.response_format).toBeUndefined(); + }); +}); + +describe('stripJsonFences', () => { + it('removes ```json fences', () => { + expect(stripJsonFences('```json\n{"a":1}\n```')).toBe('{"a":1}'); + }); + it('removes bare ``` fences', () => { + expect(stripJsonFences('```\n{"a":1}\n```')).toBe('{"a":1}'); + }); + it('leaves unfenced JSON untouched', () => { + expect(stripJsonFences('{"a":1}')).toBe('{"a":1}'); + }); +}); + +describe('openAiToGemini', () => { + it('maps choices[0].message.content + usage into the Gemini shape', () => { + const out = openAiToGemini({ + choices: [{ message: { content: '```json\n{"destination":"X"}\n```' } }], + usage: { prompt_tokens: 100, completion_tokens: 200, total_tokens: 300 }, + }); + expect(out.candidates?.[0]?.content?.parts?.[0]?.text).toBe('{"destination":"X"}'); + expect(out.usageMetadata).toEqual({ + promptTokenCount: 100, + candidatesTokenCount: 200, + totalTokenCount: 300, + }); + }); + + it('defaults to empty text / zero usage on a malformed response', () => { + const out = openAiToGemini({}); + expect(out.candidates?.[0]?.content?.parts?.[0]?.text).toBe(''); + expect(out.usageMetadata?.totalTokenCount).toBe(0); + }); +}); diff --git a/workers/edge-proxy/vitest.config.ts b/workers/edge-proxy/vitest.config.ts index beef2d0..f703818 100644 --- a/workers/edge-proxy/vitest.config.ts +++ b/workers/edge-proxy/vitest.config.ts @@ -12,6 +12,12 @@ export default defineWorkersConfig({ JWT_SIGNING_SECRET: 'test-jwt-secret-must-be-at-least-32-bytes-long-xx', SUPABASE_JWT_SECRET: 'test-supa-secret-must-be-at-least-32-bytes-long-xx', INTERNAL_MONITOR_TOKEN: 'test-internal-token', + // Pin test-relevant config so tests stay deterministic regardless of production + // wrangler.toml scaling knobs (e.g. raised daily limits, LLM_PROVIDER=proxy). + ANON_DAILY_LIMIT: '1', + FREE_DAILY_LIMIT: '3', + PAID_DAILY_LIMIT: '50', + LLM_PROVIDER: 'gemini', }, }, }, diff --git a/workers/edge-proxy/wrangler.toml b/workers/edge-proxy/wrangler.toml index e9375ad..b0c58cb 100644 --- a/workers/edge-proxy/wrangler.toml +++ b/workers/edge-proxy/wrangler.toml @@ -29,9 +29,9 @@ GEMINI_MODEL_LITE = "gemini-2.5-flash-lite" SUPABASE_URL = "https://your-project.supabase.co" SUPABASE_ANON_KEY = "set-via-wrangler-secret-or-env" DAILY_SPEND_LIMIT_USD = "80" -ANON_DAILY_LIMIT = "1" -FREE_DAILY_LIMIT = "3" -PAID_DAILY_LIMIT = "50" +ANON_DAILY_LIMIT = "50" +FREE_DAILY_LIMIT = "100" +PAID_DAILY_LIMIT = "500" JWT_ISSUER = "moodtrip-edge-proxy" JWT_AUDIENCE = "moodtrip-app" @@ -43,13 +43,42 @@ GEMINI_FLASH_OUTPUT_USD_PER_MTOK = "2.50" GEMINI_FLASH_LITE_INPUT_USD_PER_MTOK = "0.05" GEMINI_FLASH_LITE_OUTPUT_USD_PER_MTOK = "0.40" +# LLM backend: "proxy" → forward generation to the OpenAI-compatible proxy.hoainho.info +# (key held server-side as the LLM_PROXY_KEY secret); set "gemini" to fall back to direct Gemini. +LLM_PROVIDER = "proxy" +LLM_PROXY_URL = "https://proxy.hoainho.info" +# Model ids verified live against proxy.hoainho.info/v1/models (2026-06-16). +LLM_PROXY_MODEL = "gemini-2.5-flash" +LLM_PROXY_MODEL_LITE = "gemini-2.5-flash-lite" +LLM_PROXY_JSON_MODE = "true" + [env.production] # 🔴 HUMAN ACTION REQUIRED: add custom domain route after DNS is configured # routes = [{ pattern = "api.moodtrip.app/*", custom_domain = true }] [env.production.vars] +# NOTE: Cloudflare does NOT merge the top-level [vars] into a named env. Every var the +# Worker reads at runtime must be repeated here, or `wrangler deploy --env production` +# ships a Worker missing LLM_PROVIDER → it falls back to direct Gemini → geo-blocked in VN. ALLOWED_ORIGINS = "https://moodtrip.hoainho.info,https://moodtrip.app,https://moodtripv2.vercel.app" DAILY_SPEND_LIMIT_USD = "80" +GEMINI_MODEL = "gemini-2.5-flash" +GEMINI_MODEL_LITE = "gemini-2.5-flash-lite" +JWT_ISSUER = "moodtrip-edge-proxy" +JWT_AUDIENCE = "moodtrip-app" +ANON_DAILY_LIMIT = "50" +FREE_DAILY_LIMIT = "100" +PAID_DAILY_LIMIT = "500" +GEMINI_FLASH_INPUT_USD_PER_MTOK = "0.30" +GEMINI_FLASH_OUTPUT_USD_PER_MTOK = "2.50" +GEMINI_FLASH_LITE_INPUT_USD_PER_MTOK = "0.05" +GEMINI_FLASH_LITE_OUTPUT_USD_PER_MTOK = "0.40" +# LLM backend MUST stay "proxy" in production — direct Gemini is geo-blocked from Vietnam. +LLM_PROVIDER = "proxy" +LLM_PROXY_URL = "https://proxy.hoainho.info" +LLM_PROXY_MODEL = "gemini-2.5-flash" +LLM_PROXY_MODEL_LITE = "gemini-2.5-flash-lite" +LLM_PROXY_JSON_MODE = "true" [observability] enabled = true From 64f96749e872472509dafd8830305d15e2d64f1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ho=C3=A0i=20Nh=E1=BB=9B?= Date: Wed, 17 Jun 2026 21:04:18 +0700 Subject: [PATCH 4/8] docs(openspec): plan visual-experience initiative (harness + 3d + ui-layout) + parked device-local-persistence AC + E2E mapping + harness contract; normalized via deep-design (map-in-App, frameloop-vs-motion, card-pull-is-DOM, swiftshader baselines). --- .../changes/3d-experience-polish/design.md | 43 +++++++++++ .../changes/3d-experience-polish/proposal.md | 49 +++++++++++++ .../changes/3d-experience-polish/tasks.md | 35 +++++++++ .../device-local-persistence/design.md | 51 +++++++++++++ .../device-local-persistence/proposal.md | 44 ++++++++++++ .../changes/device-local-persistence/tasks.md | 34 +++++++++ .../changes/e2e-harness-upgrade/design.md | 71 +++++++++++++++++++ .../changes/e2e-harness-upgrade/proposal.md | 38 ++++++++++ openspec/changes/e2e-harness-upgrade/tasks.md | 28 ++++++++ .../ui-layout-readability-polish/design.md | 62 ++++++++++++++++ .../ui-layout-readability-polish/proposal.md | 45 ++++++++++++ .../ui-layout-readability-polish/tasks.md | 29 ++++++++ 12 files changed, 529 insertions(+) create mode 100644 openspec/changes/3d-experience-polish/design.md create mode 100644 openspec/changes/3d-experience-polish/proposal.md create mode 100644 openspec/changes/3d-experience-polish/tasks.md create mode 100644 openspec/changes/device-local-persistence/design.md create mode 100644 openspec/changes/device-local-persistence/proposal.md create mode 100644 openspec/changes/device-local-persistence/tasks.md create mode 100644 openspec/changes/e2e-harness-upgrade/design.md create mode 100644 openspec/changes/e2e-harness-upgrade/proposal.md create mode 100644 openspec/changes/e2e-harness-upgrade/tasks.md create mode 100644 openspec/changes/ui-layout-readability-polish/design.md create mode 100644 openspec/changes/ui-layout-readability-polish/proposal.md create mode 100644 openspec/changes/ui-layout-readability-polish/tasks.md diff --git a/openspec/changes/3d-experience-polish/design.md b/openspec/changes/3d-experience-polish/design.md new file mode 100644 index 0000000..692dfae --- /dev/null +++ b/openspec/changes/3d-experience-polish/design.md @@ -0,0 +1,43 @@ +# Design — 3D Experience Polish: Acceptance Criteria & E2E + +## Definition of Done (every story) +`tsc` clean · unit pass · `npm run build` OK · **0 console errors** when scenes mount · mapped E2E specs green · +bundle within budget · aesthetic items have a reviewed visual baseline. + +## Acceptance Criteria + +### 3D-V — Visual lift (aesthetic; visual-regression + human sign-off) +- **AC-V.1 Post-processing active**: `` with `` wraps the **two real R3F Canvases** — `PersonalWorldCanvas` and `NatureScene` (NOTE: `CardPullOnboarding` is framer-motion DOM, NOT a Canvas — its polish moved to `ui-layout-readability-polish`); dep pinned `@react-three/postprocessing@^3` (fiber 9.5 / three 0.183). `gl.toneMapping = ACESFilmicToneMapping` and `THREE.ColorManagement.enabled = true` (asserted via init/props). Emissive elements (lantern/lighthouse/rim) render as glow, confirmed against a reviewed swiftshader baseline. Numeric pass-targets (regression guard, not the gate): fog near ≈12, journey-arc opacity ≥0.45 / lineWidth ≥1.5, warm point light `#f59e0b`, indigo ambient `#1e3a5f`. +- **AC-V.2 Light/colour mood**: corporate-cyan fill (`#38bdf8`) replaced by warm-core (`~#f59e0b` point light) + indigo shadow (`~#1e3a5f`); verified by baseline. +- **AC-V.3 Atmospheric depth**: fog near plane pulled in (≈12) with daylight-driven colour; distant terrain visibly recedes; baseline. +- **AC-V.4 Metaphor visible**: JourneyArcs opacity ≥ 0.45 / lineWidth ≥ 1.5 (or animated); arcs clearly visible on mobile baseline. +- **AC-V.5 Camera + Float**: NatureScene camera reframed (horizon in lower third); island `Float` symmetric about y=0 (no orbit-pivot drift); baseline. +- **AC-V.6 Palette coherence**: no `purple-*` in 3D/world UI (mood tags → amber); card-pull burst has angle/colour jitter + a warm ambient source; baseline. +- **AC-V.7 Human sign-off**: a reviewer approves before/after screenshots; baselines committed via `test:e2e:update`. + +### 3D-P — Performance & robustness (measurable) +- **AC-P.1 Render pauses when not visible** (REVISED — `frameloop="demand"` dropped: it would freeze the perpetual auto-rotate/orbit/fog/fireflies that 3D-V enhances, and conflicts with `MeshReflectorMaterial`'s per-frame FBO). Keep `frameloop="always"` but **stop the loop when the work isn't seen**: render halts when the 3D modal is closed/unmounted, when the tab is hidden (`document.visibilitychange`), and when `prefers-reduced-motion` is set; dpr capped and fireflies throttled. Asserted: with the modal closed OR `emulateMedia({reducedMotion:'reduce'})`, `gl.info.render.frame` does not advance over a 1.5 s window (read via an `import.meta.env`-guarded `__r3fRenderCount` hook). +- **AC-P.2 No per-frame allocation**: no `new THREE.Color(` (or equivalent heap alloc) inside any `useFrame` (static check / lint rule). +- **AC-P.3 Reduced-motion**: with `emulateMedia({ reducedMotion: 'reduce' })`, idle 3D animation is paused/static; a live OS toggle is respected (subscription, not one-shot). +- **AC-P.4 WebGL fallback**: when WebGL is unavailable or context is lost, a graceful fallback UI renders (not blank, no crash); the `PersonalWorldScene` error boundary catches Three.js errors. +- **AC-P.5 Bundle budget**: `manualChunks` emits separate `three`/`drei`/`maplibre` chunks; **main entry chunk ≤ 600 KB gzipped** (build-size assertion). +- **AC-P.6 No leak**: opening then closing the PersonalWorld modal **10×** does not grow the JS heap unboundedly (CDP heap snapshot delta within a generous threshold; geometries/materials disposed). + +## E2E mapping + +| Spec file | Project | Covers | Key assertions | +|---|---|---|---| +| `e2e/three-d.spec.ts` | desktop + `@mobile` | P.1, P.3, P.4, P.6 + "0 console errors" | `freezeScene`; assert `gl.info.render.frame` does NOT advance when modal closed / `reducedMotion:reduce` (1.5 s window); reduced-motion → static; stub `HTMLCanvasElement.getContext('webgl')`→null → fallback text; open/close ×10 → heap delta bound | +| `e2e/visual-3d.spec.ts` | `chromium-visual` (swiftshader) | V.1–V.6 (3D only) | `freezeScene` then `toHaveScreenshot('personal-world.png')`, `toHaveScreenshot('nature-scene.png')` (card-pull baseline lives in ui-layout, not here) | +| (build) `scripts/check-bundle-size.mjs` | — | P.5 | parse `dist/assets/*`; assert main chunk ≤ budget + named vendor chunks exist | +| (static) eslint rule / grep test | — | P.2 | fail if `new THREE.Color(` appears within a `useFrame` body | + +**Determinism:** every 3D spec calls `freezeScene(page)` (reduced-motion + seeded RNG + settle) before +asserting/capturing. Visual specs run only under `chromium-visual` with `--use-gl=swiftshader`. + +## Notes / decisions +- New dep `@react-three/postprocessing` is approved in scope (needed for Bloom). +- Aesthetic AC are gated by **visual-regression baseline + reviewer sign-off**, NOT by automated pixel rules + beyond "diff vs approved baseline" — the harness can only catch *regressions from* an approved look. +- `__r3fRenderCount` is a dev/test-only hook (guarded by `import.meta.env`) so demand-rendering is testable. +- Bundle budget 600 KB gz is a starting target; tighten in `e2e-harness-upgrade` follow-up if achievable. diff --git a/openspec/changes/3d-experience-polish/proposal.md b/openspec/changes/3d-experience-polish/proposal.md new file mode 100644 index 0000000..8e529a1 --- /dev/null +++ b/openspec/changes/3d-experience-polish/proposal.md @@ -0,0 +1,49 @@ +# 3D Experience Polish (cảm quan + performance) + +## Why + +MoodTrip's 3D scenes (R3F: `PersonalWorldCanvas`, `NatureScene`, `PersonalWorldMonuments`, +`CardPullOnboarding`) are functional but read as "default three.js" and waste device resources. Two audits +(technical + aesthetic) found concrete gaps: + +- **Aesthetic**: no post-processing pipeline at all (`@react-three/postprocessing` absent), so high + `emissiveIntensity` lanterns/lighthouse render as flat chalk-white instead of glowing — the single biggest + "unreviewed" signal. The fill light is saturated corporate cyan (`#38bdf8`), fog has no depth (near plane + 30 vs terrain ~25), the core JourneyArcs metaphor is near-invisible (opacity 0.22), mood tags use an + unanchored purple, and the card-pull burst is a perfectly symmetric "spinner". +- **Technical**: 5 always-on `useFrame` loops at 60 fps with `frameloop="always"` (GPU/battery drain on a + static scene), ~600 `new THREE.Color()` allocations/sec causing GC microstutter, no WebGL availability + guard / `webglcontextlost` handler / error boundary on `PersonalWorldScene` (iOS context-loss crashes the + modal), one-shot `prefers-reduced-motion`, no `manualChunks` (three+drei in the 1 MB main bundle), and no + instancing for up to 25 monuments. + +These degrade both the intended dreamy travel mood and low-end mobile performance. + +## What Changes + +- **3D-V Visual lift**: add `@react-three/postprocessing` (`` + ACES tone mapping + + `ColorManagement.enabled`); replace corporate-cyan fill with a warm-core / indigo-shadow split; deepen fog + with daylight-driven color; raise JourneyArcs visibility; fix camera framing + symmetric `Float`; apply a + flatShading hierarchy (stylized nature vs polished cultural monuments); recolor unanchored purple → amber; + warm up the card-pull burst/ambient. +- **3D-P Performance & robustness**: keep `frameloop="always"` but **pause the loop when not seen** + (unmount/suspend on modal close, stop on tab `visibilitychange`, static under reduced-motion; cap dpr + + throttle fireflies) — NOT `frameloop="demand"`, which would freeze auto-rotate/orbit/fog and fight + `MeshReflectorMaterial`; hoist `THREE.Color` out of `useFrame`; WebGL guard + `webglcontextlost` + error + boundary on `PersonalWorldScene`; live `prefers-reduced-motion` subscription; `manualChunks` (regression + guard — three/drei/maplibre already auto-split); instancing for repeated monuments; dispose on unmount; + minor (sphere segments, AA). NOTE: card-pull polish moved to `ui-layout-readability-polish` (DOM, not 3D). + +## Impact + +- Affected code: `components/three/PersonalWorldCanvas.tsx`, `NatureScene.tsx`, `PersonalWorldMonuments.tsx`, + `components/PersonalWorldScene.tsx`, `vite.config.ts`, `index.tsx` (ColorManagement), + `package.json` (`@react-three/postprocessing@^3`). (CardPullOnboarding excluded — handled in ui-layout.) +- **Sequencing: this story runs BEFORE `ui-layout-readability-polish`** (harness → 3d → ui-layout) so the + ui scrims/baselines are tuned over the FINAL post-processed 3D, captured once. +- Risk lane: **medium** — visual changes are reviewer/visual-regression gated; perf/robustness changes are + measurable. Adds one dependency (`@react-three/postprocessing`, explicitly approved here). +- Runs on the harness in `e2e-harness-upgrade` (must land first), incl. the `chromium-visual` swiftshader + project for baselines. +- Aesthetic AC cannot be fully automated — they require **visual-regression baselines + human sign-off**; + CI gates only the measurable proxies. diff --git a/openspec/changes/3d-experience-polish/tasks.md b/openspec/changes/3d-experience-polish/tasks.md new file mode 100644 index 0000000..ecd7ad2 --- /dev/null +++ b/openspec/changes/3d-experience-polish/tasks.md @@ -0,0 +1,35 @@ +# Tasks — 3D Experience Polish + +## 1. Post-processing + colour management (3D-V) +- [ ] 1.1 Add dep `@react-three/postprocessing@^3` (verify fiber 9.5 / three 0.183 peer matrix FIRST); `` on the two real Canvases (PersonalWorldCanvas, NatureScene) +- [ ] 1.2 `gl={{ toneMapping: ACESFilmicToneMapping, toneMappingExposure }}`; `THREE.ColorManagement.enabled = true` in `index.tsx` +- [ ] 1.3 Replace cyan fill with warm-core point light + indigo ambient (`PersonalWorldCanvas.tsx:41`) +- [ ] 1.4 Fog depth + daylight colour (`NatureScene.tsx:532`, feed `DynamicFog`) +- [ ] 1.5 JourneyArcs visibility (opacity/width/animate) (`PersonalWorldCanvas.tsx:115`) +- [ ] 1.6 Camera reframe (`NatureScene.tsx:328`) + symmetric `Float` (`PersonalWorldCanvas.tsx:54`) +- [ ] 1.7 flatShading hierarchy on monuments (`PersonalWorldMonuments.tsx`); mood-tag purple→amber (`PersonalWorldScene.tsx:117`) +- [ ] 1.8 (MOVED to `ui-layout-readability-polish` — CardPullOnboarding is framer-motion DOM, not 3D) + +## 2. Render-pause + allocations (3D-P1/P2) +- [ ] 2.1 Keep `frameloop="always"` but PAUSE the loop when not seen: unmount/suspend Canvas when modal closed; stop on `document.visibilitychange` (hidden); fully static under `prefers-reduced-motion`; cap dpr; throttle fireflies. (NO `frameloop="demand"` — would freeze auto-rotate/orbit/fog + fight MeshReflectorMaterial.) +- [ ] 2.2 Hoist scratch `THREE.Color`/vectors to refs; `.set()` inside `useFrame`, no `new` per frame +- [ ] 2.3 Expose `import.meta.env`-guarded `__r3fRenderCount` (reads `gl.info.render.frame`) for the render-pause assertion; `freezeScene` must also disable `autoRotate` + +## 3. Robustness (3D-P3/P4/P6) +- [ ] 3.1 Live `prefers-reduced-motion` subscription (`PersonalWorldCanvas.tsx:20`); pause loops when reduced +- [ ] 3.2 WebGL availability guard + `webglcontextlost` via `onCreated`; fallback UI +- [ ] 3.3 Wrap `LazySceneCanvas` in `SceneErrorBoundary` (`PersonalWorldScene.tsx:173`) +- [ ] 3.4 Dispose geometries/materials/textures on unmount; verify with open/close ×10 heap check + +## 4. Bundle + minor (3D-P5 + low) +- [ ] 4.1 `vite.config.ts` `manualChunks`: `vendor-three` (three/fiber/drei), `vendor-map` (maplibre) +- [ ] 4.2 `scripts/check-bundle-size.mjs`: assert main ≤ 600 KB gz + vendor chunks exist +- [ ] 4.3 Instancing for repeated monument meshes (`PersonalWorldMonuments.tsx`) +- [ ] 4.4 Sphere segments 32→16; fireflies throttle/early-return; AA-vs-flatShading decision + +## 5. Validation (per `e2e-harness-upgrade`) +- [ ] 5.1 `npm run typecheck` clean; build OK; `check-bundle-size` passes +- [ ] 5.2 Static: no `new THREE.Color(` inside `useFrame` +- [ ] 5.3 E2E `e2e/three-d.spec.ts` (desktop+mobile): idle-render ≈ 0, reduced-motion static, WebGL fallback, heap bound, 0 console errors +- [ ] 5.4 Visual: seed `e2e/visual-3d.spec.ts` baselines under `chromium-visual` after **human aesthetic sign-off** +- [ ] 5.5 Review gate (fresh reviewer) — per-AC evidence; aesthetic items reference approved baselines diff --git a/openspec/changes/device-local-persistence/design.md b/openspec/changes/device-local-persistence/design.md new file mode 100644 index 0000000..e401271 --- /dev/null +++ b/openspec/changes/device-local-persistence/design.md @@ -0,0 +1,51 @@ +# Design — Device-Local Persistence: Acceptance Criteria & E2E + +## Definition of Done (every story) +`tsc` clean · unit pass · `npm run build` OK · no new console errors · mapped E2E specs green · no bundle-budget regression. + +## Acceptance Criteria + +### P1 — Quota-safe + compressed storage +- **AC-P1.1** Saving a trip then doing a **full page reload** → the trip is still present in the saved list. +- **AC-P1.2** The persisted `moodtrip_saved_itineraries_list` value is **compressed** (deflate-raw, not raw JSON) and decompresses losslessly to the original object. +- **AC-P1.3** When `localStorage.setItem` throws `QuotaExceededError`: a clear Vietnamese toast appears (e.g. "Bộ nhớ thiết bị đã đầy…"), the app does **not** crash, and **no** success affordance (confetti/"Đã lưu") is shown. +- **AC-P1.4** Pre-existing **uncompressed** saved entries still load after the change (read-time migration); no data loss on upgrade. + +### P2 — Remove dead cloud code +- **AC-P2.1** No `supabase*` import remains in the frontend source/bundle; `AuthModal`/`MigrationBanner`/`tripsApi` cloud fns are deleted. +- **AC-P2.2** `tsc` + `npm run build` + unit + existing E2E all pass after removal (no dangling refs). +- **AC-P2.3** No `SUPABASE_*` keys remain in `workers/edge-proxy/wrangler.toml`; the `/v1/og` route + `supabaseRest` are removed; worker tests pass. +- **AC-P2.4** Create-trip + save + share flows show **no regression** vs current behavior. + +### P3 — Export / Import +- **AC-P3.1** "Export" downloads a `.moodtrip.json` containing all saved trips; the file parses as valid JSON matching the documented schema (version + trips[]). +- **AC-P3.2** With storage cleared, "Import" of that file restores every trip into the saved list (visible after import). +- **AC-P3.3** Importing a malformed/incompatible file shows a friendly error and does not crash or partially corrupt existing data. +- **AC-P3.4** Round-trip (export → clear → import) yields byte-identical trip data (unit-asserted). + +### P4 — Saved-trips management UI +- **AC-P4.1** The saved list renders every stored trip with title + destination. +- **AC-P4.2** Delete removes the trip from the UI **and** from `localStorage`, persists across reload, and touches no network. + +### P5 — Share via URL-embed +- **AC-P5.1** "Share" produces a URL containing a compressed `?trip=` param; opening it in a **fresh browser context** renders the shared itinerary with no backend call. +- **AC-P5.2** A multi-day itinerary either stays under the practical URL limit (~8 KB) or the UI warns the user; verified by a unit size check. +- **AC-P5.3** The slug/OG share UI is gone — no path that 404s without a DB. + +## E2E mapping (specs run on the `e2e-harness-upgrade` harness, MOCK_ITINERARY) + +| Spec file | Covers | Key assertions | +|---|---|---| +| `e2e/persistence.spec.ts` | P1.1, P3, P4, P5 | generate→save→reload→present; export download → assert file JSON; clear+import→present; delete→absent after reload; capture `?trip=` URL → new context → renders | +| `e2e/save-quota.spec.ts` | P1.3 | `addInitScript` overrides `localStorage.setItem` to throw `QuotaExceededError` on the trips key → assert toast text + no confetti + app alive | +| (unit) `services/__tests__/dataExport.test.ts` | P3.4, P1.2, P1.4 | compress/decompress round-trip; export/import fidelity; uncompressed→compressed migration | +| (unit) `services/__tests__/shareService.test.ts` | P5.2 | encoded `?trip=` size bound; decode fidelity | +| existing `e2e/create-trip.spec.ts` | P2.4 | regression — still green after cloud removal | + +**Determinism:** all specs use `MOCK_ITINERARY` (deterministic Đà Lạt fixture) so generated content is stable; +`preacceptConsent` + `gotoHome` helpers reused. localStorage is cleared per test via a fresh context. + +## Notes / decisions +- Compression reuses `shareService.ts`'s `deflate-raw`; do **not** add a new dep. +- "Cross-device" = explicit user export/import file, not silent sync. This is the documented limitation. +- Removing `/v1/og` is safe: it depends on Supabase which is being removed; OG social cards are dropped (documented). diff --git a/openspec/changes/device-local-persistence/proposal.md b/openspec/changes/device-local-persistence/proposal.md new file mode 100644 index 0000000..04bbb6b --- /dev/null +++ b/openspec/changes/device-local-persistence/proposal.md @@ -0,0 +1,44 @@ +# Device-Local Persistence (serverless, no database) + +## Why + +MoodTrip is intentionally serverless with **no database**. The app already ships a full Supabase +accounts/cloud/sharing layer, but it is **dead in production**: `AuthModal`/`MigrationBanner` are never +mounted (`App.tsx` has no entry point → `useAuth()` always returns `user: null`), Supabase env vars are +unset, and `tripsApi` (`saveTrip`/`listOwnedTrips`/`forkTrip`/`deleteTrip`) plus slug-share + OG cards are +unreachable code that only adds confusion and a placeholder-secret footgun. Meanwhile the **real** save path +is localStorage-only and fragile: `App.tsx:408` writes `SAVED_ITINERARIES_LS_KEY` with no `try/catch`, so a +`QuotaExceededError` fires confetti + "saved" feedback while the trip is silently lost; itineraries are +stored raw (~80–150 KB each) risking iOS Safari's ~5 MB PWA eviction; and there is no cross-device story +because cloud is dead. + +Decision: **commit to device-local persistence as the official strategy.** Make localStorage robust, remove +the dead cloud code, and provide file-based export/import as the portability ("cross-device") answer. + +## What Changes + +- **P1 — Quota-safe + compressed storage**: wrap every `localStorage.setItem` in a quota-aware utility + (catch `QuotaExceededError` → clear Vietnamese toast, no false success); compress saved itineraries with + the existing `deflate-raw` codec in `shareService.ts` (~70% smaller); migrate existing uncompressed entries + on read. +- **P2 — Remove dead cloud code**: delete `AuthModal`, `MigrationBanner`, `tripsApi` cloud functions, + `supabaseClient`, `supabaseRest`, the `if (user)` auto-save branch, and all `SUPABASE_*` vars from the + Worker config. Strip the unreachable slug-share/OG path. +- **P3 — Export / Import**: expand the stub `services/dataExport.ts` into a real export (download a + `.moodtrip.json` of all saved trips) + import (restore on another device), with schema validation and + friendly rejection of malformed files. +- **P4 — Saved-trips management UI**: list saved trips (title/destination), delete (localStorage-only, + persists across reload), optional rename. +- **P5 — Share via URL-embed**: standardize on the DB-free `?trip=` compressed-URL share (works device-side); + warn when an itinerary is too large for the URL; remove the slug/OG share UI. + +## Impact + +- Affected code: `App.tsx` (save/delete/fork handlers, persistence), `constants.ts`, `services/dataExport.ts`, + `services/shareService.ts`, `components/ItineraryDisplay.tsx`, `components/Hero.tsx` (saved list); **deletions**: + `components/AuthModal.tsx`, `components/MigrationBanner.tsx`, `services/tripsApi.ts`, `services/supabaseClient.ts`, + `workers/edge-proxy/src/supabaseRest.ts` + `/v1/og` route + `SUPABASE_*` config. +- Risk lane: **medium** (touches the save path + deletes code) → validate:quick + unit + E2E (persistence specs) + + review gate before archive. +- Runs on the harness defined in `e2e-harness-upgrade` (must land first). +- No proxy/API change. Pure client + dead-code removal. diff --git a/openspec/changes/device-local-persistence/tasks.md b/openspec/changes/device-local-persistence/tasks.md new file mode 100644 index 0000000..c2104b5 --- /dev/null +++ b/openspec/changes/device-local-persistence/tasks.md @@ -0,0 +1,34 @@ +# Tasks — Device-Local Persistence + +## 1. Quota-safe + compressed storage (P1) +- [ ] 1.1 `services/safeStorage.ts`: `setItemSafe(key, value)` catching `QuotaExceededError` → returns false + caller toasts +- [ ] 1.2 Reuse `deflate-raw` codec from `shareService.ts`; store/read saved itineraries compressed +- [ ] 1.3 Read-time migration: detect uncompressed legacy value → load + re-save compressed +- [ ] 1.4 Wire `App.tsx:400-413` (handleSaveItineraryToList) + `ItineraryDisplay.tsx:62-68` through `setItemSafe`; toast on failure, gate confetti/"Đã lưu" on success only + +## 2. Remove dead cloud code (P2) +- [ ] 2.1 Delete `components/AuthModal.tsx`, `components/MigrationBanner.tsx` +- [ ] 2.2 Delete `services/tripsApi.ts`, `services/supabaseClient.ts`, remove `useAuth`/`if (user)` paths in `App.tsx` +- [ ] 2.3 Worker: remove `src/supabaseRest.ts`, `/v1/og` route, `SUPABASE_*` from `wrangler.toml` (both `[vars]` and `[env.production.vars]`) +- [ ] 2.4 Grep-verify no `supabase` import remains; fix all dangling refs until tsc/build clean + +## 3. Export / Import (P3) +- [ ] 3.1 Expand `services/dataExport.ts`: `exportTrips()` → Blob `.moodtrip.json` (version + trips[]); `importTrips(file)` with schema validation +- [ ] 3.2 UI: Export/Import buttons in the saved-trips view; friendly error on malformed import +- [ ] 3.3 Round-trip + migration unit tests in `dataExport.test.ts` + +## 4. Saved-trips management UI (P4) +- [ ] 4.1 Saved list (title/destination) from `SAVED_ITINERARIES_LS_KEY` +- [ ] 4.2 `handleDeleteItinerary`: remove from state + `setItemSafe`; verify localStorage-only + +## 5. Share URL-embed (P5) +- [ ] 5.1 Standardize Share on `?trip=` (shareService); warn when encoded size > ~8 KB +- [ ] 5.2 Remove slug/OG share UI + `publicShare`/`sharedTripRouter` dead paths +- [ ] 5.3 `shareService.test.ts`: size-bound + decode fidelity + +## 6. Validation (per `e2e-harness-upgrade`) +- [ ] 6.1 `npm run typecheck` clean; worker tests pass +- [ ] 6.2 Unit: dataExport round-trip/migration; shareService size +- [ ] 6.3 E2E: `e2e/persistence.spec.ts` + `e2e/save-quota.spec.ts` green; `create-trip.spec.ts` regression green +- [ ] 6.4 Bundle: build succeeds, no size regression from removals (expect shrink) +- [ ] 6.5 Review gate (fresh reviewer) — per-AC evidence diff --git a/openspec/changes/e2e-harness-upgrade/design.md b/openspec/changes/e2e-harness-upgrade/design.md new file mode 100644 index 0000000..8025c76 --- /dev/null +++ b/openspec/changes/e2e-harness-upgrade/design.md @@ -0,0 +1,71 @@ +# Design — E2E Harness Upgrade + +This document is the **harness contract** ("quy định harness"): how E2E runs for the device-local and 3D +changes. Feature specs MUST conform to these rules. + +## 1. Run profiles + +| Profile | Project | Webserver | Purpose | +|---|---|---|---| +| Functional | `chromium-desktop` (1280×900) | `MOCK_ITINERARY=1 npm run dev` | All non-`@visual` specs (persistence, 3D behavioural) | +| Mobile | `chromium-mobile` (Pixel 7 ≈ 412×915, `isMobile`, `hasTouch`) | same | Mobile-tagged AC (map height, 3D on small screen) | +| Visual | `chromium-visual` (1280×900, `--use-gl=swiftshader`) | same | `@visual` specs only (3D screenshot baselines) | + +- `fullyParallel: false`, `workers: 1` (unchanged — 3D + dev server are heavy). +- `MOCK_ITINERARY=1` stays the default so generation is **deterministic** (Đà Lạt fixture) — no live proxy + calls in CI. A separate live smoke test against the deployed Worker is out of scope here. + +## 2. Determinism rules (mandatory before any 3D assertion/screenshot) + +`freezeScene(page)` helper MUST be called before interacting with / capturing a 3D scene: +1. `await page.emulateMedia({ reducedMotion: 'reduce' })` — stops idle animation. +2. Seed RNG: `addInitScript` overriding `Math.random` with a fixed-seed PRNG (Fireflies/particles are random). +3. Wait for settle: `await page.waitForTimeout(600)` after mount, then assert the scene's render counter has + stopped advancing (see `frameloop="demand"` AC in 3d-experience-polish). + +## 3. Visual-regression policy + +- Use `await expect(page).toHaveScreenshot('.png', { maxDiffPixelRatio: 0.02, threshold: 0.25 })`. +- Software GL (`swiftshader`) is **required** for the visual project — hardware GL output differs per driver. +- Baselines live in `e2e/__screenshots__/`; committed to git. +- Seeding/updating baselines: `npm run test:e2e:update` — **only** after a human has visually reviewed the + rendered scene (aesthetic sign-off). Updating a baseline is a deliberate, reviewed act, never automatic. +- A failed visual diff in CI is **informational** (non-blocking) until baselines prove stable across ≥3 runs, + then promoted to a gate. +- **Baselines MUST be generated in the SAME container that runs CI** (Docker-pinned Playwright image), not a + dev Mac — font/Mesa/libc drift will otherwise diff on Linux CI. The human aesthetic sign-off approves the + **swiftshader** render (what CI sees), not the local hardware-GL render — they differ (Bloom/ACES float + precision diverges most under software GL). +- **drei ``/`` use their own internal RNG**, not always `Math.random` — seeding `Math.random` + in `freezeScene` may NOT fully determinize them. Verify empirically; keep `e2e-visual` non-blocking until proven. +- `freezeScene` MUST also disable `OrbitControls autoRotate` (PersonalWorldCanvas) — reduced-motion covers it + today, but state the dependency so the screenshot is static. + +## 4. CI gate matrix + +| Job | Specs | Blocking? | +|---|---|---| +| `e2e-functional` | three-d.spec (non-visual), layout.spec, a11y.spec, existing specs | **Yes (gate)** | +| `e2e-mobile` | `@mobile`-tagged | Yes (gate) | +| `e2e-visual` | visual-3d.spec | No (informational first), promote after ≥3 stable runs | + +(No `persistence.spec` — device-local-persistence is out of this ultragoal.) + +- Functional + mobile jobs `needs:` the existing `build` job; `build` itself gains `needs: [test-worker]` + (closes the unrelated gap where a red worker test didn't block build). + +## 5. Run commands (canonical) + +```bash +E2E_PORT=5180 CI=1 npm run test:e2e # functional + mobile, deterministic +E2E_PORT=5180 npm run test:e2e -- e2e/persistence.spec.ts +npm run test:e2e:visual # visual project (swiftshader) +npm run test:e2e:update # seed/update baselines (after visual sign-off) +``` + +## 6. Flake policy + +- `retries: 2` in CI (unchanged). A spec that needs >2 retries to pass is quarantined (`.fixme`) with an + issue, never left flaky-but-green. +- 3D heap/leak and idle-render assertions use generous thresholds (software GL timing varies); they catch + unbounded growth, not exact numbers. diff --git a/openspec/changes/e2e-harness-upgrade/proposal.md b/openspec/changes/e2e-harness-upgrade/proposal.md new file mode 100644 index 0000000..43eb0a9 --- /dev/null +++ b/openspec/changes/e2e-harness-upgrade/proposal.md @@ -0,0 +1,38 @@ +# E2E Harness Upgrade (device-local + 3D verification) + +## Why + +The device-local persistence and 3D-polish work cannot be verified by the current Playwright harness. +Today: a single Chromium **desktop** project (1280×900), a `MOCK_ITINERARY=1` dev webserver, **no +visual-regression**, and E2E is **not wired into CI** (`ci.yml` runs typecheck/unit/build only). To gate +the upcoming work we need (a) deterministic, GPU-independent 3D rendering so screenshots are stable, (b) a +**mobile viewport** project for the mobile AC (map height, 3D on low-end), (c) **visual-regression** +baselines for the aesthetic 3D items that cannot be asserted programmatically, and (d) a **CI gate** for the +functional specs. This change upgrades the harness only — it is the contract the two feature changes run +against. + +## What Changes + +- **Mobile project**: add a second Playwright project using a mobile viewport (Pixel 7 ≈ 412×915) alongside + the existing desktop Chromium, so mobile-specific AC run automatically. +- **Deterministic 3D**: launch Chromium with `--use-gl=swiftshader` (software GL) for the visual project so + 3D output is identical across machines/CI; set `toHaveScreenshot` tolerances (`maxDiffPixelRatio`, + `threshold`) appropriate for software GL. +- **Determinism helper**: `e2e/_helpers.ts` gains `freezeScene(page)` — emulates `prefers-reduced-motion: + reduce`, seeds `Math.random`, and waits for one settled frame before any 3D screenshot. +- **Visual-regression**: enable `expect(page).toHaveScreenshot()`; baselines stored under + `e2e/__screenshots__/`; `@visual`-tagged specs only. +- **npm scripts**: `test:e2e` (functional, MOCK mode, all non-`@visual`), `test:e2e:visual` (visual project), + `test:e2e:update` (seed/update baselines). +- **CI**: add an `e2e-functional` job (three-d non-visual + layout + a11y + existing specs) as a **required + gate**; add an `e2e-visual` job that is **non-blocking** (informational) until baselines prove stable across + ≥3 runs (cross-GPU/software-GL flake risk), then promote. + +## Impact + +- Affected code: `playwright.config.ts`, `e2e/_helpers.ts`, `package.json` (scripts), + `.github/workflows/ci.yml`. No application behavior change. +- Risk lane: **test-infra only** → validate:quick + a green run of the existing specs under the new config. +- This change MUST land first, then `3d-experience-polish`, then `ui-layout-readability-polish` (the two + ultragoal feature stories) — both reference the run profiles + visual-regression policy in this `design.md`. + (Persistence is OUT of this ultragoal: no `persistence.spec` and no persistence-driven rationale here.) diff --git a/openspec/changes/e2e-harness-upgrade/tasks.md b/openspec/changes/e2e-harness-upgrade/tasks.md new file mode 100644 index 0000000..4e8c8dd --- /dev/null +++ b/openspec/changes/e2e-harness-upgrade/tasks.md @@ -0,0 +1,28 @@ +# Tasks — E2E Harness Upgrade + +## 1. Playwright projects +- [ ] 1.1 Add `chromium-mobile` project (Pixel 7 viewport, `isMobile`, `hasTouch`) to `playwright.config.ts` +- [ ] 1.2 Add `chromium-visual` project with `launchOptions.args: ['--use-gl=swiftshader']` +- [ ] 1.3 Keep `chromium-desktop` as the default functional project; `workers: 1`, `fullyParallel: false` +- [ ] 1.4 Configure `expect.toHaveScreenshot` defaults (`maxDiffPixelRatio: 0.02`, `threshold: 0.25`) + +## 2. Determinism helper +- [ ] 2.1 `freezeScene(page)` in `e2e/_helpers.ts`: emulate reduced-motion + seed `Math.random` via `addInitScript` + settle wait +- [ ] 2.2 Document tag conventions: `@visual`, `@mobile` in `e2e/README.md` + +## 3. npm scripts +- [ ] 3.1 `test:e2e` → functional + mobile projects, exclude `@visual` (`--grep-invert @visual`) +- [ ] 3.2 `test:e2e:visual` → `--project chromium-visual --grep @visual` +- [ ] 3.3 `test:e2e:update` → `test:e2e:visual --update-snapshots` + +## 4. CI wiring +- [ ] 4.1 Add `e2e-functional` job (needs `build`) — required gate +- [ ] 4.2 Add `e2e-mobile` job — required gate +- [ ] 4.3 Add `e2e-visual` job — `continue-on-error: true` (informational) initially +- [ ] 4.4 Add `test-worker` to `build.needs` (close pre-existing gap) + +## 5. Validation +- [ ] 5.1 Existing specs (`create-trip`, `page-nav`, etc.) pass green under the new multi-project config +- [ ] 5.2 `freezeScene` produces a byte-stable screenshot across 3 consecutive local runs (swiftshader) +- [ ] 5.3 `npm run typecheck` clean; CI dry-run shows the new jobs registered +- [ ] 5.4 Review gate — confirm no app behavior changed (test-infra only) diff --git a/openspec/changes/ui-layout-readability-polish/design.md b/openspec/changes/ui-layout-readability-polish/design.md new file mode 100644 index 0000000..effc023 --- /dev/null +++ b/openspec/changes/ui-layout-readability-polish/design.md @@ -0,0 +1,62 @@ +# Design — UI Layout & Readability Polish: Acceptance Criteria & E2E + +## Definition of Done (every story) +`tsc` clean · unit pass · `npm run build` OK · no new console errors · mapped E2E specs green · visual baselines +reviewed + approved · no contrast regression (axe). + +## Acceptance Criteria + +### L1 — Responsive result layout +> ⚠️ STRUCTURAL NOTE (review finding): `` is currently rendered by **`App.tsx:574`**, OUTSIDE +> `ItineraryDisplay` and below it (separate `max-w-3xl` block, outside its error boundary). A real sticky +> right rail requires the timeline column and the map panel to be **siblings in the same scroll container**. +> So L1 is a structural refactor (lift `TripMap` into the 2-col container or restructure the App↔ItineraryDisplay +> seam), NOT a CSS-grid tweak — split into L1-layout + L1-map below. Also handle the existing `sticky top-0` +> header (two stacked sticky contexts) and call `map.resize()` on breakpoint/layout change. +- **AC-L1.1** At viewport ≥1024px the result renders **two columns**: timeline (left) + a **sticky** panel + (right) with map + vitals/budget + section jump-nav. Asserted: at 1280px the map container's bounding box + sits in the right half AND stays in view (position sticky) while the timeline scrolls; `map.resize()` fires + on breakpoint change (no clipped/blank tiles). +- **AC-L1.2** At <768px it remains a single column (no horizontal scroll, no overlap). +- **AC-L1.3** Total result page scroll height at 1280px is meaningfully shorter than the current single-column + baseline (recorded before/after). + +### L2 — Readable over 3D +- **AC-L2.1** Every text block rendered over a 3D scene sits on a scrim/overlay achieving **≥4.5:1** contrast + (axe-core, no contrast violations on landing/card-pull/form headers). +- **AC-L2.2** Card-pull cards have a solid/blurred panel + border (not bare over terrain) and a visible + **label/caption** describing each card. + +### L3 — Gradient discipline +- **AC-L3.1** Each screen has **at most one** gradient CTA (the primary action); secondary buttons are + solid/ghost. Static check + visual baseline. + +### L4 — Result IA / zero-states +- **AC-L4.1** Above-the-fold on load = hero + vitals + Day 1 (secondary sections below / anchored). +- **AC-L4.2** A zero metric (e.g. Trending = 0) is reframed ("Không có điểm trending") or omitted, never a bare "0". + +### L5 — Hero composition + typography/a11y +- **AC-L5.1** Landing hero uses an intentional grid balancing headline + 3D; the three value chips are a single + coherent strip (not scattered). +- **AC-L5.2** Body text ≥14px everywhere; axe-core reports **0 serious/critical** contrast/a11y violations on + landing, form, result (desktop + mobile). + +## E2E mapping (runs on `e2e-harness-upgrade` harness, MOCK_ITINERARY) + +| Spec file | Project | Covers | Key assertions | +|---|---|---|---| +| `e2e/layout.spec.ts` | desktop + `@mobile` | L1.1–L1.3, L4 | at 1280px assert 2-col bounding boxes + map `position:sticky` + scroll-height delta; at 390px single-column, no overflow; Day 1 above fold; no bare "0" metric | +| `e2e/a11y.spec.ts` | desktop + `@mobile` | L2.1, L5.2 | inject `@axe-core/playwright`; assert 0 serious/critical violations on landing/form/result | +| `e2e/visual-3d.spec.ts` (extend) | `chromium-visual` | L2.2, L3.1, L5.1 | `freezeScene` then `toHaveScreenshot` for landing/card-pull/form/result desktop+mobile (gradient/scrim/hero baselines) | + +**New dep**: `@axe-core/playwright` for automated contrast/a11y assertions (approved in scope). +**Determinism**: visual specs use `freezeScene` + `chromium-visual` (swiftshader) per the harness contract. + +## Notes / decisions +- Aesthetic items (scrim look, hero composition, gradient feel) are gated by **visual baseline + human + sign-off**; CI gates only the measurable proxies (layout boxes, axe, body size, scroll delta). +- Two-column result reuses the existing `TripMap` component placed in the sticky panel — no map rewrite. +- **Sequencing FIXED: harness → 3d-experience-polish → THIS change.** Scrims/contrast (L2) and all over-3D + visual baselines are tuned over the FINAL post-processed 3D and captured once here — no re-baseline churn. +- **Card-pull DOM polish belongs here** (moved from 3d-polish): `CardPullOnboarding.tsx` is framer-motion DOM + (no three.js). The burst jitter/warm-ambient + card affordance/label (AC-L2.2) are DOM/CSS work. diff --git a/openspec/changes/ui-layout-readability-polish/proposal.md b/openspec/changes/ui-layout-readability-polish/proposal.md new file mode 100644 index 0000000..c6f5bb2 --- /dev/null +++ b/openspec/changes/ui-layout-readability-polish/proposal.md @@ -0,0 +1,45 @@ +# UI Layout & Readability Polish + +## Why + +A senior design review of the actual rendered screens (landing, card-pull, form, result — desktop + mobile) +found the product reads as a stretched mobile layout on desktop and lets the 3D backdrop fight the content: + +- **Desktop wastes ~40–50% of width**: landing, form, and especially the result screen are a single narrow + centred column with large dark voids on both sides; the result is one very long vertical scroll that + ignores the wide viewport (no sticky map, no two-column split). +- **3D backgrounds hurt readability**: the card-pull's three "constellation" cards are low-contrast floating + over busy terrain (and lack labels for what they represent); the form/result let terrain bleed behind the + header as visual noise. +- **First-screen overload + weak zero-states** on the result (everything stacked despite tabs; "Trending: 0" + shown as a bare metric). +- **Gradient overuse** (teal→cyan on every CTA + banner) dilutes the primary action. +- **Contrast/a11y risk** for muted text on dark and any text over 3D (WCAG AA), plus body text that should be + ≥14px. + +These are visual/UX quality gaps, not bugs — verified against Refactoring UI / Apple HIG / WCAG 2.2 on real +screenshots. + +## What Changes + +- **Responsive result layout**: at ≥1024px, split into two columns — left = day timeline (scrolls), right = + **sticky** map + vitals/budget summary + section jump-nav. Reduces scroll length and uses the viewport. +- **Readable-over-3D**: add a scrim/overlay (radial darken) behind content rendered over 3D; calm/blur the 3D + when it is a reading backdrop; raise card-pull card contrast (solid/blurred panel + border). +- **Card-pull affordance**: add a label/caption + light preview to each card; "what happens" microcopy. +- **Gradient discipline**: reserve the signature gradient for the single primary action per screen; secondary + actions become solid/ghost. +- **Result IA**: lead with hero + vitals + Day 1; lazy/anchor secondary sections; reframe or omit zero metrics. +- **Hero composition**: intentional grid balancing headline + 3D; consolidate the floating value chips + (AI-Powered / 3D / 100+) into a coherent trust strip. +- **A11y/typography**: body text ≥14px, all text ≥4.5:1 contrast (incl. over 3D scrims). + +## Impact + +- Affected code: `components/ItineraryDisplay.tsx`, `TripDayStoryboard.tsx`, `TripMap.tsx`, `Hero.tsx`, + `IntroScreen.tsx`, `CardPullOnboarding.tsx`, `TripForm.tsx`, `index.css` (tokens/scrim utility). +- Risk lane: **medium** — broad visual change → gated by **visual-regression baselines + reviewer sign-off** + (aesthetic) plus measurable AC (breakpoint layout, contrast, body size). +- Runs on the harness in `e2e-harness-upgrade` (must land first). Pairs with `3d-experience-polish` (the 3D + scrim/readability items here assume that change's lighting/post-processing). +- No data/API change. Frontend-only. diff --git a/openspec/changes/ui-layout-readability-polish/tasks.md b/openspec/changes/ui-layout-readability-polish/tasks.md new file mode 100644 index 0000000..98435cb --- /dev/null +++ b/openspec/changes/ui-layout-readability-polish/tasks.md @@ -0,0 +1,29 @@ +# Tasks — UI Layout & Readability Polish + +## 1. Responsive result layout (L1) +- [ ] 1.1a (L1-map relocation) Decide the 2-col container owner: lift `` (currently `App.tsx:574`) into `ItineraryDisplay`/a shared layout so timeline + map are siblings in ONE scroll container; move the share/anti-itinerary/PersonalWorldBadge cluster accordingly +- [ ] 1.1b (L1-layout) 2-column grid at ≥lg — timeline (left) + sticky panel (right: map + vitals/budget + jump-nav); reconcile with existing `sticky top-0` header; `map.resize()` on breakpoint +- [ ] 1.2 Single-column < md; no overflow/overlap; verify tap targets ≥44px on mobile +- [ ] 1.3 Record scroll-height before/after at 1280px (assert reduction) + +## 2. Readable over 3D (L2) +- [ ] 2.1 Reusable scrim utility (radial/linear darken) in `index.css`; apply behind text over 3D (landing/card-pull/form header) +- [ ] 2.2 CardPull (framer-motion DOM): cards → solid/blurred panel + border + label/caption per card; burst jitter (±angle/radius/color) + warm ambient blob (moved from 3d-polish — this is DOM, not 3D) + +## 3. Gradient discipline (L3) +- [ ] 3.1 Audit CTAs; one gradient primary per screen; secondaries → solid/ghost button variants + +## 4. Result IA / zero-states (L4) +- [ ] 4.1 Order: hero + vitals + Day 1 above fold; anchor/lazy secondary sections +- [ ] 4.2 Reframe/omit zero metrics (Trending = 0) + +## 5. Hero + typography/a11y (L5) +- [ ] 5.1 Landing hero intentional grid; consolidate value chips into one strip +- [ ] 5.2 Enforce body ≥14px; fix contrast until axe 0 serious/critical + +## 6. Validation (per `e2e-harness-upgrade`) +- [ ] 6.1 `npm run typecheck` clean; build OK +- [ ] 6.2 Add dep `@axe-core/playwright`; `e2e/a11y.spec.ts` → 0 serious/critical +- [ ] 6.3 `e2e/layout.spec.ts` → 2-col + sticky + scroll-delta (desktop) / single-col (mobile) +- [ ] 6.4 Extend `e2e/visual-3d.spec.ts` baselines (after human aesthetic sign-off) +- [ ] 6.5 Review gate (fresh reviewer) — per-AC evidence; aesthetic items reference approved baselines From 32bd36742e9c5c737e36a9af5bc132fab9f0dc28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ho=C3=A0i=20Nh=E1=BB=9B?= Date: Wed, 17 Jun 2026 21:04:18 +0700 Subject: [PATCH 5/8] test(e2e): multi-project Playwright harness (desktop/mobile/visual) + freezeScene + CI e2e gate Story G001. Per-project grep keeps existing 21 specs desktop-only; chromium-visual uses swiftshader; build now needs test-worker. Test-infra only. --- .github/workflows/ci.yml | 31 +++++++++++++++++++++++++- e2e/README.md | 21 +++++++++++++++++- e2e/_helpers.ts | 26 ++++++++++++++++++++++ package.json | 4 +++- playwright.config.ts | 47 +++++++++++++++++++++++++++++++++------- 5 files changed, 118 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4fe610d..47cddf2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,7 +66,7 @@ jobs: build: name: Build runs-on: ubuntu-latest - needs: [typecheck, test-client] + needs: [typecheck, test-client, test-worker] steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -77,3 +77,32 @@ jobs: - run: npm run build env: VITE_EDGE_PROXY_URL: https://api.moodtrip.app + + e2e-functional: + name: E2E (functional + mobile) + runs-on: ubuntu-latest + needs: [build] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + - run: npm ci + - run: npx playwright install --with-deps chromium + - run: npm run test:e2e + + e2e-visual: + name: E2E (visual regression — informational) + runs-on: ubuntu-latest + needs: [build] + continue-on-error: true # non-blocking until baselines prove stable across >=3 runs + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + - run: npm ci + - run: npx playwright install --with-deps chromium + - run: npm run test:e2e:visual diff --git a/e2e/README.md b/e2e/README.md index 4d41f47..f8267f6 100644 --- a/e2e/README.md +++ b/e2e/README.md @@ -29,10 +29,29 @@ npm install # already installed npx playwright install # one-time: download chromium for your platform ``` +## Projects & tags (multi-project harness) + +`playwright.config.ts` defines 3 projects: + +| Script | Projects | Runs | +|---|---|---| +| `npm run test:e2e` | `chromium-desktop` + `chromium-mobile` | every non-`@visual` spec on desktop; `@mobile`-tagged on a Pixel 7 viewport | +| `npm run test:e2e:visual` | `chromium-visual` (software GL `--use-gl=swiftshader`) | `@visual`-tagged specs only | +| `npm run test:e2e:update` | `chromium-visual` | (re)generate `@visual` screenshot baselines | + +**Tags** go in the test title: +- `@mobile` — runs on the mobile viewport (mobile AC: layout, tap targets). Untagged specs run desktop-only. +- `@visual` — captures `toHaveScreenshot` baselines; runs ONLY on `chromium-visual`. Call `freezeScene(page)` + (from `_helpers.ts`) **before** `page.goto`, then wait for the scene to mount + settle before capturing. + Baselines MUST be generated in the CI container (not a dev Mac); the aesthetic sign-off approves the + **swiftshader** render. `@visual` CI stays non-blocking until baselines prove stable across ≥3 runs. + ## Run ```bash -npm run test:e2e # headless, all specs +npm run test:e2e # functional (desktop) + mobile, headless +npm run test:e2e:visual # visual-regression (swiftshader) +npm run test:e2e:update # (re)seed visual baselines — after human aesthetic sign-off npm run test:e2e:ui # interactive UI mode for debugging ``` diff --git a/e2e/_helpers.ts b/e2e/_helpers.ts index 06188d0..f43ecba 100644 --- a/e2e/_helpers.ts +++ b/e2e/_helpers.ts @@ -8,6 +8,32 @@ export async function acceptConsentIfPresent(page: Page): Promise { } } +/** + * Make 3D scenes deterministic for `@visual` screenshots / render assertions. + * Call this BEFORE `page.goto` (it registers an init script + media emulation that must precede page + * scripts). After navigation, the caller waits for the scene to mount and settle before capturing. + * + * Steps: + * 1. `prefers-reduced-motion: reduce` — stops idle 3D animation AND `OrbitControls autoRotate` + * (autoRotate is gated on `reduce` in PersonalWorldCanvas), so the frame is static. + * 2. Seed `Math.random` with a fixed mulberry32 PRNG so particle/firefly layouts are stable. + * + * CAVEAT: drei ``/`` use their own internal RNG (not always `Math.random`), so this may + * not fully determinize them — keep `@visual` CI jobs non-blocking until baselines prove stable. + */ +export async function freezeScene(page: Page): Promise { + await page.emulateMedia({ reducedMotion: 'reduce' }); + await page.addInitScript(() => { + let s = 0x9e3779b9; + Math.random = () => { + s = (s + 0x6d2b79f5) | 0; + let t = Math.imul(s ^ (s >>> 15), 1 | s); + t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; + return ((t ^ (t >>> 14)) >>> 0) / 4294967296; + }; + }); +} + export async function preacceptConsent(page: Page): Promise { await page.addInitScript(() => { try { diff --git a/package.json b/package.json index b35e294..96b0451 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,9 @@ "test:watch": "vitest", "test:coverage": "vitest run --coverage", "test:worker": "npm test --prefix workers/edge-proxy", - "test:e2e": "playwright test", + "test:e2e": "playwright test --project chromium-desktop --project chromium-mobile", + "test:e2e:visual": "playwright test --project chromium-visual", + "test:e2e:update": "playwright test --project chromium-visual --update-snapshots", "test:e2e:ui": "playwright test --ui", "typecheck": "tsc --noEmit" }, diff --git a/playwright.config.ts b/playwright.config.ts index f347f9d..9822227 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -3,6 +3,14 @@ import { defineConfig, devices } from '@playwright/test'; const PORT = process.env.E2E_PORT ? parseInt(process.env.E2E_PORT, 10) : 5174; const BASE_URL = process.env.E2E_BASE_URL || `http://127.0.0.1:${PORT}`; +// Shared launch options. CHROME_PATH (CI/containers) → system Chrome + sandbox-off flags; otherwise {}. +const CHROME_LAUNCH: { executablePath?: string; args?: string[] } = process.env.CHROME_PATH + ? { + executablePath: process.env.CHROME_PATH, + args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage'], + } + : {}; + export default defineConfig({ testDir: './e2e', testMatch: /.*\.spec\.ts/, @@ -12,7 +20,11 @@ export default defineConfig({ workers: 1, reporter: [['list']], timeout: 90_000, - expect: { timeout: 10_000 }, + expect: { + timeout: 10_000, + // Visual-regression tolerance (3D under software GL diverges sub-pixel — see e2e-harness-upgrade). + toHaveScreenshot: { maxDiffPixelRatio: 0.02, threshold: 0.25 }, + }, use: { baseURL: BASE_URL, trace: 'retain-on-failure', @@ -22,17 +34,36 @@ export default defineConfig({ navigationTimeout: 30_000, }, projects: [ + // Functional desktop — runs every non-@visual spec (the historical default surface). + { + name: 'chromium-desktop', + grepInvert: /@visual/, + use: { + ...devices['Desktop Chrome'], + viewport: { width: 1280, height: 900 }, + launchOptions: CHROME_LAUNCH, + }, + }, + // Mobile — only @mobile-tagged specs (mobile-specific AC), so desktop-only specs don't run here. + { + name: 'chromium-mobile', + grep: /@mobile/, + use: { + ...devices['Pixel 7'], + launchOptions: CHROME_LAUNCH, + }, + }, + // Visual-regression — only @visual specs, software GL for deterministic cross-machine screenshots. { - name: 'chromium', + name: 'chromium-visual', + grep: /@visual/, use: { ...devices['Desktop Chrome'], viewport: { width: 1280, height: 900 }, - launchOptions: process.env.CHROME_PATH - ? { - executablePath: process.env.CHROME_PATH, - args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage'], - } - : undefined, + launchOptions: { + ...CHROME_LAUNCH, + args: [...(CHROME_LAUNCH.args ?? []), '--use-gl=swiftshader'], + }, }, }, ], From a0974d41137bfec09c5d75b4e60d64cd3dba2f07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ho=C3=A0i=20Nh=E1=BB=9B?= Date: Wed, 17 Jun 2026 22:19:45 +0700 Subject: [PATCH 6/8] feat(3d): bloom/ACES + warm lighting + fog depth + perf (pause-when-hidden, leak-free WebGL guard) Ultragoal Story G002. @react-three/postprocessing Bloom + tone mapping + ColorManagement on both Canvases; warm/indigo lights; fog near=12; visible journey arcs; sceneHelpers (PauseOnHidden, RenderCountProbe, cached leak-free isWebGLAvailable, SceneErrorBoundary); manualChunks; flatShading hierarchy; amber palette. +e2e three-d & visual-3d specs. Aesthetic user-approved. --- App.tsx | 28 +--- components/PersonalWorldScene.tsx | 36 ++++- components/three/NatureScene.tsx | 96 +++++++++---- components/three/PersonalWorldCanvas.tsx | 46 +++++-- components/three/PersonalWorldMonuments.tsx | 78 ++++++----- components/three/sceneHelpers.tsx | 128 ++++++++++++++++++ e2e/three-d.spec.ts | 63 +++++++++ e2e/visual-3d.spec.ts | 20 +++ .../nature-landing-chromium-visual-darwin.png | Bin 0 -> 454463 bytes index.tsx | 4 + package-lock.json | 46 +++++++ package.json | 1 + vite.config.ts | 12 +- 13 files changed, 453 insertions(+), 105 deletions(-) create mode 100644 components/three/sceneHelpers.tsx create mode 100644 e2e/three-d.spec.ts create mode 100644 e2e/visual-3d.spec.ts create mode 100644 e2e/visual-3d.spec.ts-snapshots/nature-landing-chromium-visual-darwin.png diff --git a/App.tsx b/App.tsx index 9aa7cc2..91d2c06 100644 --- a/App.tsx +++ b/App.tsx @@ -1,5 +1,4 @@ -import { useState, useEffect, useCallback, useRef, Component, Suspense, lazy } from 'react'; -import type { ReactNode } from 'react'; +import { useState, useEffect, useCallback, useRef, Suspense, lazy } from 'react'; import { generateItinerary } from './services/geminiService'; import { mapGenerationError } from './services/errorCopy'; import { ItineraryErrorBoundary } from './components/ItineraryErrorBoundary'; @@ -43,28 +42,9 @@ import { hapticSuccess, spawnConfetti } from './services/haptics'; // Lazy load Three.js scene to prevent blocking initial render const NatureScene = lazy(() => import('./components/three/NatureScene')); -// Error boundary to catch Three.js crashes without killing the whole app -class SceneErrorBoundary extends Component<{ children: ReactNode }, { hasError: boolean }> { - constructor(props: { children: ReactNode }) { - super(props); - this.state = { hasError: false }; - } - - static getDerivedStateFromError() { - return { hasError: true }; - } - - componentDidCatch(error: Error) { - console.warn('[MoodTrip] 3D scene error (non-fatal):', error.message); - } - - render() { - if (this.state.hasError) { - return null; // Silently fail — app works without 3D background - } - return this.props.children; - } -} +// Error boundary to catch Three.js crashes without killing the whole app. +// Shared with the PersonalWorld modal — see components/three/sceneHelpers.tsx. +import { SceneErrorBoundary } from './components/three/sceneHelpers'; // Define types for html2pdf.js since it's loaded from a script interface Html2PdfOptions { diff --git a/components/PersonalWorldScene.tsx b/components/PersonalWorldScene.tsx index fb7a30f..7deffa8 100644 --- a/components/PersonalWorldScene.tsx +++ b/components/PersonalWorldScene.tsx @@ -11,11 +11,24 @@ import { MOOD_LABELS, } from '../services/personalWorld'; import { buildSceneState } from '../services/personalWorldScene'; +import { SceneErrorBoundary, isWebGLAvailable } from './three/sceneHelpers'; import { IconSprout } from './icons'; import type { ItineraryPlan } from '../types'; const LazySceneCanvas = lazy(() => import('./three/PersonalWorldCanvas')); +function SceneFallback() { + return ( +
+
+ +

Không thể hiển thị 3D

+

Thiết bị của bạn chưa hỗ trợ WebGL, nhưng dữ liệu chuyến đi vẫn ở bên trái.

+
+
+ ); +} + interface PersonalWorldSceneProps { open: boolean; onClose: () => void; @@ -26,6 +39,12 @@ export function PersonalWorldScene({ open, onClose, localTrips }: PersonalWorldS const { user } = useAuth(); const [remoteTrips, setRemoteTrips] = useState([]); const [loading, setLoading] = useState(false); + const [webglOk] = useState(isWebGLAvailable); + const [contextLost, setContextLost] = useState(false); + + useEffect(() => { + if (!open) setContextLost(false); + }, [open]); useEffect(() => { if (!open || !user) return; @@ -114,7 +133,7 @@ export function PersonalWorldScene({ open, onClose, localTrips }: PersonalWorldS {topMoods.map((m) => ( {MOOD_LABELS[m] ?? m} @@ -169,10 +188,19 @@ export function PersonalWorldScene({ open, onClose, localTrips }: PersonalWorldS

+ ) : !webglOk || contextLost ? ( + ) : ( - Đang tải 3D…}> - - + }> + Đang tải 3D…}> + setContextLost(true)} + /> + + )} diff --git a/components/three/NatureScene.tsx b/components/three/NatureScene.tsx index 8026a94..ffc15f9 100644 --- a/components/three/NatureScene.tsx +++ b/components/three/NatureScene.tsx @@ -2,6 +2,8 @@ import { useRef, useMemo, useEffect, useState } from 'react'; import * as THREE from 'three'; import { Canvas, useFrame, useThree } from '@react-three/fiber'; import { Stars, MeshReflectorMaterial, AdaptiveDpr } from '@react-three/drei'; +import { EffectComposer, Bloom } from '@react-three/postprocessing'; +import { useReducedMotion, PauseOnHidden, RenderCountProbe } from './sceneHelpers'; // ─── Inline simplex noise (2D) ─────────────────────────────────────────────── const GRAD3 = [ @@ -216,10 +218,12 @@ function getSkyColors(): SkyColors { return blendSky(SKY_DUSK, SKY_NIGHT, (hour - 20.5) / 1.5); } -function lerpColor(a: string, b: string, t: number): THREE.Color { - const ca = new THREE.Color(a); - const cb = new THREE.Color(b); - return ca.lerp(cb, t); +// In-place colour lerp: writes a→b interpolation into `out` (no per-call alloc). +// `scratch` holds the `b` colour so callers can pass module-level scratch refs. +function lerpColorInto(out: THREE.Color, scratch: THREE.Color, a: string, b: string, t: number): void { + out.set(a); + scratch.set(b); + out.lerp(scratch, t); } // ─── Gradient Sky Sphere (5-point) ────────────────────────────────────────── @@ -283,15 +287,17 @@ function GradientSkySphere({ zenith, midSky, horizon, lowHorizon, nadir }: { uNadir: { value: new THREE.Color(nadir) }, }), []); - // Smooth interpolation every frame for gentle transitions + // Smooth interpolation every frame for gentle transitions. + // Scratch colour reused for all five targets — zero allocation per frame. + const scratch = useMemo(() => new THREE.Color(), []); useFrame(() => { if (!matRef.current) return; const u = matRef.current.uniforms; - u.uZenith.value.lerp(new THREE.Color(zenith), 0.015); - u.uMidSky.value.lerp(new THREE.Color(midSky), 0.015); - u.uHorizon.value.lerp(new THREE.Color(horizon), 0.015); - u.uLowHorizon.value.lerp(new THREE.Color(lowHorizon), 0.015); - u.uNadir.value.lerp(new THREE.Color(nadir), 0.015); + u.uZenith.value.lerp(scratch.set(zenith), 0.015); + u.uMidSky.value.lerp(scratch.set(midSky), 0.015); + u.uHorizon.value.lerp(scratch.set(horizon), 0.015); + u.uLowHorizon.value.lerp(scratch.set(lowHorizon), 0.015); + u.uNadir.value.lerp(scratch.set(nadir), 0.015); }); return ( @@ -309,34 +315,39 @@ function GradientSkySphere({ zenith, midSky, horizon, lowHorizon, nadir }: { ); } // ─── Camera Rig: slow orbit + mouse parallax ──────────────────────────────── -function CameraRig() { +const clamp = (v: number, lo: number, hi: number) => Math.max(lo, Math.min(hi, v)); + +function CameraRig({ reduce }: { reduce: boolean }) { const { camera } = useThree(); const mouse = useRef({ x: 0, y: 0 }); const angle = useRef(0); useEffect(() => { + if (reduce) return; const onMove = (e: MouseEvent) => { mouse.current.x = (e.clientX / window.innerWidth - 0.5) * 2; mouse.current.y = (e.clientY / window.innerHeight - 0.5) * 2; }; window.addEventListener('mousemove', onMove); return () => window.removeEventListener('mousemove', onMove); - }, []); + }, [reduce]); useFrame((_, delta) => { - angle.current += delta * 0.03; - const radius = 22; + // Lower, tighter rig so the horizon sits in the lower third of the frame. + if (!reduce) angle.current += delta * 0.03; + const radius = 18; const baseX = Math.sin(angle.current) * radius; const baseZ = Math.cos(angle.current) * radius; - const baseY = 7; + const baseY = 4.2; - const parallaxX = mouse.current.x * 3; - const parallaxY = -mouse.current.y * 1.5; + // Clamp parallax so the camera never swings past the framing. + const parallaxX = reduce ? 0 : clamp(mouse.current.x, -1, 1) * 2.2; + const parallaxY = reduce ? 0 : clamp(-mouse.current.y, -1, 1) * 1.1; camera.position.x += (baseX + parallaxX - camera.position.x) * 0.02; camera.position.y += (baseY + parallaxY - camera.position.y) * 0.02; camera.position.z += (baseZ - camera.position.z) * 0.02; - camera.lookAt(0, 1, 0); + camera.lookAt(0, 2.4, 0); }); return null; @@ -431,8 +442,9 @@ function WaterPlane() { } // ─── Firefly Particles ─────────────────────────────────────────────────────── -function Fireflies({ brightness }: { brightness: number }) { +function Fireflies({ brightness, daylight, reduce }: { brightness: number; daylight: number; reduce: boolean }) { const pointsRef = useRef(null); + const frame = useRef(0); const positions = useMemo(() => { const count = 200; @@ -447,6 +459,11 @@ function Fireflies({ brightness }: { brightness: number }) { useFrame(({ clock }) => { if (!pointsRef.current) return; + // Static under reduced motion; skip the costly buffer update when daylight is + // bright (fireflies are near-invisible) and throttle to every 2nd frame. + if (reduce || daylight > 0.7) return; + frame.current++; + if (frame.current % 2 !== 0) return; const pos = pointsRef.current.geometry.attributes.position; const time = clock.elapsedTime; for (let i = 0; i < pos.count; i++) { @@ -483,29 +500,33 @@ function DynamicLighting({ daylight }: { daylight: number }) { const fillRef = useRef(null); const hemiRef = useRef(null); + // Scratch colours — one persistent pair reused for every in-place lerp. + const out = useMemo(() => new THREE.Color(), []); + const tmp = useMemo(() => new THREE.Color(), []); + useFrame(() => { // Ambient: bright white during day, dim blue at night if (ambientRef.current) { ambientRef.current.intensity = 0.15 + daylight * 0.5; - ambientRef.current.color.copy(lerpColor('#1a2040', '#ffffff', daylight)); + lerpColorInto(ambientRef.current.color, tmp, '#1a2040', '#ffffff', daylight); } // Sun / Moon directional if (sunRef.current) { sunRef.current.intensity = 0.3 + daylight * 1.2; - sunRef.current.color.copy(lerpColor('#4466aa', '#fff5e6', daylight)); + lerpColorInto(sunRef.current.color, tmp, '#4466aa', '#fff5e6', daylight); // Sun high during day, low at night sunRef.current.position.set(50, 10 + daylight * 60, 30); } // Fill light if (fillRef.current) { fillRef.current.intensity = 0.15 + daylight * 0.35; - fillRef.current.color.copy(lerpColor('#223355', '#cce0ff', daylight)); + lerpColorInto(fillRef.current.color, tmp, '#223355', '#cce0ff', daylight); } // Hemisphere: sky + ground if (hemiRef.current) { hemiRef.current.intensity = 0.2 + daylight * 0.5; - hemiRef.current.color.copy(lerpColor('#0a1628', '#87ceeb', daylight)); - hemiRef.current.groundColor.copy(lerpColor('#0a1210', '#4a9e3f', daylight)); + lerpColorInto(hemiRef.current.color, tmp, '#0a1628', '#87ceeb', daylight); + lerpColorInto(hemiRef.current.groundColor, out, '#0a1210', '#4a9e3f', daylight); } }); @@ -522,18 +543,21 @@ function DynamicLighting({ daylight }: { daylight: number }) { // ─── Dynamic Fog ───────────────────────────────────────────────────────────── function DynamicFog({ fogColor }: { fogColor: string }) { const fogRef = useRef(null); + const scratch = useMemo(() => new THREE.Color(), []); useFrame(() => { if (fogRef.current) { - fogRef.current.color.lerp(new THREE.Color(fogColor), 0.02); + fogRef.current.color.lerp(scratch.set(fogColor), 0.02); } }); - return ; + // Near plane pulled in (≈12) so distant terrain recedes into the daylight haze. + return ; } // ─── Scene Content ───────────────────────────────────────────────────────────── function SceneContent() { + const reduce = useReducedMotion(); const [sky, setSky] = useState(getSkyColors); // Recalculate every 30 seconds for smooth time transitions @@ -546,7 +570,9 @@ function SceneContent() { return ( <> - + + + @@ -562,13 +588,18 @@ function SceneContent() { factor={5} saturation={0.3} fade - speed={0.3} + speed={reduce ? 0 : 0.3} /> {/* Landscape */} - + + + {/* Bloom lifts emissive highlights (water sheen, firefly glow) into real light. */} + + + ); } @@ -588,7 +619,12 @@ export function NatureScene() { zIndex: 0, pointerEvents: 'none', }} - gl={{ antialias: false, alpha: false }} + gl={{ + antialias: false, + alpha: false, + toneMapping: THREE.ACESFilmicToneMapping, + toneMappingExposure: 1.1, + }} > diff --git a/components/three/PersonalWorldCanvas.tsx b/components/three/PersonalWorldCanvas.tsx index 820c8e2..f83ec4e 100644 --- a/components/three/PersonalWorldCanvas.tsx +++ b/components/three/PersonalWorldCanvas.tsx @@ -1,8 +1,10 @@ -import { useMemo, useState } from 'react'; +import { useMemo } from 'react'; import { Canvas } from '@react-three/fiber'; import { OrbitControls, Stars, Sparkles, Float, GradientTexture, Line } from '@react-three/drei'; -import { BackSide, AdditiveBlending } from 'three'; +import { EffectComposer, Bloom } from '@react-three/postprocessing'; +import { BackSide, AdditiveBlending, ACESFilmicToneMapping } from 'three'; import { PersonalWorldMonuments } from './PersonalWorldMonuments'; +import { useReducedMotion, PauseOnHidden, RenderCountProbe } from './sceneHelpers'; import type { Monument } from '../../services/personalWorldScene'; interface PersonalWorldCanvasProps { @@ -11,34 +13,43 @@ interface PersonalWorldCanvasProps { tripCount: number; } -function prefersReducedMotion(): boolean { - if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return false; - return window.matchMedia('(prefers-reduced-motion: reduce)').matches; -} - -export default function PersonalWorldCanvas({ monuments, ringRadius, tripCount }: PersonalWorldCanvasProps) { - const [reduce] = useState(prefersReducedMotion); +export default function PersonalWorldCanvas({ monuments, ringRadius, tripCount, onContextLost }: PersonalWorldCanvasProps & { onContextLost?: () => void }) { + const reduce = useReducedMotion(); const camDist = ringRadius * 1.85 + 2; return ( { + gl.domElement.addEventListener( + 'webglcontextlost', + (e) => { + e.preventDefault(); + onContextLost?.(); + }, + { once: true }, + ); + }} > + + {/* Gradient sky dome */} - + - + - + {/* warm hearth from the island centre (replaces the old saturated-cyan fill) */} + + - + @@ -68,6 +79,11 @@ export default function PersonalWorldCanvas({ monuments, ringRadius, tripCount } autoRotateSpeed={0.5} enableDamping /> + + {/* Bloom turns the emissive lantern/tree/rim into real light halos (vs flat chalk). */} + + + ); } @@ -113,7 +129,7 @@ function JourneyArcs({ monuments }: { monuments: Monument[] }) { return ( {arcs.map((a) => ( - + ))} ); diff --git a/components/three/PersonalWorldMonuments.tsx b/components/three/PersonalWorldMonuments.tsx index 0ad3e4e..dac0e04 100644 --- a/components/three/PersonalWorldMonuments.tsx +++ b/components/three/PersonalWorldMonuments.tsx @@ -1,4 +1,4 @@ -import { Float, Html } from '@react-three/drei'; +import { Float, Html, Instances, Instance } from '@react-three/drei'; import { AdditiveBlending, DoubleSide } from 'three'; import type { Monument } from '../../services/personalWorldScene'; @@ -22,6 +22,32 @@ const ACCENT_BY_KIND: Record = { export function PersonalWorldMonuments({ monuments, reduceMotion }: PersonalWorldMonumentsProps) { return ( + {/* Shared-geometry instancing for the repeated mound + glow ring (1 draw call each). */} + + + + {monuments.map((m) => ( + + ))} + + + + + {monuments.map((m) => ( + + ))} + + {monuments.map((m) => ( ))} @@ -35,17 +61,7 @@ function MonumentNode({ monument, reduceMotion }: { monument: Monument; reduceMo return ( - {/* grassy mound the model sits on */} - - - - - {/* glowing base ring */} - - - - - + {/* mound + glow ring rendered via the shared above */} @@ -141,7 +157,7 @@ function MonumentModel({ kind, accent }: { kind: string; accent: string }) { - + {[ { y: 0.42, r: 0.62, h: 0.26 }, @@ -152,12 +168,12 @@ function MonumentModel({ kind, accent }: { kind: string; accent: string }) { {i > 0 && ( - + )} - + ))} @@ -174,14 +190,14 @@ function MonumentModel({ kind, accent }: { kind: string; accent: string }) { {/* string */} {/* caps */} - + {/* body — elongated glowing silk */} - + {/* bottom cap + tassel */} - + @@ -207,17 +223,17 @@ function MonumentModel({ kind, accent }: { kind: string; accent: string }) { return ( {/* parasol */} - + {/* table */} - - + + {/* two stools */} {[-0.34, 0.34].map((x, i) => ( - + ))} {/* cup */} - + ); @@ -225,14 +241,14 @@ function MonumentModel({ kind, accent }: { kind: string; accent: string }) { return ( {/* hull */} - + {/* upturned bow & stern */} - - + + {/* arched roof */} - + ); @@ -246,15 +262,15 @@ function MonumentModel({ kind, accent }: { kind: string; accent: string }) { { y: 0.5, r0: 0.22, r1: 0.18, c: '#dc2626' }, { y: 0.78, r0: 0.18, r1: 0.15, c: '#f8fafc' }, ].map((s, i) => ( - + ))} {/* gallery ring */} - + {/* lamp room */} - + {/* roof */} - + {/* light beam */} diff --git a/components/three/sceneHelpers.tsx b/components/three/sceneHelpers.tsx new file mode 100644 index 0000000..b397666 --- /dev/null +++ b/components/three/sceneHelpers.tsx @@ -0,0 +1,128 @@ +import { Component, useEffect, useState, type ReactNode } from 'react'; +import { useThree, useFrame } from '@react-three/fiber'; + +// ─── Shared error boundary ─────────────────────────────────────────────────── +// Catches Three.js crashes without killing the whole app. Used by both the +// fullscreen NatureScene background (App.tsx) and the PersonalWorld modal. +export class SceneErrorBoundary extends Component< + { children: ReactNode; fallback?: ReactNode }, + { hasError: boolean } +> { + constructor(props: { children: ReactNode; fallback?: ReactNode }) { + super(props); + this.state = { hasError: false }; + } + + static getDerivedStateFromError() { + return { hasError: true }; + } + + componentDidCatch(error: Error) { + console.warn('[MoodTrip] 3D scene error (non-fatal):', error.message); + } + + render() { + if (this.state.hasError) { + return this.props.fallback ?? null; + } + return this.props.children; + } +} + +// ─── Reduced-motion live subscription ──────────────────────────────────────── +export function prefersReducedMotion(): boolean { + if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return false; + return window.matchMedia('(prefers-reduced-motion: reduce)').matches; +} + +// Live subscription (not one-shot): respects an OS reduce-motion toggle while the scene is open. +export function useReducedMotion(): boolean { + const [reduce, setReduce] = useState(prefersReducedMotion); + useEffect(() => { + if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return; + const mq = window.matchMedia('(prefers-reduced-motion: reduce)'); + const onChange = () => setReduce(mq.matches); + mq.addEventListener('change', onChange); + return () => mq.removeEventListener('change', onChange); + }, []); + return reduce; +} + +// ─── WebGL availability guard ──────────────────────────────────────────────── +// Cached + leak-free: the probe context is RELEASED immediately (WEBGL_lose_context) and the result is +// memoised module-level. The old version leaked a context on every call — and React StrictMode double-invokes +// useState initializers in dev, so repeated modal opens exhausted the GPU context limit and the probe began +// reporting "no WebGL" on devices that actually support it (false negative). +let _webglAvailable: boolean | undefined; +export function isWebGLAvailable(): boolean { + if (_webglAvailable !== undefined) return _webglAvailable; + if (typeof document === 'undefined') return true; + try { + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('webgl2') ?? canvas.getContext('webgl'); + if (ctx) { + (ctx as WebGLRenderingContext).getExtension('WEBGL_lose_context')?.loseContext(); + _webglAvailable = true; + } else { + _webglAvailable = false; + } + } catch { + _webglAvailable = false; + } + return _webglAvailable; +} + +// ─── Pause-when-hidden ─────────────────────────────────────────────────────── +// Sits inside a Canvas. Flips the R3F frameloop to 'never' while the tab is +// hidden (document.visibilitychange) and back to 'always' when visible — so the +// render loop stops doing work the user cannot see. We deliberately do NOT use a +// permanent frameloop="demand" (that would freeze auto-rotate / orbit / fog). +export function PauseOnHidden() { + const setFrameloop = useThree((s) => s.setFrameloop); + const invalidate = useThree((s) => s.invalidate); + useEffect(() => { + if (typeof document === 'undefined') return; + const onVisibility = () => { + if (document.hidden) { + setFrameloop('never'); + } else { + setFrameloop('always'); + invalidate(); + } + }; + document.addEventListener('visibilitychange', onVisibility); + // Apply current state immediately (tab may already be hidden). + onVisibility(); + return () => { + document.removeEventListener('visibilitychange', onVisibility); + setFrameloop('always'); + }; + }, [setFrameloop, invalidate]); + return null; +} + +// ─── Dev/test render counter ───────────────────────────────────────────────── +// Only active under import.meta.env.DEV (or an explicit window flag). Writes the +// renderer's per-frame draw count to window.__r3fRenderCount each frame so E2E +// can assert the loop is paused when the scene isn't seen. +declare global { + interface Window { + __r3fRenderCount?: number; + __r3fForceRenderCount?: boolean; + } + interface ImportMeta { + readonly env?: { readonly DEV?: boolean }; + } +} + +export function RenderCountProbe() { + const gl = useThree((s) => s.gl); + const enabled = + (typeof import.meta !== 'undefined' && import.meta.env && import.meta.env.DEV) || + (typeof window !== 'undefined' && window.__r3fForceRenderCount === true); + useFrame(() => { + if (!enabled || typeof window === 'undefined') return; + window.__r3fRenderCount = gl.info.render.frame; + }); + return null; +} diff --git a/e2e/three-d.spec.ts b/e2e/three-d.spec.ts new file mode 100644 index 0000000..c15c51d --- /dev/null +++ b/e2e/three-d.spec.ts @@ -0,0 +1,63 @@ +import { test, expect } from '@playwright/test'; +import { preacceptConsent, gotoHome } from './_helpers'; + +// G002 3D perf + robustness. NatureScene renders as the landing backdrop, so these run without a modal. +// RenderCountProbe writes the renderer frame count to window.__r3fRenderCount when window.__r3fForceRenderCount +// is set (or in DEV). PauseOnHidden flips the R3F frameloop to 'never' while the tab is hidden. +test.describe('3D scene perf + robustness (G002)', () => { + test('render loop pauses when the tab is hidden', async ({ page }) => { + await page.addInitScript(() => { + (window as unknown as { __r3fForceRenderCount?: boolean }).__r3fForceRenderCount = true; + }); + await preacceptConsent(page); + await gotoHome(page); + await page.waitForTimeout(1500); // scene mounts + advances the counter + + const before = await page.evaluate(() => (window as unknown as { __r3fRenderCount?: number }).__r3fRenderCount ?? null); + test.skip(before === null, '__r3fRenderCount hook not exposed in this build'); + + // Simulate the tab going hidden → PauseOnHidden should set frameloop 'never'. + await page.evaluate(() => { + Object.defineProperty(document, 'hidden', { value: true, configurable: true }); + Object.defineProperty(document, 'visibilityState', { value: 'hidden', configurable: true }); + document.dispatchEvent(new Event('visibilitychange')); + }); + await page.waitForTimeout(300); // let the last queued frame flush + const settled = await page.evaluate(() => (window as unknown as { __r3fRenderCount?: number }).__r3fRenderCount ?? 0); + await page.waitForTimeout(1500); // window during which a paused loop must NOT advance + const after = await page.evaluate(() => (window as unknown as { __r3fRenderCount?: number }).__r3fRenderCount ?? 0); + + expect((after as number) - (settled as number)).toBeLessThanOrEqual(1); // paused (allow 1 flush frame) + }); + + test('no uncaught page errors when the 3D scene mounts', async ({ page }) => { + const errors: string[] = []; + page.on('pageerror', (e) => errors.push(e.message)); + await preacceptConsent(page); + await gotoHome(page); + await page.waitForTimeout(2000); + expect(errors).toEqual([]); + }); + + test('WebGL unavailable → graceful fallback, app does not crash', async ({ page }) => { + await preacceptConsent(page); + // Force every webgl context to null so the scene must fall back via SceneErrorBoundary / isWebGLAvailable. + await page.addInitScript(() => { + const orig = HTMLCanvasElement.prototype.getContext; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + HTMLCanvasElement.prototype.getContext = function (this: HTMLCanvasElement, type: string, ...args: any[]) { + if (typeof type === 'string' && type.includes('webgl')) return null; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return (orig as any).call(this, type, ...args); + }; + }); + const errors: string[] = []; + page.on('pageerror', (e) => errors.push(e.message)); + await gotoHome(page); // waits for the Hero CTA — proves the app rendered, not a white screen + await expect(page.locator('button:has-text("Khám phá ngay")').first()).toBeVisible(); + // Forcing WebGL off legitimately emits the browser's own "Error creating WebGL context." — that is the + // trigger, not an app crash. The app must not throw anything ELSE (graceful degradation). + const unexpected = errors.filter((e) => !/webgl context|creating webgl|getcontext/i.test(e)); + expect(unexpected).toEqual([]); + }); +}); diff --git a/e2e/visual-3d.spec.ts b/e2e/visual-3d.spec.ts new file mode 100644 index 0000000..29c658d --- /dev/null +++ b/e2e/visual-3d.spec.ts @@ -0,0 +1,20 @@ +import { test, expect } from '@playwright/test'; +import { preacceptConsent, gotoHome, freezeScene } from './_helpers'; + +// @visual — runs ONLY on the chromium-visual project (software GL via --use-gl=swiftshader). +// Baselines are seeded with `npm run test:e2e:update` AFTER a human approves the aesthetic (the swiftshader +// render, which differs from hardware GL). CI keeps @visual non-blocking until baselines prove stable. +// +// Determinism: freezeScene() seeds Math.random + reduced-motion (must precede goto); page.clock pins the +// time-of-day so NatureScene's day/night cycle renders the same phase every run. +test.describe('3D visual baselines @visual', () => { + test('landing NatureScene @visual', async ({ page }) => { + await page.clock.install({ time: new Date('2026-06-17T12:00:00') }); // noon phase, fixed + await preacceptConsent(page); + await freezeScene(page); + await gotoHome(page); + await page.waitForTimeout(1800); // mount + settle (loop pauses under reduced-motion) + // Hero region over the NatureScene backdrop — fog depth, ACES tone, warm/indigo light. + await expect(page).toHaveScreenshot('nature-landing.png', { maxDiffPixelRatio: 0.05 }); + }); +}); diff --git a/e2e/visual-3d.spec.ts-snapshots/nature-landing-chromium-visual-darwin.png b/e2e/visual-3d.spec.ts-snapshots/nature-landing-chromium-visual-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..fe38be0c80c3947ccc78a0820ae705a3ba2fc5f1 GIT binary patch literal 454463 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

$^nL!5kgEtL}vww|^Y25^vqJ91m#lL}WTI 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

=FRGoOHikCw^OYh?AZGDu= zRMotlpuZ~<*xn^_e*CF?;{$|xieJ|Th(SO}LoQO1b^A&ZbM6 z-2Io626#5@LAlE3=ZIed`NCAi$tUl@B+T0dD(b*T?Q7dt+{1qS58;D0deTh(FdtS@ zz7My?^3M1-n%7?WT(Jl47ocQ;%U;6rHnq5nBVd3FA*Kw95}TqIM{&vxBs&Ex6?71N zfTi*&Z|$kZZt#%!KQs0&f0MM)o?c*bnVl$Z%F($`I!GP29x|&}aa``19(ZawuWlgS z{r2B-7}m+@$L}WxQc?SVp9m_{NMb7Y^b-_4A6U}w-?RdR-KC-&UNOgS+3aIV z^zed(ByUHx>wi&Hr=6Rpp`gg1&(c#1*6hrIR!2A#|n&hU#pHH!#zLfLgS z_Noc7`PJ=$HHQFlYsBduylu|;lp!5OpD)X~DBmf`O8BuR{HW5h^{Lgy zePQv#<=?)t=L4;Z7DcS?FmJ|s=yMAPnaI8JSKd|0cSC+{KVuW(<=~M27>Vgt>k5c* zqVUMzPpOGh$nmvb*vVy|rAeJ-9ej2KV^!X`w6$`OAuFlVf&6p6mml=5Q=DcgNv*#vbk5Nn*SFlN?~-@5QxRa7qa9~^F2e=O^61PyX>C*a!X1M0b` z`vT8K$0hdW41tdIMW;}(ynu*)Tte3Fn$|ki&uQ3fOkn$Amp%{|8|4OnO_Nj8=|%(P zWw3CQzaqjz+d5sifWIQ#@%yFj)As z>|1}0oa7;Mrcrc3%KQze0UIAePj@={*r$^NV_nVGm>%+1V-_%3H51AJf`;b9RtuD8E z#!=j>ymizCk~+GWqZ~PU^R&zDE|3c$H7)AoEgQnS``C0d6uyhl!Ht14~gUxWji;L+C3vTenUzmy~}gvbM>niooFm(MUE+ zXXb@{tazC~Ov_WoL22E=_3{eGQM|9VQ`MxPp5TmaE7Z?v<8a`(-a&8UX59Bkk5>s% zAX?&$x`=k(w;sLL#J;Dalu9yoA9*Q?V{?cOd8qjSMGvX?%3xO{ePJq$M^dd4pX@BP zSO)?(eI+&TvrEY+T@I!1(p0g` zQo_9jTw~AiR3;nLH8RtY*Z=&kq)*{Flfc=90Yc0y(*<@N5k78o##;3jB6^g-{3@U) z$8V16=V-)60YOlX`Lg||W-e4N<7MRMaesZ2ACt`Bs@SrKuuYTHHc?;796O1MSmxBm zpWJwwepaOWjPZSr2h)(aXvTAva*6lEG~M_{Y>@$X+Xdh_z7Z9-PUQ2hWP^HMa7&Bp zM&{dbUjA&A3ctt)pytczy$MIQ7ph$0aKoOJwF#>tNAmJl9Yj^FVr)FImQ-|Ga1145 z*W&eiT=bceUucafdSXvB(iwvD6J|zrg%kVoG40>#c*^N!{5^&LoJ>+KeaVO3Q8dTl zv?%F4e1hT11%Qq8&%`|DO5*JMr1l42>zhvhz8>nPGF4i`g6&@@CY1_|d&%@>phW+N zr8j|RWZ&wKantNW_PZ;}3P45Gl(B81jjY4@* zPz`i4gw%9e(A1m)%0D5xh48+P|JU}P!{4PB-VzI%e&d)HO3Z>O((AWg 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

fpm-1vFwg;_eU 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 FV1n7W`Lh53 literal 0 HcmV?d00001 diff --git a/index.tsx b/index.tsx index 91e2f2a..b9ccdf7 100644 --- a/index.tsx +++ b/index.tsx @@ -1,9 +1,13 @@ import './index.css'; import React from 'react'; import ReactDOM from 'react-dom/client'; +import { ColorManagement } from 'three'; import App from './App'; import { initSentry } from './services/sentry'; +// Correct sRGB↔linear handling for the 3D scenes (lerps build THREE.Color from sRGB hex). +ColorManagement.enabled = true; + initSentry(); const rootElement = document.getElementById('root'); diff --git a/package-lock.json b/package-lock.json index d2d1dd4..46034fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@google/genai": "^1.8.0", "@react-three/drei": "^10.7.7", "@react-three/fiber": "^9.5.0", + "@react-three/postprocessing": "^3.0.4", "@sentry/react": "^8.45.0", "@supabase/supabase-js": "^2.46.0", "@tailwindcss/vite": "^4.2.1", @@ -2647,6 +2648,32 @@ } } }, + "node_modules/@react-three/postprocessing": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@react-three/postprocessing/-/postprocessing-3.0.4.tgz", + "integrity": "sha512-e4+F5xtudDYvhxx3y0NtWXpZbwvQ0x1zdOXWTbXMK6fFLVDd4qucN90YaaStanZGS4Bd5siQm0lGL/5ogf8iDQ==", + "license": "MIT", + "dependencies": { + "maath": "^0.6.0", + "n8ao": "^1.9.4", + "postprocessing": "^6.36.6" + }, + "peerDependencies": { + "@react-three/fiber": "^9.0.0", + "react": "^19.0", + "three": ">= 0.156.0" + } + }, + "node_modules/@react-three/postprocessing/node_modules/maath": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/maath/-/maath-0.6.0.tgz", + "integrity": "sha512-dSb2xQuP7vDnaYqfoKzlApeRcR2xtN8/f7WV/TMAkBC8552TwTLtOO0JTcSygkYMjNDPoo6V01jTw/aPi4JrMw==", + "license": "MIT", + "peerDependencies": { + "@types/three": ">=0.144.0", + "three": ">=0.144.0" + } + }, "node_modules/@rollup/plugin-node-resolve": { "version": "15.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", @@ -7918,6 +7945,16 @@ "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", "license": "MIT" }, + "node_modules/n8ao": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/n8ao/-/n8ao-1.10.2.tgz", + "integrity": "sha512-gh4i0xFP8DiRaNoX75kPiG3kGl7PmX9SW/OIn3Sv/YZmHrA8faLdSU1MM6M4gKtfKpxDnZagodu8FKob5URCVw==", + "license": "ISC", + "peerDependencies": { + "postprocessing": ">=6.30.0", + "three": ">=0.137" + } + }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -8260,6 +8297,15 @@ "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==", "license": "MIT" }, + "node_modules/postprocessing": { + "version": "6.39.1", + "resolved": "https://registry.npmjs.org/postprocessing/-/postprocessing-6.39.1.tgz", + "integrity": "sha512-R2dG2zy+BAx3USl5EHw+PvnrlbT5PKnZVp3se0HCR0pWH8WQdh742yNG4YWOsq6c0bFpffk0Gd2RqPeoP/wKng==", + "license": "Zlib", + "peerDependencies": { + "three": ">= 0.168.0 < 0.185.0" + } + }, "node_modules/potpack": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", diff --git a/package.json b/package.json index 96b0451..a38cc44 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "@google/genai": "^1.8.0", "@react-three/drei": "^10.7.7", "@react-three/fiber": "^9.5.0", + "@react-three/postprocessing": "^3.0.4", "@sentry/react": "^8.45.0", "@supabase/supabase-js": "^2.46.0", "@tailwindcss/vite": "^4.2.1", diff --git a/vite.config.ts b/vite.config.ts index e555dde..77e854c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -195,5 +195,15 @@ export default defineConfig({ alias: { '@': path.resolve(__dirname, '.'), } - } + }, + build: { + rollupOptions: { + output: { + manualChunks: { + 'vendor-three': ['three', '@react-three/fiber', '@react-three/drei', '@react-three/postprocessing'], + 'vendor-map': ['maplibre-gl'], + }, + }, + }, + }, }); From 938b8cc93129ff47c61615b28ee39233cc4c908a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ho=C3=A0i=20Nh=E1=BB=9B?= Date: Fri, 19 Jun 2026 09:28:09 +0700 Subject: [PATCH 7/8] feat(ui): responsive 2-column result + sticky map, readable-over-3D scrims, gradient discipline, a11y MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ultragoal Story G003. Lift TripMap into the result's shared scroll container (2-col + sticky @>=1024px, map.resize on breakpoint; single-col mobile); scrim behind hero/card-pull/form text over the 3D; card-pull panels/labels/jitter; gradient discipline; result IA + zero-state; hero value-chips strip. A11y: aria-label on activity edit button + slate-500/600→slate-400 contrast. +@axe-core/playwright, e2e/a11y.spec & e2e/layout.spec. e2e 29/29. --- App.tsx | 83 +++++++++++++++++-------------- components/CardPullOnboarding.tsx | 62 ++++++++++++++++------- components/ChatCompanion.tsx | 2 +- components/Footer.tsx | 4 +- components/Hero.tsx | 59 +++++++++------------- components/IntroScreen.tsx | 4 +- components/ItineraryDisplay.tsx | 10 ++-- components/PersonalWorldBadge.tsx | 4 +- components/TripForm.tsx | 44 ++++++++-------- components/TripHeroBanner.tsx | 6 ++- components/TripMap.tsx | 15 ++++++ e2e/a11y.spec.ts | 39 +++++++++++++++ e2e/layout.spec.ts | 51 +++++++++++++++++++ index.css | 22 ++++++++ package-lock.json | 24 +++++++++ package.json | 1 + 16 files changed, 304 insertions(+), 126 deletions(-) create mode 100644 e2e/a11y.spec.ts create mode 100644 e2e/layout.spec.ts diff --git a/App.tsx b/App.tsx index 91d2c06..317fe41 100644 --- a/App.tsx +++ b/App.tsx @@ -531,48 +531,57 @@ export default function App() { exit={{ opacity: 0 }} transition={{ duration: 0.5 }} > - - setQueModalOpen(true)} - onOpenWorld={() => setWorldSceneOpen(true)} - /> - -
- - -
-

Bản đồ hành trình

- + {/* Result layout: single column on mobile/tablet (map + actions stack BELOW the + itinerary, as before). At ≥lg it becomes a 2-column flex — the itinerary scrolls + on the LEFT while a STICKY sidebar on the RIGHT keeps the map + action cluster in + view. The map's own ResizeObserver re-fits tiles when the column width changes. */} +
+
+ + setQueModalOpen(true)} + onOpenWorld={() => setWorldSceneOpen(true)} + /> +
-
- - - {lastFormData && ( +
+
); diff --git a/components/CardPullOnboarding.tsx b/components/CardPullOnboarding.tsx index d80e614..1aa1e56 100644 --- a/components/CardPullOnboarding.tsx +++ b/components/CardPullOnboarding.tsx @@ -149,10 +149,10 @@ export function CardPullOnboarding({ onComplete, onUseTraditionalForm }: CardPul onComplete({ ...moods, narrative: buildPullNarrative(pull) }); } - const slots: { label: string; card: DeckCardLike | null | undefined }[] = [ - { label: 'Nguyên tố', card: pull ? ELEMENT_CARDS.find((c) => c.id === pull.element) : null }, - { label: 'Nhịp', card: pull ? TEMPO_CARDS.find((c) => c.id === pull.tempo) : null }, - { label: 'Bạn đi cùng', card: pull ? COMPANION_CARDS.find((c) => c.id === pull.companion) : null }, + const slots: { label: string; hint: string; card: DeckCardLike | null | undefined }[] = [ + { label: 'Nguyên tố', hint: 'Cảnh bạn hợp', card: pull ? ELEMENT_CARDS.find((c) => c.id === pull.element) : null }, + { label: 'Nhịp', hint: 'Tốc độ chuyến đi', card: pull ? TEMPO_CARDS.find((c) => c.id === pull.tempo) : null }, + { label: 'Bạn đi cùng', hint: 'Ai cùng bạn', card: pull ? COMPANION_CARDS.find((c) => c.id === pull.companion) : null }, ]; return ( @@ -163,7 +163,7 @@ export function CardPullOnboarding({ onComplete, onUseTraditionalForm }: CardPul > -
+
-

{label}

+

{label}

+

{hint}

{showFront && Icon ? ( <> @@ -287,7 +290,8 @@ function OracleCard({ label, card, revealed, shaking, delay, reduceMotion }: Ora return (
-

{label}

+

{label}

+

{hint}

); } -/** Small radial particle burst emitted when a card reveals. */ +/** Small radial particle burst emitted when a card reveals. Angles, radii, sizes and colours are + * jittered per particle so the burst reads as an organic spray rather than a symmetric ring. */ +const BURST_COLORS = [ + { bg: 'rgb(103,232,249)', glow: 'rgba(6,182,212,0.9)' }, // cyan + { bg: 'rgb(94,234,212)', glow: 'rgba(13,148,136,0.9)' }, // teal + { bg: 'rgb(252,211,77)', glow: 'rgba(245,158,11,0.85)' }, // warm amber accent +]; function ParticleBurst({ delay }: { delay: number }) { const particles = useMemo( () => - Array.from({ length: 10 }, (_, i) => { - const angle = (i / 10) * Math.PI * 2; + Array.from({ length: 11 }, (_, i) => { + // Deterministic pseudo-random jitter (no Math.random → stable across renders). + const seed = (i * 1297 + 7) % 360; + const jitter = ((i * 53) % 17) / 17 - 0.5; // -0.5..0.5 + const angle = ((i / 11) * Math.PI * 2) + jitter * 0.9; + const radius = 28 + ((i * 37) % 26) + (i % 3) * 6; + const color = BURST_COLORS[i % BURST_COLORS.length]; return { - x: Math.cos(angle) * (34 + (i % 3) * 8), - y: Math.sin(angle) * (34 + (i % 3) * 8), - s: 0.5 + (i % 3) * 0.25, + x: Math.cos(angle) * radius, + y: Math.sin(angle) * radius, + s: 0.45 + ((seed % 7) / 7) * 0.6, + dur: 0.7 + ((i * 31) % 9) / 20, + color, }; }), [] @@ -469,11 +486,11 @@ function ParticleBurst({ delay }: { delay: number }) { {particles.map((p, i) => ( ))}
@@ -500,7 +517,7 @@ function AmbientBackground({ reduceMotion }: { reduceMotion: boolean }) { className="absolute inset-0 opacity-40" style={{ background: - 'radial-gradient(60% 50% at 25% 20%, rgba(13,148,136,0.25), transparent 60%), radial-gradient(55% 45% at 80% 80%, rgba(14,165,233,0.22), transparent 60%)', + 'radial-gradient(60% 50% at 25% 20%, rgba(13,148,136,0.25), transparent 60%), radial-gradient(55% 45% at 80% 80%, rgba(14,165,233,0.22), transparent 60%), radial-gradient(45% 40% at 70% 30%, rgba(245,158,11,0.16), transparent 60%)', }} />
@@ -527,6 +544,13 @@ function AmbientBackground({ reduceMotion }: { reduceMotion: boolean }) { animate={{ x: [0, 25, -25, 0], y: [0, -25, 0, 0] }} transition={{ duration: 18, repeat: Infinity, ease: 'easeInOut' }} /> + {/* Warm amber ambient blob — balances the cool teal/cyan palette with one warm anchor. */} + {dots.map((dot, i) => ( { onClick={() => setIsOpen(false)} whileHover={{ scale: 1.1, rotate: 90 }} whileTap={{ scale: 0.9 }} - className="p-2.5 min-h-[44px] min-w-[44px] flex items-center justify-center text-slate-500 hover:text-white hover:bg-white/10 rounded-lg transition-colors" + className="p-2.5 min-h-[44px] min-w-[44px] flex items-center justify-center text-slate-400 hover:text-white hover:bg-white/10 rounded-lg transition-colors" > diff --git a/components/Footer.tsx b/components/Footer.tsx index c6aca43..e35a0cc 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -79,13 +79,13 @@ export const Footer: React.FC = ({ onGoHome, onGoToRelease, onGoToT {/* Divider */}
diff --git a/components/Hero.tsx b/components/Hero.tsx index 572b4d2..b346ad3 100644 --- a/components/Hero.tsx +++ b/components/Hero.tsx @@ -148,40 +148,10 @@ export const Hero: React.FC = ({ onStart, savedItineraries, onLoadIti )} - {/* Feature badges */} - -
- AI-Powered -
-
- -
- 3D Experience -
-
- -
- 100+ Điểm đến -
-
- - {/* Main content */} -
+ {/* Main content — intentional centered column over the 3D scene. A `text-scrim` layer + (subtle radial darken, see index.css) sits behind the text so headline/body copy keeps + ≥4.5:1 contrast over the moving backdrop without flattening the 3D mood. */} +
= ({ onStart, savedItineraries, onLoadIti initial={{ opacity: 0 }} animate={{ opacity: 1 }} transition={{ delay: 1 }} - className="text-slate-500 text-sm cursor-pointer hover:text-teal-400 transition-colors" + className="text-slate-400 text-sm cursor-pointer hover:text-teal-400 transition-colors" > hoặc xem lịch sử chuyến đi ↓ )} + + {/* Value chips — consolidated into a single coherent strip beneath the CTA (was three + chips scattered around the viewport corners). Reads as one row of credentials. */} + +
+ AI-Powered +
+
+ 3D Experience +
+
+ 100+ Điểm đến +
+
{/* Trip Gallery */} diff --git a/components/IntroScreen.tsx b/components/IntroScreen.tsx index 4926828..730e9f1 100644 --- a/components/IntroScreen.tsx +++ b/components/IntroScreen.tsx @@ -164,7 +164,7 @@ export const IntroScreen: React.FC = ({ onComplete }) => { initial={{ opacity: 0 }} animate={{ opacity: 1 }} transition={{ delay: 1.2 }} - className="text-center text-slate-500 text-sm mt-3" + className="text-center text-slate-400 text-sm mt-3" > {progress < 30 && 'Đang khởi tạo...'} {progress >= 30 && progress < 60 && 'Đang tải hiệu ứng 3D...'} @@ -177,7 +177,7 @@ export const IntroScreen: React.FC = ({ onComplete }) => { diff --git a/components/ItineraryDisplay.tsx b/components/ItineraryDisplay.tsx index 0fde7fb..f232312 100644 --- a/components/ItineraryDisplay.tsx +++ b/components/ItineraryDisplay.tsx @@ -253,7 +253,7 @@ export const ItineraryDisplay: React.FC = ({ itinerary, o {dayIndex + 1}
-

{day.day}

+

{day.day}

{day.title}

@@ -264,7 +264,7 @@ export const ItineraryDisplay: React.FC = ({ itinerary, o

{item.activity}

{item.venue && ( -

+

{item.google_maps_link ? ( {item.venue} @@ -381,7 +381,7 @@ export const ItineraryDisplay: React.FC = ({ itinerary, o {countdown} )} - @@ -467,7 +467,7 @@ export const ItineraryDisplay: React.FC = ({ itinerary, o

    {itinerary.accommodation.map((item, index) => (
  • -

    {item.name} ({item.type})

    +

    {item.name} ({item.type})

    {item.reason}

  • ))} @@ -577,7 +577,7 @@ export const ItineraryDisplay: React.FC = ({ itinerary, o {item.category} {item.amount} - {item.note} + {item.note} ))} diff --git a/components/PersonalWorldBadge.tsx b/components/PersonalWorldBadge.tsx index 41dad88..c6f0dda 100644 --- a/components/PersonalWorldBadge.tsx +++ b/components/PersonalWorldBadge.tsx @@ -71,7 +71,7 @@ export function PersonalWorldBadge() { className="h-full bg-gradient-to-r from-teal-400 to-cyan-400" />
-

+

{next.threshold - stats.tripCount} chuyến nữa đến {next.label}

@@ -84,7 +84,7 @@ function Stat({ label, value }: { label: string; value: number }) { return (

{value}

-

{label}

+

{label}

); } diff --git a/components/TripForm.tsx b/components/TripForm.tsx index 257d9b5..98e38aa 100644 --- a/components/TripForm.tsx +++ b/components/TripForm.tsx @@ -227,8 +227,8 @@ export const TripForm: React.FC = ({ onSubmit, onBack, error, ini transition={{ duration: 0.6, ease: 'easeOut' }} className="w-full max-w-3xl" > - {/* Header */} - + {/* Header — scrim layer (index.css) keeps the title/subtitle readable over the 3D scene. */} +

{tripMode === 'short' ? 'Kế hoạch ngắn hạn' : 'Lên kế hoạch cho chuyến đi'} @@ -263,9 +263,9 @@ export const TripForm: React.FC = ({ onSubmit, onBack, error, ini
{tripMode === 'long' && (
- +
- + = ({ onSubmit, onBack, error, ini
)}
-