This website requires JavaScript.
cf9e345b87
docs(quick-260619-jp4): add app screenshots to README
gsd/v1.2-multi-provider-theming-zero-setup
Lucas Berger and Claude Opus 4.8
2026-06-19 14:24:33 -04:00
23dc3cdd3f
docs(readme): add app screenshots and Features section
Lucas Berger and Claude Opus 4.8
2026-06-19 14:24:13 -04:00
700294a643
docs: create milestone v1.2 roadmap (8 phases)
Lucas Berger
2026-06-19 14:09:29 -04:00
67430bb670
docs: regenerate research SUMMARY for v1.2
Lucas Berger
2026-06-19 14:01:13 -04:00
4e0a5e38e8
docs: define milestone v1.2 requirements
Lucas Berger
2026-06-19 13:56:19 -04:00
6e1c9ca924
docs: complete v1.2 research (stack, features, architecture, pitfalls)
Lucas Berger and Claude Opus 4.8
2026-06-19 09:27:35 -04:00
303484d0ab
docs: start milestone v1.2 Multi-Provider, Theming & Zero-Setup
Lucas Berger
2026-06-19 09:13:30 -04:00
6ade8d59bf
docs: correct rrule drift (code uses ical.js RecurExpansion) + minor fixes
main
Lucas Berger and Claude Opus 4.8
2026-06-18 22:29:03 -04:00
c7955a46b9
chore: archive v1.1 phase directories to milestones/v1.1-phases/
Lucas Berger and Claude Opus 4.8
2026-06-18 22:21:38 -04:00
a2890d1542
chore(gsd): switch branching strategy to per-milestone
Lucas Berger and Claude Opus 4.8
2026-06-18 22:20:31 -04:00
66e3b806be
chore: remove REQUIREMENTS.md for v1.1 milestone
v1.1
Lucas Berger and Claude Opus 4.8
2026-06-18 22:04:01 -04:00
7fbb3cca9d
chore: archive v1.1 milestone files
Lucas Berger and Claude Opus 4.8
2026-06-18 22:03:56 -04:00
6cc3b8ae27
Merge pull request 'chore(ci): persistent pnpm store + Playwright caches (and Dockerfile BuildKit cache)' (#27 ) from gsd/quick-260618-tg2-ci-dep-cache into main
luckberg
2026-06-18 21:32:06 -04:00
c5cdb9c21d
docs(quick-260618-tg2): persistent CI dependency caches (pnpm store + Playwright + Dockerfile)
Lucas Berger
2026-06-18 21:21:26 -04:00
6e93e24df0
chore(260618-tg2): BuildKit pnpm-store cache mount in Dockerfile build
Lucas Berger and Claude Opus 4.8
2026-06-18 21:19:45 -04:00
f83d423e1c
docs(20): document CI persistent cache host-mount dependency
Lucas Berger
2026-06-18 21:16:52 -04:00
80b20383f1
chore(20): persistent CI caches — pnpm store + Playwright browsers
Lucas Berger
2026-06-18 21:16:43 -04:00
2276a254e4
chore: remove unused Redis service and references (#26 )
luckberg
2026-06-18 21:06:32 -04:00
0810260d0b
docs(20): add orphaned phase-20 UAT (7/7 passed, playwright-verified)
Lucas Berger and Claude Opus 4.8
2026-06-18 20:48:52 -04:00
cc76a32d0a
Merge pull request 'Phase 20: Admin Member Editor & Form Declutter' (#25 ) from gsd/phase-20-admin-member-editor-form-declutter into main
luckberg
2026-06-18 20:40:33 -04:00
c43bd314a1
Merge remote-tracking branch 'origin/main' into gsd/phase-20-admin-member-editor-form-declutter
Lucas Berger
2026-06-18 20:26:49 -04:00
ba63940071
docs(20): ship phase 20 — PR #25
Lucas Berger
2026-06-18 20:26:16 -04:00
f0aa901f57
docs(phase-20): add security threat verification
Lucas Berger
2026-06-18 20:21:27 -04:00
8829fd22b5
docs(20): mark IN-04 resolved — review fully clean
Lucas Berger and Claude Opus 4.8
2026-06-18 18:22:43 -04:00
5161bd39c2
fix(20): IN-04 skip profile-saved toast + refetch on no-op save
Lucas Berger and Claude Opus 4.8
2026-06-18 18:22:29 -04:00
5240f1e503
docs(20): add code review fix report — 11/11 fixed, re-review clean
Lucas Berger and Claude Opus 4.8
2026-06-18 18:13:39 -04:00
41a4faec94
fix(20): prettier format admin.test.ts
Lucas Berger and Claude Sonnet 4.6
2026-06-18 18:05:14 -04:00
182ba1d477
fix(20): IN-02 add maxLength to display-name and username inputs
Lucas Berger and Claude Sonnet 4.6
2026-06-18 18:03:20 -04:00
400733fdc7
fix(20): IN-01 helper text when display name is empty
Lucas Berger and Claude Sonnet 4.6
2026-06-18 18:02:49 -04:00
d2e9862849
fix(20): WR-05 add aria-describedby to admin toggle for last-admin error
Lucas Berger and Claude Sonnet 4.6
2026-06-18 18:02:27 -04:00
2fd253ea95
fix(20): WR-03 IN-03 phone sheet maxHeight scroll and safe-area padding
Lucas Berger and Claude Sonnet 4.6
2026-06-18 18:01:59 -04:00
527d85530c
fix(20): WR-01 WR-02 WR-04 profile mutation and handleClose fixes
Lucas Berger and Claude Sonnet 4.6
2026-06-18 18:01:32 -04:00
ee04aee4fb
fix(20): CR-02 derive editorMember from live query data
Lucas Berger and Claude Sonnet 4.6
2026-06-18 18:00:47 -04:00
72977334fc
fix(20): CR-01 WR-06 atomic last-admin guard + empty-body 400
Lucas Berger and Claude Sonnet 4.6
2026-06-18 17:59:56 -04:00
5c74ada48b
docs(20): add deep code review report
Lucas Berger
2026-06-18 17:57:08 -04:00
f656a0c77b
docs(phase-20): evolve PROJECT.md after phase completion
Lucas Berger and Claude Opus 4.8
2026-06-18 17:48:23 -04:00
dec8220da3
docs(phase-20): complete phase execution — verification passed (9/9), advisory review
Lucas Berger and Claude Opus 4.8
2026-06-18 17:47:51 -04:00
80fd683877
docs(20-03): complete member editor + declutter plan
Lucas Berger
2026-06-18 17:40:52 -04:00
9b62887f0f
feat(20-03): unify member editor + declutter admin members panel
Lucas Berger
2026-06-18 17:39:00 -04:00
9e6b004541
feat(20-03): rework AdminPage MemberRow + Add-member trigger; remove old surfaces
Lucas Berger
2026-06-18 17:35:37 -04:00
b125a69b58
feat(20-03): add MemberEditorSheet with edit/create modes and per-section saves
Lucas Berger
2026-06-18 17:31:46 -04:00
10149a5966
docs(phase-20): update tracking after wave 1
Lucas Berger
2026-06-18 17:23:49 -04:00
258a188bde
chore: merge executor worktree (worktree-agent-af493496867aaca6d)
Lucas Berger
2026-06-18 17:21:59 -04:00
b377e9cb0a
chore: merge executor worktree (worktree-agent-afcc2c886302ea642)
Lucas Berger
2026-06-18 17:21:59 -04:00
4a179a943d
docs(20-01): complete member-profile update plan — SUMMARY + all CI gates green
Lucas Berger
2026-06-18 17:21:30 -04:00
618991cf13
docs(20-02): complete plan 20-02 summary
Lucas Berger and Claude Sonnet 4.6
2026-06-18 17:21:26 -04:00
5bcd8180c1
feat(20-02): add updateMemberProfile fetcher + AdminMember.isAdmin
Lucas Berger and Claude Sonnet 4.6
2026-06-18 17:20:13 -04:00
bc48632756
feat(20-01): add PATCH /members/:id member-profile update with last-admin guard
Lucas Berger
2026-06-18 17:19:43 -04:00
18da7e9476
test(20-02): add failing tests for updateMemberProfile + AdminMember.isAdmin
Lucas Berger and Claude Sonnet 4.6
2026-06-18 17:18:21 -04:00
a0a82ac9b6
test(20-01): add failing tests for member-profile update + last-admin guard + isAdmin read
Lucas Berger
2026-06-18 17:18:14 -04:00
9b8b84edbe
docs(20): finalize phase plan (state, roadmap waves, patterns)
Lucas Berger
2026-06-18 17:06:40 -04:00
666845a192
docs(20): create phase plan
Lucas Berger
2026-06-18 17:04:21 -04:00
a3d89d0da0
docs(20): UI design contract
Lucas Berger
2026-06-18 16:51:46 -04:00
96193831c4
docs(20): UI design contract
Lucas Berger
2026-06-18 16:50:31 -04:00
fe0325ec43
docs(state): record phase 20 context session
Lucas Berger
2026-06-18 16:42:23 -04:00
91948919a8
docs(20): capture phase context
Lucas Berger
2026-06-18 16:42:19 -04:00
555b33d1f1
Merge pull request 'Phase 17: UI Optimization & Polish' (#24 ) from gsd/phase-17-ui-optimization-polish into main
luckberg
2026-06-18 16:24:52 -04:00
a923c923c9
test(17): open Settings tab before asserting Timezone region in e2e
Lucas Berger and Claude Opus 4.8
2026-06-18 15:41:53 -04:00
24bc8d2c32
style(17): apply prettier formatting to satisfy CI format:check
Lucas Berger and Claude Opus 4.8
2026-06-18 15:23:35 -04:00
6c2c6f24a9
docs(17): ship phase 17 — PR #24
Lucas Berger
2026-06-18 15:19:23 -04:00
51ec9c3e82
docs(roadmap): add Phase 20 — Admin Member Editor & Form Declutter
Lucas Berger
2026-06-18 15:14:25 -04:00
b8d4a69b73
docs(phase-17): add security threat verification (9 closed, 0 open)
Lucas Berger
2026-06-18 14:33:10 -04:00
881f2d2d18
test(17): complete UAT - 9 passed, 0 issues (playwright-cli verified)
Lucas Berger
2026-06-18 14:31:32 -04:00
6fa6725fe8
docs(17): add code review fix report (auto-loop, 3 iterations)
Lucas Berger
2026-06-18 14:06:03 -04:00
287ecae2f7
fix(17): CR-01 make focus-trap visibility filter tolerant of jsdom; IN-01 drop inert containment guard
Lucas Berger
2026-06-18 14:04:33 -04:00
89dee4f586
fix(17): IN-03 render visible Redirecting status during OIDC redirect
Lucas Berger
2026-06-18 13:57:31 -04:00
f7575ea2c3
fix(17): IN-02 document hand-maintained favicon.ico coupling
Lucas Berger
2026-06-18 13:56:48 -04:00
7578d48d3d
fix(17): IN-01 pull focus back into dialog when activeElement escapes
Lucas Berger
2026-06-18 13:56:32 -04:00
5b4625b41d
fix(17): WR-01 exclude hidden/zero-size nodes from focus-trap boundaries
Lucas Berger
2026-06-18 13:56:23 -04:00
4bc1e2a820
fix(17): IN-05 normalize AdminPage JSX formatting with Prettier
Lucas Berger
2026-06-18 13:48:34 -04:00
11b6b36cb9
fix(17): IN-07 memoize Intl.DateTimeFormat timezone resolution
Lucas Berger
2026-06-18 13:47:37 -04:00
2317833b74
fix(17): IN-04 remove dead brand placeholder tokens
Lucas Berger
2026-06-18 13:46:47 -04:00
3f4b7eac73
fix(17): IN-02 useCallback handleClose, drop exhaustive-deps disables
Lucas Berger
2026-06-18 13:46:27 -04:00
dd0b76128d
fix(17): WR-08 replace cp icon chain with cross-platform Node copy script
Lucas Berger
2026-06-18 13:45:36 -04:00
1c0f35748d
fix(17): WR-06 WR-07 clamp tz combobox active index; Tab-to-commit, blur-timer unmount cleanup
Lucas Berger
2026-06-18 13:44:44 -04:00
f601c0c408
fix(17): WR-02 WR-03 WR-04 IN-06 admin tab Home/End+wrap; toast re-announce, wrap, z-index 400
Lucas Berger
2026-06-18 13:43:10 -04:00
fb30800e9a
fix(17): WR-01 trap focus in modal dialogs via useFocusTrap
Lucas Berger
2026-06-18 13:41:33 -04:00
a4a7438641
fix(17): WR-05 IN-03 IN-01 resize-aware useIsPhone hook; OidcRedirect side-effect in effect
Lucas Berger
2026-06-18 13:40:00 -04:00
c2ceebf130
docs(17): add deep code review report
Lucas Berger
2026-06-18 13:35:10 -04:00
a986c74963
docs(phase-17): mark phase complete (pending human verification)
Lucas Berger and Claude Opus 4.8
2026-06-18 13:11:35 -04:00
fcc02e3833
docs(17): add phase verification report (10/10 decisions delivered; human_needed for device-only checks)
Lucas Berger and Claude Opus 4.8
2026-06-18 13:11:23 -04:00
9730d3dcdb
docs(17): add code review report
Lucas Berger and Claude Opus 4.8
2026-06-18 13:06:20 -04:00
ea49a4dc83
docs(phase-17): update tracking after wave 2
Lucas Berger and Claude Opus 4.8
2026-06-18 13:03:12 -04:00
b5fcd1d172
fix(17): resolve post-merge wave 2 integration issues
Lucas Berger and Claude Opus 4.8
2026-06-18 13:01:39 -04:00
4887ba1b5f
chore: merge executor worktree (worktree-agent-a12887546a61a8053)
Lucas Berger
2026-06-18 12:58:59 -04:00
aaf754d938
chore: merge executor worktree (worktree-agent-a65077bbd9885bf7e)
Lucas Berger
2026-06-18 12:58:58 -04:00
9e39a5c492
chore: merge executor worktree (worktree-agent-ad448992e936c77aa)
Lucas Berger
2026-06-18 12:58:57 -04:00
29f3d62312
chore: merge executor worktree (worktree-agent-a1f3ad1ab5d67e70c)
Lucas Berger
2026-06-18 12:58:56 -04:00
f4c65d478a
docs(17-06): complete admin polish plan — toasts + two-tab ARIA nav + e2e assertions
Lucas Berger
2026-06-18 12:58:06 -04:00
944045cd7e
test(17-06): add admin two-tab ARIA and keyboard assertions to admin.spec.ts
Lucas Berger
2026-06-18 12:56:34 -04:00
caff8b4b0a
docs(17-05): complete logout control + sheet centering plan
Lucas Berger
2026-06-18 12:54:43 -04:00
28e9ca9840
docs(17-03): complete phone layout overlap fix plan — SUMMARY.md
Lucas Berger
2026-06-18 12:54:30 -04:00
620d64138a
feat(17-06): add success toasts to admin create-member and reset-password
Lucas Berger
2026-06-18 12:53:12 -04:00
b71238634f
feat(17-05): add phone/desktop style branch to CredentialSheet (D-09)
Lucas Berger
2026-06-18 12:52:59 -04:00
132a5e4eae
feat(17-05): add Sign out control with handleSignOut to SettingsSheet (D-07)
Lucas Berger
2026-06-18 12:52:48 -04:00
4cb16f8271
docs(17-04): complete brand wiring plan — BrandSlot logo, favicons, maskable icon fix, accent
Lucas Berger
2026-06-18 12:51:58 -04:00
85a803fba6
test(17-03): add FAB↔BottomTabBar overlap regression guard to layout.spec.ts
Lucas Berger
2026-06-18 12:51:32 -04:00
df578fd7b7
feat(17-04): wire favicons + theme-color in index.html, fix maskable icon + accent in manifest
Lucas Berger
2026-06-18 12:50:50 -04:00
ce95aa3e6b
feat(17-04): wire logo img into BrandSlot, set --brand-logo-border-radius 0
Lucas Berger
2026-06-18 12:48:55 -04:00
5e1c714894
fix(17-03): lift FAB above BottomTabBar and reserve phone content padding
Lucas Berger
2026-06-18 12:48:35 -04:00