Skip to content

Release: promote develop to main - #24

Merged
vende11s merged 206 commits into
mainfrom
develop
Oct 4, 2026
Merged

vende11s merged 206 commits into
mainfrom
develop

Conversation

@vende11s

@vende11s vende11s commented Oct 4, 2026

Copy link
Copy Markdown
Collaborator

Cel

Przenieść aktualny stan develop na main jako wydanie projektu.

Zakres i zachowanie

  • main otrzyma cały stan develop z commita b3dda06 (aplikacja mobilna i webowa, landing page, Supabase API, pakiety współdzielone oraz dokumentacja).
  • main jest przodkiem develop, więc scalenie nie wymaga rozwiązywania konfliktów.

Kryteria akceptacji

  • Zmiany z develop są obecne na main po scaleniu.
  • Build GitHub Pages dla PR kończy się sukcesem.
  • PR ma akceptację jednej osoby z zespołu zgodnie z AGENTS.md.

Weryfikacja

  • git rev-list --left-right --count origin/main...origin/develop → 0 206.
  • Ostatni uruchomiony workflow GitHub Pages na develop dla commita 492c7b7 zakończył się sukcesem: https://github.com/taqix/hackyeah-2026/actions/runs/37177345687.
  • Commit b3dda06 zmienia 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 main nie uruchamia migracji danych; wdrożenie GitHub Pages nastąpi po scaleniu przez istniejący workflow.

Michal and others added 30 commits October 3, 2026 14:40
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>
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
Teksiak and others added 29 commits October 4, 2026 04:38
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>
@vende11s
vende11s merged commit e6cae83 into main Oct 4, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants