Repository navigation
Conversation
Document beginner sport MVP and development workflow
Co-authored-by: Michal <michal@Michals-MacBook-Pro.local>
Co-authored-by: Michal <michal@Michals-MacBook-Pro.local>
Co-authored-by: Michal <michal@Michals-MacBook-Pro.local>
Install grill-me, grilling, and thermo-nuclear-code-quality-review into .agents/skills with .claude/skills symlinks, matching the existing layout. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Feat/local backend docker
Add the Claude Design export for the MVP mobile journey: design tokens, fonts and reference components, JSX prototypes for onboarding, home, workout, chat and profile, and a preview board (index.html) served by the new `design` entry in .claude/launch.json. Link the design README from AGENTS.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
website/ holds only the marketing page and the design-system files it loads, so the hosting project can deploy it without exposing the prototype. scripts/sync-website.sh refreshes it from design/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…#10) * design: use step sliders for session count and length Onboarding 3.1 and Edit time 9.4 ask for sessions per week (1-7) and minutes per session (5-60 in 5s) with sliders instead of segmented choices, matching the website. A tick marks each step under the track; numbered ticks are longer and the number at the value lights up. Both screens share one Slider and PREF_SLIDERS from onboarding.jsx. PREFERENCES.md still lists 1, 2, 3 and 5, 10, 20 and is due to widen; chat's length snapping keeps those for now. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: record the 3 October mobile review decisions Add docs/mobile-review-2026-10-03.md with the decisions, next steps and open questions from the mobile design review, and bring the product scope in line with it: Google or email sign-in with no guest entry on mobile, plans one week ahead with full history, a sport catalog with per-sport metrics, logging afterwards outside the gym, and an explicit out-of-scope list (XP, tournaments, friend hub, calories, live run tracking, videos). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ezQnAJmc62PTPRfntb4FX * design: apply the 3 October mobile review Onboarding: Continue with Google or one email field that signs in or creates the account; no guest entry. A two-handle slider picks the preferred hours; suggested sports plus catalog search; the swimming comfort question, bike note and "Nothing to avoid" are gone; both "Good to know" questions are checkbox lists. Home: week arrows page back through history and forward only to the planned week; a missed session offers Log it or Move it, which opens chat; guest demo, first-week and lighter-week notes and unscheduled weeks removed; greeting follows the time of day. Workouts: no live run screen or map. One log-it form built from the sport's catalog metrics, with .fit/.gpx import, covers every sport but the gym. Gym screens drop the demo video and take weight from last time. Chat: titled Coach; moves a missed session (skip offered last) and adds workouts done outside the plan, replacing the logging form. Plan tab is now a Calendar tab with plan history; profile and settings are split. Chat placement is drawn both ways (tab or button) for a UX test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ezQnAJmc62PTPRfntb4FX --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The team chose the chat button over a Chat tab. The tab bar is now Today · Calendar · You with the chat button on every tab; chat opens full screen with a back arrow. Remove the tab variant, the comparison frames, the nav flow and the board's chat: switch, update the website mock and resync website/, and record the decision in the docs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Carries develop's website mockup changes (chat button beside the tab bar, week header, Coach copy) into apps/website. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: integrate Gemini activity plan generation * Refine beginner activity plan system prompt * feat: support universal Gemini workout planning exchange * feat: update Gemini plan sport contract * fix: integrate Gemini plans with Nest backend and validate metric ranges * feat: use numeric plan IDs and gym sport metadata without exercises * feat: add catalog metrics to workout parts * fix: preserve existing backend formatting in Gemini changes * refactor: organize plan generation and address contract review * docs: record final plan integration verification * Allow open planning preferences and explicit daily overrides * docs: document AI plan generation
feat(supabase): add product API contracts and persistence
…#13) * Add FIT and GPX workout summaries with moving time and elevation gain * fix: preserve FIT session boundaries and pauses * docs: define workout summary integration rules
Supabase Auth refuses redirects to a raw IP host and falls back to the Site URL, so Google sign-in from Expo Go on a LAN IP ended on localhost:3000. npm run start:hostname runs expo start with the Mac's LAN IP as <ip>.nip.io, which the existing exp://** allowlist accepts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Google could not return to exp://<ip>:8081, so the person saw an unreachable page after choosing an account. Continue with Google now rejects such a redirect up front with how to start the app instead (start:hostname, a tunnel or the dev build), and Welcome shows it without a Try again that cannot help. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The server may now fill profile.username from the sign-up metadata. Saves send a non-blank stored username back as it is and only fill a missing one from the session name (Google's full_name), so nothing replaces it or sets it to null; over-long names are cut to the contract's 200 characters instead of being dropped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
People who sign in with Google looked for the calendar while setting up and could not find it: it lived only in Data and privacy. Review now offers Google Calendar beside the phone's calendar, first for a Google sign-in, through the same connect hook as Data and privacy. It never blocks Build plan. A web connect returns to the screen it started on and keeps the onboarding answers across the page redirect, and the connect also refuses an Expo Go IP redirect before opening Google. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Records why Expo Go on a raw IP cannot finish Google sign-in, how to start it with a hostname, the kept username, the Review calendar step and what was and was not verified. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ect guard Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> # Conflicts: # docs/deployment.md
feat(mobile): run the app on Supabase Auth and the product API
The landing page no longer ships the clickable fake demo. Its calls to action open the real app instead: "Try it as a guest" goes to app/guest and "Sign in" to app/welcome, relative to the site root so they work under the GitHub Pages project path. VITE_APP_URL points them at a local dev server. Old #/try links forward to the guest entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On the web, Welcome offers "Continue as guest" and /guest starts one directly (the landing page links there). A guest is an anonymous Supabase user named Guest that uses the real product API and starts at onboarding. It can save its progress by adding an email and password to the same user, or leave guest mode. Phones have no guest entry. Desktop widths show the sign-in screens as a split layout with a brand panel. Auth redirects on the web now include the router base path, so they return to the GitHub Pages app URL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On the web, every interactive kit component gets hover feedback, a pointer cursor and a keyboard focus ring; sliders, Segmented and radio groups work with the mouse and the keyboard. On desktop widths a Sheet opens as a centered dialog that closes on Escape or a click outside and returns focus. New desktop pieces: Panel, StatTile, Tooltip (IconButton shows one from its label), Kbd, HoverBand, webStyle and useWebKeyboard. Native rendering is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From 768 px the Calendar tab is a month board of day tiles with session chips beside a sticky day panel, with keyboard navigation (arrows, T, P/N). Plan history shows a version timeline next to the selected version's changes and sessions. On the web the device calendar is reported as unsupported, so sync and planning never ask for it. Phones keep their layout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ChatPanel renders the conversation either as the /coach page or inside the desktop shell's dock and drawer, taking the prefill, attached session and Move it intent as props. On the web Enter sends and Shift+Enter adds a line, Escape closes the dock, new messages ease in, and the thread no longer jumps to the end after scrolling up. /coach on desktop centres the thread; phones keep the same screen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From 768 px the You tab is a dashboard: the assistant's summary, the answers that shape the plan, how Movo sees the person, progress across the weeks, feedback and shortcuts, with an Edit answers menu. Profile pages, Settings (two columns, appearance preview tiles) and Data & privacy get desktop layouts. Guests see no email row and leave through the guest card instead of Sign out. On the web, phone-only calendar and step rows are replaced by one note. Phones keep their layout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On the web from 768 px, signed-in pages render inside a shell: a sidebar (Today, Calendar, You, Plan history, account card, "Ask your coach" with Cmd/Ctrl K) that folds to an icon rail at medium widths, and the coach chat as a resizable docked column on wide screens or a drawer at medium widths. useOpenChat opens the dock there and still pushes /coach on phones. Feedback, Log it and Edit answers open as centred dialogs; the gym runner stays full screen. The responsive foundation (useLayout, Columns, Grid, PageHeader and a desktop-aware Content) gates every desktop layout; native and web below 768 px keep the phone layout. Pages get per-route titles, theme colours, scrollbars and focus rings on the web. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From 768 px onboarding shows a step rail with each answer and the progress, the questions in a card with a short "why we ask" aside, inline Back and Continue (Enter continues) and slide transitions. Choices, places and sports become card grids; Review shows the answers as cards before Build plan. On the web Review offers only the Google Calendar row. Phones keep the same steps and order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the dock over a nested page, router.navigate pushed a second set of tabs. It now goes through the shell's navigation, which goes back down to the tabs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The GitHub Pages export renders from Expo's plain SPA template, so app/+html.tsx (scrollbars, selection, focus ring, background, Movo icon) never ran there. The style sheet and icon now live in one module that +html.tsx uses and DocumentHead adds at runtime when the document lacks them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…p web From 768 px the session page has a main column (hero, coach tip, the plan at a larger media size) and a sticky action column (Start or Log it, Move it, Skip it, Ask your coach, and the done state). Log it is a page with a summary card; FIT and GPX files import from the browser's picker or by drag and drop, read in memory. Feedback opens as a dialog and its options take Space and arrow keys. The gym runner is a full-screen focus mode with keyboard shortcuts; a late timer in a background tab still ends on time. Phones keep their layouts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From 768 px Today shows a page header with week paging (arrows, T) and "Ask your coach", a larger hero for the selected day with the session's steps, a seven-day week board, and a sticky side column: week progress, next week, why this plan and quick plan changes. Building, failed, empty and past-week states have desktop layouts. The step counter reports itself unsupported on the web. Phones keep their layout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
npm run build:pages builds the landing page and exports the Expo app as a single-page app under /hackyeah-2026/app (app.config.ts sets the base path only when EXPO_WEB_BASE_URL is set; local and native builds are unchanged), then copies the app page to 404.html so deep links and reloads work. It refuses to build without Supabase values or with a secret key. The Pages workflow typechecks and builds on pull requests without deploying, and deploys from main and develop. It uses repository variables when set and otherwise the publishable Supabase URL and key, which the client bundle carries anyway. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds the web app feature doc (desktop panel, shell, guest mode, redirects, hosted settings) and updates AGENTS.md, the development and design docs and the website README: the web app is the Expo web build, guests are anonymous Supabase users on the real API, and the website demo is gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
npm run preview:pages serves dist/pages under /hackyeah-2026/ the way GitHub Pages does (file, .html, index.html, else 404.html), so reloading an app deep link works as on the real site. The pages-preview launch configuration runs it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Web app: responsive desktop panel, guest mode and GitHub Pages deploy
Co-authored-by: Michal <michal@Michals-MacBook-Pro.local>
Introduce docs/architecture.md: hosting, how the clients reach the database through the product API, how plan generation works, the tech stack, and the structure of the Expo mobile and web app, with Mermaid diagrams. Link it from AGENTS.md. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cel
Przenieść aktualny stan
developnamainjako wydanie projektu.Zakres i zachowanie
mainotrzyma cały standevelopz commitab3dda06(aplikacja mobilna i webowa, landing page, Supabase API, pakiety współdzielone oraz dokumentacja).mainjest przodkiemdevelop, więc scalenie nie wymaga rozwiązywania konfliktów.Kryteria akceptacji
developsą obecne namainpo scaleniu.AGENTS.md.Weryfikacja
git rev-list --left-right --count origin/main...origin/develop→0 206.developdla commita492c7b7zakończył się sukcesem: https://github.com/taqix/hackyeah-2026/actions/runs/37177345687.b3dda06zmienia tylko dokumentację; build dla tego PR zweryfikuje pełny stan przed scaleniem.Migracja i lokalne uruchomienie
Repozytorium nadal używa npm workspaces. Zmiana gałęzi
mainnie uruchamia migracji danych; wdrożenie GitHub Pages nastąpi po scaleniu przez istniejący workflow.