diff --git a/.planning/STATE.md b/.planning/STATE.md index 36fab11..4321ddd 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -27,7 +27,7 @@ See: .planning/PROJECT.md (updated 2026-06-18 after v1.1 milestone) Phase: 21 of 28 (Zero-Setup DB Bootstrap) — first v1.2 phase Plan: — (not yet planned) Status: Ready to plan -Last activity: 2026-06-19 — v1.2 ROADMAP.md created (Phases 21–28); 11/11 requirements mapped, no orphans +Last activity: 2026-06-19 — Completed quick task 260619-jp4: added app screenshots + README Features section Progress: [░░░░░░░░░░] 0% (0/8 v1.2 phases) @@ -259,6 +259,7 @@ Recent decisions affecting current work: | 260613-ndv | Isolate local apps/api integration tests to a dedicated `familysync_test` DB so test runs stop polluting the dev `familysync` DB. New CI-gated vitest globalSetup root-provisions (CREATE DATABASE + GRANT) + migrates + truncate-resets `familysync_test` each run; `vitest.config.ts` forces `DB_NAME=familysync_test` for local workers (no-op under CI, so CI's `familysync` service DB + db:migrate are untouched). Verified: dev `familysync` users stays 3 across a run, `familysync_test` resets (186→93, not doubled), 244/244 tests pass (flaky list_shares timeout gone), typecheck 0. Branch off main. | 2026-06-13 | 07d5161 | Verified | [260613-ndv-wire-apps-api-integration-tests-to-a-ded](./quick/260613-ndv-wire-apps-api-integration-tests-to-a-ded/) | | 260618-smr | Remove unused Redis service and all references — Redis confirmed unused at runtime (no ioredis/redis client import, no `REDIS_*` env, not a dependency in any package.json). Dropped the `redis` service from both compose files and cleaned all references in CLAUDE.md, README.md, and docs/* + e2e config. Kept the in-memory-vs-Redis design-rationale comments (D-12/D-18) in listEmitter/reminderScheduler/linkNonceStore/localAuth. `docker compose config` parses clean (0 redis); `format:check` green. Branch off main. | 2026-06-18 | 0b42666 | Verified | [260618-smr-remove-unused-redis-service-and-referenc](./quick/260618-smr-remove-unused-redis-service-and-referenc/) | | 260618-tg2 | Persistent CI dependency caches — point all 4 CI `pnpm install` steps at a host-mounted `/pnpm-store` (`--store-dir /pnpm-store --prefer-offline`) and persist Playwright browsers via `PLAYWRIGHT_BROWSERS_PATH=/ms-playwright` on the harness job; added BuildKit `--mount=type=cache` to all 3 Dockerfile install stages + `DOCKER_BUILDKIT=1` on the publish build. Avoids `actions/cache` (D-PROBE-04 timeout). In-repo only — requires act_runner `config.yaml` `container.options` host mounts (manual host change). Verdaccio deferred. Branch off main. | 2026-06-18 | 6e93e24 | Verified | [260618-tg2-persistent-ci-dependency-caches-pnpm-sto](./quick/260618-tg2-persistent-ci-dependency-caches-pnpm-sto/) | +| 260619-jp4 | Add six app screenshots (Calendar, Lists, List detail, Login, Setup wizard, Admin) to `docs/screenshots/` and rebuild the README intro into a "Features" section that expands the description, one screenshot per capability. Captured via playwright-cli (Chromium) against the live dev stack with demo data mocked per-browser via `route` interception — nothing written to the real Fastmail account. prettier + md:lint green. Branch: gsd/v1.2-multi-provider-theming-zero-setup. | 2026-06-19 | 23dc3cd | | [260619-jp4-add-app-screenshots-to-readme](./quick/260619-jp4-add-app-screenshots-to-readme/) | ## Deferred Items diff --git a/.planning/quick/260619-jp4-add-app-screenshots-to-readme/260619-jp4-PLAN.md b/.planning/quick/260619-jp4-add-app-screenshots-to-readme/260619-jp4-PLAN.md new file mode 100644 index 0000000..7b26807 --- /dev/null +++ b/.planning/quick/260619-jp4-add-app-screenshots-to-readme/260619-jp4-PLAN.md @@ -0,0 +1,50 @@ +--- +quick_id: 260619-jp4 +slug: add-app-screenshots-to-readme +status: complete +date: 2026-06-19 +--- + +# Quick Task 260619-jp4: Add app screenshots to README + +## Goal + +Add real screenshots of the running FamilySync PWA to the README, organized into +a **Features** section that expands on the top-line project description (per user +follow-up: "the screenshots should go in some sort of features section that +expands on the description"). + +## Approach + +1. Drive the live dev app (Vite :5173 + API :3000, dev-auth-bypass) with + `playwright-cli` (Chromium) and capture six views: Calendar, Lists index, + List detail, Login, Setup wizard, Admin. +2. The live instance has only one seeded event and one list — too sparse to + showcase. Per the user's decision (AskUserQuestion: "Mock locally"), populate + the views by intercepting API responses in the browser with `playwright-cli + route` (no writes to the real Fastmail account): + - `/api/me` → friendly member "Jordan" (blue), admin, setup not needed + - `/api/events` → a full June 2026 month of color-coded personal + family events + - `/api/lists` + `/api/lists/*/items` → four lists, a stocked grocery list + - `/api/admin/members` + `/api/admin/calendars` → two-person household + - `/api/setup/status` → `setupComplete:false` so the wizard renders +3. Save final PNGs to `docs/screenshots/`. +4. Rewrite the README "What It Does" bullets into a "## Features" section with + one screenshot per capability and expanded prose. + +## Tasks + +- [x] Capture six screenshots into `docs/screenshots/` via playwright-cli (mocked data) +- [x] Replace README "What It Does" with a "Features" section embedding the screenshots +- [x] Pass local CI gates (prettier, markdownlint) + +## Files + +- `docs/screenshots/*.png` (new — 6 images) +- `README.md` (Features section) + +## Verify + +- `pnpm exec prettier --check README.md` → clean +- `pnpm md:lint` → 0 errors (MD033 inline-HTML active → pure-markdown images only) +- Images resolve at `docs/screenshots/.png` relative paths diff --git a/.planning/quick/260619-jp4-add-app-screenshots-to-readme/260619-jp4-SUMMARY.md b/.planning/quick/260619-jp4-add-app-screenshots-to-readme/260619-jp4-SUMMARY.md new file mode 100644 index 0000000..fc891b2 --- /dev/null +++ b/.planning/quick/260619-jp4-add-app-screenshots-to-readme/260619-jp4-SUMMARY.md @@ -0,0 +1,50 @@ +--- +quick_id: 260619-jp4 +slug: add-app-screenshots-to-readme +status: complete +date: 2026-06-19 +--- + +# Quick Task 260619-jp4 — Summary + +## What was done + +Added six real screenshots of the running PWA to `docs/screenshots/` and rebuilt +the README intro into a **Features** section that expands the project description, +pairing each capability with its screenshot: + +| View | File | Feature | +| --- | --- | --- | +| Calendar (month) | `calendar.png` | One color-coded family calendar | +| Lists index | `lists.png` | Shared collaborative lists | +| List detail | `list-detail.png` | Live-syncing list items | +| Login | `login.png` | Single sign-on (local + Authelia OIDC) | +| Setup wizard | `setup.png` | Guided zero-setup onboarding | +| Admin | `admin.png` | Household administration | + +## How + +Captured with `playwright-cli` (Chromium — the box has no Google Chrome) against +the live dev stack. Demo data was injected per-browser via `playwright-cli route` +response interception — **nothing was written to the real Fastmail account** +(user chose "Mock locally"). Screens that fight the dev-bypass authed/locked +state were unlocked by mocking `/api/me`, `/api/setup/status`, and the auth/admin +endpoints. Login and Setup were reframed at a 1280×720 viewport to remove dead +vertical space; the content views at 1280×900. + +## Notes / honest caveats + +- The list-detail header literally reads "List", not the list name — that is the + app's own placeholder (`apps/pwa/src/routes/ListDetail.tsx:380`, "List name not + available without an extra fetch"), not a screenshot artifact. Left as-is rather + than faking the real UI. +- The color-legend in the sidebar shows the current member + "Family" by design + (`App.tsx` derives legend members from `/api/me` only); the two-person household + is shown on the Admin members screen. + +## Verification + +- `pnpm exec prettier --check README.md` → "All matched files use Prettier code style!" +- `pnpm md:lint` → Summary: 0 error(s) (12 files) +- Images committed under `docs/screenshots/` (not gitignored); README references + resolve via relative paths.