Changelog — PulseCap

6.46.9 (2026-10-19) — Splash CLS root fix

6.46.8 (2026-10-19) — Version sync + CLS / MODULE_CHAIN

6.46.2 (2026-10-16) — Ember decks + icon parity

Pitch/presentation remapped to Ember orange. Leftover cyan apple-touch and icons/ copies aligned with Ember PNGs.

6.46.1 (2026-10-16) — Honest first paint

6.46.0 (2026-10-15) — Splash overlay / LCP

6.45.0 (2026-10-14) — Perfection Loop v3

6.44.0 (2026-10-06) — Full exercise universe + Training Guide

6.43.1

Sync APP_VERSION with VERSION.json. Review 3: defer route-only DBs/modules off first paint. SW pulsecap-v135.

6.43.0

Tier 1 finish: Today demo banner + no duplicate Progress CTA; actionable insight; sentence-case tabs; type floor ≥11px; safe-area tab/rest/workout chrome; §4.2 disclaimers; privacy notes. SW pulsecap-v135.

6.41.0 (2026-08-18) — Final verification

Firefox and WebKit suite green after a cross-engine storage-full toast stub. Airplane-mode log-a-set then Progress. PWA chrome contract: theme-color tokens, maskable icons, iOS launch images. Closing review recorded. SW pulsecap-v135.

6.40.0 (2026-08-18) — Documentation + site sync

Synced README/GUIDE/HANDOVER/marketing copy to shipped truth, archived pre-Ember IA/audit docs to avoid stale guidance, and regenerated the screenshot gallery. SW pulsecap-v135.

6.39.0 (2026-08-18) — Every state copy

Near-empty gym gap banner made encouraging. Storage-full next step clarified with an export-backup pointer. Invalid plan JSON import now uses plain-language “PulseCap plan JSON / paste text” guidance. SW pulsecap-v135.

6.38.0 (2026-08-18) — Onboarding as a welcome

Added a Playwright guardrail for the onboarding “skip optional fields” path so new users reliably reach Today. SW pulsecap-v135.

6.37.0 (2026-08-18) — Motion seam

Removed the artificial 300ms splash boot floor so the app flows continuously into the existing splash exit motion. Kept the same motion constraints. SW pulsecap-v135.

6.36.0 (2026-08-18) — Brand integrity

Icon + maskable set regenerated for the Ember accent. Theme color single source of truth (no stale overwrite). Added iOS launch screens, synced manifest positioning/shortcuts, and fixed the last light-mode contrast failure. SW pulsecap-v135.

6.35.0 (2026-08-18) — Selected-chip contrast

White on bright orange fills was still ~2.6:1. New --on-accent token (#1C1C1E) for text on accent/grad fills. Mesocycle phase label 11px. Gradient-aware contrast audit. SW pulsecap-v135.

6.34.0 (2026-08-18) — Light accent contrast

Accent as text on light backgrounds was 2.4:1. New --accent-text token for labels and icons; bright accent stays for fills and nav. Selects match the design system. Full computed-background contrast audit on all screens. SW pulsecap-v135.

6.33.0 (2026-08-18) — QA sweep

Interaction, contrast, width, and empty/extreme states checked. Docs, gallery, and marketing pages synced. SW pulsecap-v135.

6.32.0 (2026-08-18) — Equipment catalogue

Machine type is the key; brand is optional. Search and select-all-in-view so a commercial gym can be described in a couple of minutes. SW pulsecap-v135.

6.31.0 (2026-08-18) — Gym machines actually filter

Picking a leg press and a lat pulldown now changes the plan. Brand is a label. If a muscle group has no loaded movement, the app says so. SW pulsecap-v135.

6.30.0 (2026-08-18) — Settings gutter and tabs

Form controls sit on a 16px gutter. Eight Settings tabs scroll as one row instead of wrapping. SW pulsecap-v135.

6.29.0 (2026-08-18) — Vertical layout

One bottom-padding rule. Today fills the screen with last session, next up, and this-week consistency — not empty space. SW pulsecap-v135.

6.28.0 (2026-08-18) — Re-render contract

Tapping a control on the same screen keeps your scroll position and keyboard focus. Navigation still starts at the top. SW pulsecap-v135.

6.27.0 (2026-08-18) — Injuries and coverage

Eight joints is the one model. Named conditions map onto them; left/right is not a separate filter. Every equipment kit still has a trainable session with any one limitation on. SW pulsecap-v135.

6.26.0 (2026-08-18) — Food library

235 foods with labelled portions and a source on every row. Karachi staples (roti, daal, karahi, nihari, biryani) sit next to USDA items. Lite guidance — not a calorie tracker. SW pulsecap-v135.

6.25.0 (2026-08-18) — Sports and MET sources

Cricket sessions for Karachi. Plyos are no longer labelled sports. Effort METs come from the Compendium and are labelled estimates — they are not calorie totals. SW pulsecap-v135.

6.24.0 (2026-08-18) — Movement patterns

Every lift is tagged (push, pull, hinge, squat…). Swap stays in-pattern. Progress can say if you press twice as often as you pull — no score. SW pulsecap-v135.

6.23.0 (2026-08-18) — Wrist / neck / ankle

Those three limitations now filter the library instead of doing nothing. Log shows a plain-language caution. SW pulsecap-v135.

6.22.0 (2026-08-18) — Exercise ids

Logged sets now carry a stable exercise id. Duplicate library names were merged so progress stays one series per lift. SW pulsecap-v135.

6.21.0 (2026-08-18) — Personalization spine

Calories and protein now come from height, weight, age, days/week and goal. Onboarding asks equipment and training days. Programs ships multiple templates plus a builder. Readiness stays a word until you have three sessions. Rest timer uses wall-clock time.

6.17.0 (2026-08-17) — Log + Train constitution

6.16.0 (2026-08-17) — Ember rebuild complete

6.15.0 (2026-08-17) — Phase 9

6.14.0 (2026-08-17) — Phase 8

6.13.0 (2026-08-17) — Phase 7

6.12.0 (2026-08-17) — Phase 6

6.11.0 (2026-08-17) — Phase 5

6.10.0 (2026-08-17) — Phase 4

6.9.0 (2026-08-17) — Phase 3

6.8.0 (2026-08-17) — Ember rebuild Phase 2

6.7.0 (2026-08-17) — Ember rebuild Phase 1

6.6.0 (2026-08-17) — Personalized Program Intelligence

6.43.1 (2026-09-15)

6.5.1 (2026-07-30)

6.5.0 (2026-07-30)

6.3.0 (2026-07-21)

6.2.4 (2026-07-19)

6.2.1 (2026-07-19)

6.2.0 (2026-07-18)

6.1.0 (2026-07-18)

6.0.0 (2026-07-18)

Docs (2026-07-18)

5.6.6 (2026-07-17)

5.6.5 (2026-07-17)

5.6.4 (2026-07-17)

5.6.3 (2026-07-17)

5.6.2 (2026-07-17)

5.6.1 (2026-07-17)

5.6.0 (2026-07-17)

5.5.2 (2026-07-17)

5.5.1 (2026-07-17)

5.5.0 (2026-07-17)

5.4.0 (2026-07-17)

5.3.0 (2026-07-17)

5.2.0 (2026-07-16)

5.1.0 (2026-07-16)

5.0.1 (2026-07-16)

5.0.0 (2026-07-11)

4.7.3 (2026-06-16)

Phase 2 — Quality (2026-06-10)