Commit Graph

  • 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