style(13-03): apply Prettier formatting across repo

Mechanical reformat — no logic changes. 398 files changed, 19125
insertions(+), 16457 deletions(-). Prettier 3.8.4 with .prettierrc
(singleQuote:true, semi:true, tabWidth:2, trailingComma:all,
printWidth:100). Isolated per D-13-08 for reviewability.
This commit is contained in:
Lucas Berger
2026-06-11 20:35:18 -04:00
parent 4bc0445173
commit 982438dc10
398 changed files with 19050 additions and 16382 deletions
@@ -3,7 +3,7 @@ phase: 03-event-write-back-pwa-install
plan: 06
type: execute
wave: 4
depends_on: ["03-05", "03-03"]
depends_on: ['03-05', '03-03']
files_modified:
- apps/pwa/src/api/client.ts
- apps/pwa/src/store/calendarStore.ts
@@ -17,26 +17,26 @@ user_setup: []
must_haves:
truths:
- "The EventDetailPopover footer shows Edit and Delete actions (D-10)"
- "Tapping Edit opens EventForm pre-populated; tapping Delete opens a two-tap confirmation dialog"
- "Confirming delete calls DELETE /api/events/:uid and shows the sync toast"
- 'The EventDetailPopover footer shows Edit and Delete actions (D-10)'
- 'Tapping Edit opens EventForm pre-populated; tapping Delete opens a two-tap confirmation dialog'
- 'Confirming delete calls DELETE /api/events/:uid and shows the sync toast'
- "After any write the SyncStateToast polls /api/events/sync-status and shows Syncing/Saved/Didn't save; on done it invalidates the events query (D-06/D-09)"
- "A 412 conflict shows the conflict copy and re-fetches the calendar (D-08)"
- 'A 412 conflict shows the conflict copy and re-fetches the calendar (D-08)'
artifacts:
- path: "apps/pwa/src/components/SyncStateToast.tsx"
provides: "polled sync-state feedback toast (D-05/D-09)"
- path: 'apps/pwa/src/components/SyncStateToast.tsx'
provides: 'polled sync-state feedback toast (D-05/D-09)'
min_lines: 40
- path: "apps/pwa/src/components/DeleteConfirmationDialog.tsx"
provides: "two-tap destructive delete confirmation"
- path: 'apps/pwa/src/components/DeleteConfirmationDialog.tsx'
provides: 'two-tap destructive delete confirmation'
key_links:
- from: "apps/pwa/src/components/SyncStateToast.tsx"
to: "/api/events/sync-status"
via: "useQuery refetchInterval while pending"
pattern: "syncStatus|sync-status"
- from: "apps/pwa/src/components/EventDetailPopover.tsx"
to: "DeleteConfirmationDialog"
via: "Delete footer button opens deleteDialog"
pattern: "deleteDialogOpen"
- from: 'apps/pwa/src/components/SyncStateToast.tsx'
to: '/api/events/sync-status'
via: 'useQuery refetchInterval while pending'
pattern: 'syncStatus|sync-status'
- from: 'apps/pwa/src/components/EventDetailPopover.tsx'
to: 'DeleteConfirmationDialog'
via: 'Delete footer button opens deleteDialog'
pattern: 'deleteDialogOpen'
---
<objective>
@@ -154,19 +154,21 @@ Output: edit/delete footer, delete dialog, sync toast + polling, all per the UI
</tasks>
<threat_model>
## Trust Boundaries
| Boundary | Description |
|----------|-------------|
| Boundary | Description |
| ------------------- | ------------------------------------------------ |
| delete action → API | A destructive operation crosses to the write API |
## STRIDE Threat Register
| Threat ID | Category | Component | Disposition | Mitigation Plan |
|-----------|----------|-----------|-------------|-----------------|
| T-03-17 | Tampering | accidental/irreversible delete | mitigate | Mandatory two-tap DeleteConfirmationDialog; no inline single-tap delete; no "don't ask again" (UI-SPEC) |
| T-03-18 | Repudiation | silent data loss on failed delete sync | mitigate | failed/dead toast persists until dismissed; server-authoritative refetch restores the event; no silent loss (D-08) |
| T-03-19 | Information Disclosure | sync-status of another member surfaced in toast | mitigate | sync-status is member-scoped server-side (Plan 03 T-03-07); toast only queries the current member's uid |
| Threat ID | Category | Component | Disposition | Mitigation Plan |
| --------- | ---------------------- | ----------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------ |
| T-03-17 | Tampering | accidental/irreversible delete | mitigate | Mandatory two-tap DeleteConfirmationDialog; no inline single-tap delete; no "don't ask again" (UI-SPEC) |
| T-03-18 | Repudiation | silent data loss on failed delete sync | mitigate | failed/dead toast persists until dismissed; server-authoritative refetch restores the event; no silent loss (D-08) |
| T-03-19 | Information Disclosure | sync-status of another member surfaced in toast | mitigate | sync-status is member-scoped server-side (Plan 03 T-03-07); toast only queries the current member's uid |
</threat_model>
<verification>
@@ -176,9 +178,10 @@ Output: edit/delete footer, delete dialog, sync toast + polling, all per the UI
</verification>
<success_criteria>
- CAL-05 edit and CAL-06 delete are user-reachable from the popover.
- Every write surfaces non-blocking polled sync feedback; 412 conflict shows the warning + re-fetch (D-08); done invalidates events (D-06).
</success_criteria>
</success_criteria>
<output>
Create `.planning/phases/03-event-write-back-pwa-install/03-06-SUMMARY.md` when done.