-
d0477b1c13
Phase 2: toolbar responsive patterns
Kyle Pope
2026-03-07 16:56:08 +08:00
-
1c16df4db0
Phase 1: mobile responsive foundation
Kyle Pope
2026-03-07 16:51:53 +08:00
-
-
36309c2460
Merge feature/birthday-sync: sync DOB to umbral contacts on profile/settings change
Kyle Pope
2026-03-07 06:19:16 +08:00
-
-
66cc1a0457
Action QA findings: refactor sync to accept resolved values
feature/birthday-sync
Kyle Pope
2026-03-07 06:13:21 +08:00
-
8aec5a5078
Sync birthday to umbral contacts on DOB or share_birthday change
Kyle Pope
2026-03-07 06:01:35 +08:00
-
-
f0e8f450f3
Merge feature/shared-calendars: full shared calendar system
Kyle Pope
2026-03-07 00:57:29 +08:00
-
-
ff81ef7c14
Fix calendar sidebar resize lag at fast drag speeds
feature/shared-calendars
Kyle Pope
2026-03-07 00:47:47 +08:00
-
59c89c904c
Resizable calendar sidebar with localStorage persistence
Kyle Pope
2026-03-06 23:58:50 +08:00
-
1bc1e37518
Fix W-06 regression: preferred_name is on Settings, not User model
Kyle Pope
2026-03-06 23:49:49 +08:00
-
cdbf3175aa
Fix remaining QA warnings: lazy=raise on CalendarMember + bidirectional connection check
Kyle Pope
2026-03-06 23:45:10 +08:00
-
dd862bfa48
Fix QA review findings: 3 critical, 5 warnings, 1 suggestion
Kyle Pope
2026-03-06 23:41:08 +08:00
-
206144d20d
Fix 2 pentest findings: unlock permission check + permanent lock preservation
Kyle Pope
2026-03-06 23:37:05 +08:00
-
8f777dd15a
Fix lock banner: use viewLockQuery.data directly instead of syncing through state
Kyle Pope
2026-03-06 17:47:26 +08:00
-
3dcf9d1671
Fix isSharedEvent excluding calendar owners — lock banner never appeared for owners
Kyle Pope
2026-03-06 17:41:47 +08:00
-
e62503424c
Fix event lock system: banner persistence, stale isEditing guard, and Edit button gating
Kyle Pope
2026-03-06 17:26:22 +08:00
-
c55af91c60
Fix two shared calendar bugs: lock banner missing and calendar not found on save
Kyle Pope
2026-03-06 17:16:35 +08:00
-
38334b77a3
Shrink color picker swatches (h-8 → h-6)
Kyle Pope
2026-03-06 17:02:29 +08:00
-
a2f4d297a3
Single-line member rows + purple umbral name
Kyle Pope
2026-03-06 16:58:51 +08:00
-
1b36e6b6a7
Widen shared calendar dialogs + single-line member rows
Kyle Pope
2026-03-06 16:54:25 +08:00
-
b401fd9392
Phase 6: Real-time sync, drag-drop guards, security fix, invite bug fix, UI polish
Kyle Pope
2026-03-06 16:46:15 +08:00
-
14fc085009
Phase 5: Shared calendar polish — scoped polling, admin stats, dual panel fix, edge case handling
Kyle Pope
2026-03-06 15:38:52 +08:00
-
f45b7a2115
Fix 4 reported bugs from Phase 4 testing
Kyle Pope
2026-03-06 06:23:45 +08:00
-
e5690625eb
Fix member removal bug + QA fixes + shared calendar sidebar styling
Kyle Pope
2026-03-06 06:07:55 +08:00
-
eedfaaf859
Phase 4: Event locking + permission gating for shared calendars
Kyle Pope
2026-03-06 05:24:43 +08:00
-
4e3fd35040
Phase 3: Frontend core for shared calendars
Kyle Pope
2026-03-06 04:59:13 +08:00
-
e6e81c59e7
Phase 2: Shared calendars backend core + QA fixes
Kyle Pope
2026-03-06 04:46:17 +08:00
-
e4b45763b4
Phase 1: Schema and models for shared calendars
Kyle Pope
2026-03-06 03:22:44 +08:00
-
-
b650a94bb8
Fix birthday DatePicker stale closure in Settings profile save
Kyle Pope
2026-03-06 02:05:49 +08:00
-
47645ec115
Merge feature/user-connections into main
Kyle Pope
2026-03-06 01:36:02 +08:00
-
-
c8805ee4c4
Fix registration enumeration + contact detail panel name sync
feature/user-connections
Kyle Pope
2026-03-06 00:31:10 +08:00
-
d22600ac19
Fix remaining bare notification type string literal in cancel endpoint
Kyle Pope
2026-03-05 23:58:09 +08:00
-
20692632f2
Address QA warnings W-02 through W-07
Kyle Pope
2026-03-05 23:55:11 +08:00
-
3fe344c3a0
Fix QA review findings: per-card responding state, preserve data on detach
Kyle Pope
2026-03-05 22:40:24 +08:00
-
aeb30afbce
Fix nginx rate limit blocking accept: exact match for send request location
Kyle Pope
2026-03-05 21:31:28 +08:00
-
b16bca919f
Fix send request 500: revert to naive datetime.now() per project contract
Kyle Pope
2026-03-05 21:14:39 +08:00
-
ea491a4b89
Add temporary diagnostic wrapper to send_connection_request
Kyle Pope
2026-03-05 20:54:38 +08:00
-
87d232cbcd
Fix send request 500: build response before commit to avoid MissingGreenlet
Kyle Pope
2026-03-05 20:48:25 +08:00
-
416f616457
Allow dots in umbral name validation (matches username regex)
Kyle Pope
2026-03-05 20:30:27 +08:00
-
9bcf5ace5d
Fix search cold-cache gate, 429 handling, and datetime.now() violations
Kyle Pope
2026-03-05 20:02:52 +08:00
-
360a14b87b
Restore refetchIntervalInBackground for unread count polling
Kyle Pope
2026-03-05 19:30:16 +08:00
-
4e2d48c50b
Fix QA review findings: detach cleanup, sf() fallthrough, polling, commit guard
Kyle Pope
2026-03-05 19:12:31 +08:00
-
053c2ae85e
Mark notification as read when accepting via toast
Kyle Pope
2026-03-05 18:32:54 +08:00
-
1e736eb333
Fix connection accept regression: revert disabled gates, add 409 handling
Kyle Pope
2026-03-05 18:23:47 +08:00
-
2139ea8077
Fix connection accept: stale cache, hidden button, and false 409 error
Kyle Pope
2026-03-05 17:37:21 +08:00
-
2fb41e0cf4
Fix toast accept stale closure + harden backend error responses
Kyle Pope
2026-03-05 16:54:28 +08:00
-
6b59d61bf3
Fix connection mutation delays: make all onSuccess fire-and-forget
Kyle Pope
2026-03-04 21:22:51 +08:00
-
dff36f30c8
Fix toast accept button: instant feedback + double-click guard
Kyle Pope
2026-03-04 19:38:29 +08:00
-
60281caa64
Unify toast accept path with notification center via useConnections
Kyle Pope
2026-03-04 10:30:35 +08:00
-
5828bbf8e2
Fix toast accept showing false error when invalidations fail
Kyle Pope
2026-03-04 10:15:23 +08:00
-
f854987f53
Fix ~60s delay before accept buttons work on new requests
Kyle Pope
2026-03-04 10:02:50 +08:00
-
14a77f0f11
Fix stale UI after accept: await invalidations, dismiss toasts
Kyle Pope
2026-03-04 09:43:22 +08:00
-
b554ba7151
Fix QA: IntegrityError handling, dict mutation, birthday sync, None guard
Kyle Pope
2026-03-04 09:05:46 +08:00
-
568a78e64b
Show connected user's latest update time on umbral contacts
Kyle Pope
2026-03-04 08:44:54 +08:00
-
73cef1df55
Add umbral name header, preferred name field, and link button for contacts
Kyle Pope
2026-03-04 08:37:01 +08:00
-
4513227338
Fix share name toggle revert and stale table data for umbral contacts
Kyle Pope
2026-03-04 08:07:45 +08:00
-
33aac72639
Add delete-with-sever and unlink actions for umbral contacts
Kyle Pope
2026-03-04 07:50:31 +08:00
-
75fc3e3485
Fix notification background polling, add first/last name sharing
Kyle Pope
2026-03-04 07:34:13 +08:00
-
820ff46efa
Fix QA W-01/W-05/W-06/W-08: cancel requests, detach umbral, notifications
Kyle Pope
2026-03-04 07:17:31 +08:00
-
0e94b6e1f7
Fix QA review findings: race condition, detached session, validation
Kyle Pope
2026-03-04 06:36:14 +08:00
-
e27beb7736
Fix toast notifications, require accept_connections for senders
Kyle Pope
2026-03-04 06:21:43 +08:00
-
03fd8dba97
Fix notification UX, admin panel error handling, and data bugs
Kyle Pope
2026-03-04 05:55:14 +08:00
-
03abbbf8a7
Restrict umbral name to single word (no spaces)
Kyle Pope
2026-03-04 05:03:22 +08:00
-
6130d09ae8
Make umbral name editable in user settings
Kyle Pope
2026-03-04 05:00:33 +08:00
-
8e226fee0f
Set umbral_name=username on all user creation paths
Kyle Pope
2026-03-04 04:56:22 +08:00
-
337b50c7ce
Fix QA review findings: source_id, N+1 queries, event bubbling, type mismatches
Kyle Pope
2026-03-04 02:29:04 +08:00
-
3d22568b9c
Add user connections, notification centre, and people integration
Kyle Pope
2026-03-04 02:10:16 +08:00
-
-
2a21809066
Merge feature/registration-profile-fields into main
Kyle Pope
2026-03-03 18:52:26 +08:00
-
-
0e0da4bd14
Fix nginx header inheritance regression and add 0.0.0.0/8 to SSRF blocklist
feature/registration-profile-fields
Kyle Pope
2026-03-03 18:41:16 +08:00
-
20d0c2ff57
Fix pentest findings: Cache-Control, SSRF save-time validation, Permissions-Policy
Kyle Pope
2026-03-03 17:52:28 +08:00
-
b04854a488
Default date/time fields to today/now on create forms
Kyle Pope
2026-03-03 17:08:55 +08:00
-
0c6ea1ccff
Fix QA review findings: server-side DOB validation, naive date max prop
Kyle Pope
2026-03-03 16:59:54 +08:00
-
6cd648f3a8
Replace native date/time inputs with DatePicker across calendar and todo forms
Kyle Pope
2026-03-03 16:43:14 +08:00
-
e20c04ac4f
Fix DatePicker popup flashing at top-left in Chromium
Kyle Pope
2026-03-03 16:26:49 +08:00
-
63b3a3a073
Fix Firefox DatePicker popup positioning at top-left
Kyle Pope
2026-03-03 15:56:05 +08:00
-
e7979afba3
Firefox DatePicker input variant falls through to button variant
Kyle Pope
2026-03-03 15:49:03 +08:00
-
8e922a1f1c
Use type=text for DatePicker in Firefox to eliminate double icon
Kyle Pope
2026-03-03 04:01:38 +08:00
-
db2ec156e4
Fix Firefox double calendar icon with opaque cover button
Kyle Pope
2026-03-03 03:53:36 +08:00
-
01aed12769
Fix Firefox duplicate calendar icon with -moz-appearance: textfield
Kyle Pope
2026-03-03 03:45:48 +08:00
-
e9d4ba384f
Fix duplicate calendar icon in Firefox DatePicker
Kyle Pope
2026-03-03 03:40:40 +08:00
-
a30483fbbc
Switch DatePicker input variant to native date/datetime-local types
Kyle Pope
2026-03-03 03:33:02 +08:00
-
247c701e12
Match native datetime-local format in DatePicker input variant
Kyle Pope
2026-03-03 03:21:47 +08:00
-
59a4f67b42
Display DD/MM/YYYY and 12-hour AM/PM in DatePicker
Kyle Pope
2026-03-03 03:07:07 +08:00
-
4dc3c856b0
Add input variant to DatePicker for typeable date fields
Kyle Pope
2026-03-03 02:43:45 +08:00
-
013f9ec010
Add custom DatePicker component, replace all native date inputs
Kyle Pope
2026-03-03 02:30:52 +08:00
-
da61676fef
Fix missing date_of_birth in admin user detail API response
Kyle Pope
2026-03-03 01:42:06 +08:00
-
3a456e56dd
Show date of birth with calculated age in IAM user detail
Kyle Pope
2026-03-02 19:58:21 +08:00
-
e8109cef6b
Add required email + date of birth to registration, shared validators, partial index
Kyle Pope
2026-03-02 19:21:11 +08:00
-
02efe04fc4
Fix QA critical/warning findings on profile feature
Kyle Pope
2026-03-02 19:09:15 +08:00
-
45f3788fb0
Add preferred name + email to registration, profile card to settings
Kyle Pope
2026-03-02 19:02:42 +08:00
-
-
3e39c709b7
Merge security/pentest-remediation-20260302: production hardening + pentest remediation
Kyle Pope
2026-03-02 18:14:35 +08:00
-
-
dadd19bc30
Auto-derive CORS_ORIGINS from UMBRA_URL in production
security/pentest-remediation-20260302
Kyle Pope
2026-03-02 17:53:26 +08:00
-
cad1ca00c7
Fix SECRET_KEY sentinel in backend/.env.example
Kyle Pope
2026-03-02 17:46:39 +08:00
-
c986028f51
Multi-stage Dockerfile: remove gcc/psql from runtime image (PT-11)
Kyle Pope
2026-03-02 17:43:43 +08:00
-
ab7e4a7c7e
Backend pentest remediation (PT-03/05/06/07)
Kyle Pope
2026-03-02 17:43:27 +08:00
-
7721bf5cec
Harden nginx: real client IP, HSTS, custom dotfile 404 (PT-01/02/04)
Kyle Pope
2026-03-02 17:43:12 +08:00
-
ccfc5e151a
Fix SECRET_KEY sentinel mismatch in .env.example (W-01)
feature/cookie-secure-auto-derive
Kyle Pope
2026-03-02 17:21:32 +08:00
-
fee454fc33
Fix 503s behind reverse proxy: add uvicorn --proxy-headers
Kyle Pope
2026-03-02 17:17:39 +08:00
-
0c7d057654
Auto-derive COOKIE_SECURE from ENVIRONMENT setting
Kyle Pope
2026-03-02 15:38:54 +08:00
-
-
21aa670a39
Extract real client IP from proxy headers instead of Docker bridge IP
Kyle Pope
2026-03-01 19:20:07 +08:00
-
f8c2df9328
Merge multi-user RBAC with login flow fixes, QA + pentest remediations
Kyle Pope
2026-02-28 03:02:28 +08:00
-