H1Human Layer Doc — Active Sprint
H2Done — Trips / Itinerary
- ✅ Concept groups render as cards (CardGrid + QR hover) in "Concept groups" section
- ✅ Session stack children concept groups render as cards in "From sessions" section
- ✅ Old inline contentStack.sessionConceptGroups rendering removed from TripItineraryCanvas
- ✅ page.tsx fetches session stacks with
sessionConceptGroups, computescontentStackChildrenper city - ✅ Modal opens on card click (pointer-events-none on QR overlay)
- ✅ Concept card content moved to TOP of city block as lead description (base text for the city)
- ✅ City info from City model shown as fallback only when no conceptCard assigned
- ✅ No new TS/build errors
H2Done — Documents Sidebar & Assistant Mobile-First
- ✅ Documents sidebar: removed
-114pxnegative margin, simplified layout to flex column with proper full-height fill - ✅ Sidebar bottom slot now properly anchored at bottom, scrollable content area fills remaining space
- ✅ Assistant page: removed bizarre
86pxvertical button padding, replaced with finger-sized44pxmin-height - ✅ Assistant page: responsive padding (
p-4 md:p-6 lg:p-10), responsive font sizes - ✅ AssistantWorkspace: finger-sized input (
min-h-[44px] md:min-h-[48px]) and send button - ✅ AssistantWorkspace: responsive message area height (
max-h-[50vh] md:max-h-[60vh]) - ✅ AssistantWorkspace: "Run" label hidden on mobile (
hidden sm:inline) to save space - ✅ AssistantPanel: increased padding, font sizes, gaps for mobile readability
- ✅ AssistantPanel floating toggle: increased from
34pxto44pxmin-height - ✅ Global
.micro-btn/.micro-fp: increased padding from3px 8pxto6px 10px, addedmin-height: 32px - ✅ Mobile media query for
.micro-btn/.micro-fp:min-height: 40px, larger padding on screens ≤640px
H2Done — Trips Landing Page Streamlined
- ✅
TripsSectionRegistry.ts: updated hero defaults — "Discover Andalusia Your Way", "Plan. Connect. Explore." - ✅
TripsSectionRegistry.ts: updated how-it-works defaults to 3-step user-friendly copy (Plan / Join / Connect) - ✅
TripsLandingSections.tsx: reordered sections — Hero → How It Works → Featured Trips → Featured Experiences → Final CTA → Footer - ✅ Added inline "Córdoba & Granada: The Heart of Al-Andalus" section with bullet points
- ✅ Added inline "Flexible, Modular, and Always Yours" 3-card grid
- ✅ Commented out (not deleted) 12 sections: starting_points, shared_public_trips, itinerary, featured_cities, featured_plans, pathways, story_video, editorial_features, updates, keep_in_touch, marketing_cta, faq
- ✅ Re-enabled
trip_plansection — CTA href updated from/trips/plannerto/trips/new - ✅ Each commented section has a pointer comment showing where the component still lives
- ✅ No components deleted — all still importable and editable
H2Notes for Later
- Dual poster/grid view concept should be applied per card as a passive scrolling effect, and integrated as a standard for listing trips except for
trips/public/dashboard's first trip grid. - When the same image is used multiple times per page load, load once and use cached instance for all other occurrences (browser HTTP cache + shared
<img>ref or Next.js<Image>with samesrcalready dedupes, but verify no duplicate network requests).
H2Done — Experiences Page Streamlined
- ✅ Removed negative margin (
-179px) that was pulling content off-screen - ✅ Hero updated: subtitle focused on direct booking, CTA scrolls to
#experiences_featured - ✅ Featured Experiences moved to top position (order 0) — city highlight tours with FareHarbor booking widgets
- ✅ How It Works simplified to 3 steps: Choose city → Book online → Show up
- ✅ Featured Cities kept for visual destination reference
- ✅ Hidden (not deleted): Pathways, Featured Trips, Keep In Touch sections
- ✅ Final CTA tightened: "Ready to Explore?" with 3 action buttons
- ✅ No components deleted — all still importable
H2Next Action
Verify on staging — trips landing, experiences page, documents sidebar, assistant mobile interface.
H2Beta — New Surfaces (Installed May 2026)
H3Status: 🟡 Pending production revision
These pages are built and routed. Content, tone, and layout are at beta quality and will need a human polish pass before production.
H3New pages created
| Page | Route | File | Pattern |
|---|---|---|---|
| Profile | /profile | app/profile/page.tsx + profile-client.tsx + actions.ts | Server component → client component → server actions |
| Admin overview | /admin | app/admin/page.tsx | Server component with card grid |
| Admin layout | /admin/* | app/admin/layout.tsx | Server component with auth guard + sidebar nav |
| User management | /admin/users | app/admin/users/page.tsx | Client component using existing user actions |
| Professionals | /trips/professionals | app/trips/professionals/page.tsx | Server component (static marketing page) |
| Marketing | /marketing | app/marketing/page.tsx | Server component (static page) |
| Story | /story | app/story/page.tsx | Server component (editorial narrative page) |
H3Architecture notes
- All pages follow the established pattern: server component orchestrator, client component for interactivity, server actions for mutations
- Profile uses co-located actions (
app/profile/actions.ts) for password management and profile updates - Admin/users page reuses existing user actions from
@/app/users/actions/user - Trips/professionals inherits the trips layout (TravelSymbolHeader + EditModeProvider)
- Marketing and story pages use the root layout
- Design system: Tailwind v4 tokens (
--neutral-*), shadcn/ui conventions, editorial tone matching existing trips pages - Berlin communication style: direct, simple, honest. No hype, no emoji in content.
H3Pages intentionally NOT modified
Existing pages were left untouched (non-destructive):
/trips/featured— already exists, functional/trips/new— already exists, functional/trips/[tripId]— already exists, functional/trips/[tripId]/schedule— already exists, functional/dashboard— already exists, functional (in(dashboard)route group)/about— already exists, functional (in(home)route group)
H3Role model alignment
New pages use the extended role set (ADMIN, ORGANISER, COLLABORATOR, PROVIDER, USER, GUEST) and display the appropriate role-aware UI:
- Profile page shows role badge and role-specific dashboard link
- Admin layout protects all
/admin/*routes - Admin/users page allows role assignment from the full set
Pending: deeper workspace routing per role at /dashboard.