6 Commits
Author SHA1 Message Date
Lucas Berger c43bd314a1 Merge remote-tracking branch 'origin/main' into gsd/phase-20-admin-member-editor-form-declutter
CI / changes (pull_request) Successful in 4s
CI / fast-checks (pull_request) Successful in 2m26s
CI / api (pull_request) Successful in 1m56s
CI / harness (pull_request) Successful in 5m43s
CI / security (pull_request) Successful in 44s
CI / gate (pull_request) Successful in 3s
# Conflicts:
#	.planning/STATE.md
2026-06-18 20:26:49 -04:00
Lucas Berger ba63940071 docs(20): ship phase 20 — PR #25 2026-06-18 20:26:16 -04:00
luckberg 555b33d1f1 Merge pull request 'Phase 17: UI Optimization & Polish' (#24) from gsd/phase-17-ui-optimization-polish into main
Publish / publish (push) Successful in 1m26s
Reviewed-on: #24
2026-06-18 16:24:52 -04:00
Lucas BergerandClaude Opus 4.8 a923c923c9 test(17): open Settings tab before asserting Timezone region in e2e
CI / changes (pull_request) Successful in 5s
CI / api (pull_request) Successful in 2m12s
CI / fast-checks (pull_request) Successful in 2m26s
CI / security (pull_request) Successful in 1m0s
CI / harness (pull_request) Successful in 5m25s
CI / gate (pull_request) Successful in 2s
Phase 17 D-10 reworked /admin into a two-tab layout; the Timezone section
moved into the (initially hidden) Settings tab panel. timezone-verify.spec.ts
predates that rework and asserted the region visible on bare /admin, so all 7
tests timed out in the harness. Click the Settings tab in beforeEach and after
the persist-test reload. Product behavior is correct; the spec was stale.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 15:41:53 -04:00
Lucas BergerandClaude Opus 4.8 24bc8d2c32 style(17): apply prettier formatting to satisfy CI format:check
CI / changes (pull_request) Successful in 6s
CI / api (pull_request) Successful in 2m9s
CI / fast-checks (pull_request) Successful in 2m30s
CI / security (pull_request) Successful in 59s
CI / harness (pull_request) Failing after 12m0s
CI / gate (pull_request) Failing after 2s
Reformats 4 phase-17 files (SettingsSheet.tsx, tokens.css, vite.config.ts,
pwa-assets.config.ts) plus 11 pre-existing non-conformant docs/READMEs that
the repo-wide format:check also flags.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 15:23:35 -04:00
Lucas Berger 6c2c6f24a9 docs(17): ship phase 17 — PR #24
CI / changes (pull_request) Successful in 4s
CI / fast-checks (pull_request) Failing after 1m38s
CI / security (pull_request) Has been cancelled
CI / gate (pull_request) Has been cancelled
CI / api (pull_request) Has been cancelled
CI / harness (pull_request) Has been cancelled
2026-06-18 15:19:23 -04:00
2 changed files with 10 additions and 5 deletions
+4 -5
View File
@@ -4,11 +4,10 @@ milestone: v1.1
milestone_name: Operability & Polish
current_phase: 999.1
current_phase_name: BACKLOG
status: executing
status: "Phase 20 shipped — PR #25"
stopped_at: Phase 20 UI-SPEC approved
last_updated: "2026-06-18T21:47:42.443Z"
last_updated: "2026-06-19T00:26:05.257Z"
last_activity: 2026-06-18
last_activity_desc: Phase 20 complete, transitioned to Phase 999.1
progress:
total_phases: 27
completed_phases: 13
@@ -30,8 +29,8 @@ See: .planning/PROJECT.md (updated 2026-06-16)
Phase: 999.1 — Treat Fastmail as one calendar provider; framework supports adding more providers (BACKLOG)
Plan: Not started
Status: Ready to execute
Last activity: 2026-06-18 — Phase 20 complete, transitioned to Phase 999.1
Status: Phase 20 shipped — PR #25
Last activity: 2026-06-18
### ✅ Resolved Checkpoint — Phase 15 Plan 15-03 Task 2 (human-action)
+6
View File
@@ -20,6 +20,10 @@ test.describe('Admin Timezone section — 18-04 round-trip', () => {
test.skip(testInfo.project.name !== 'desktop', 'Admin timezone UI is desktop-only');
await page.goto('/admin');
await expect(page.getByRole('heading', { name: 'Admin Settings' })).toBeVisible();
// Phase 17 (D-10) reworked /admin into a two-tab layout; the Timezone section
// now lives in the "Settings" tab panel, which is hidden until selected. Open
// it before asserting the section.
await page.getByRole('tab', { name: 'Settings' }).click();
// Wait for the Timezone section to load (requires the 18-02 GET endpoint)
const tzSection = page.getByRole('region', { name: 'Timezone' });
await expect(tzSection).toBeVisible({ timeout: 15_000 });
@@ -98,6 +102,8 @@ test.describe('Admin Timezone section — 18-04 round-trip', () => {
// Reload and verify persistence
await page.reload();
await expect(page.getByRole('heading', { name: 'Admin Settings' })).toBeVisible();
// Reload resets to the default "Members & Accounts" tab — re-open Settings.
await page.getByRole('tab', { name: 'Settings' }).click();
await expect(tzSection).toBeVisible({ timeout: 15_000 });
const inputAfterReload = page.getByRole('combobox', { name: 'Household timezone' });
await expect(inputAfterReload).toHaveValue('America/Chicago');