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
@@ -11,20 +11,20 @@ autonomous: true
requirements: []
must_haves:
truths:
- "On any start change, the event end preserves its current duration (D-04)"
- "The end never strands behind the start day — at worst it snaps to the same day/+1h (D-04 floor)"
- 'On any start change, the event end preserves its current duration (D-04)'
- 'The end never strands behind the start day — at worst it snaps to the same day/+1h (D-04 floor)'
artifacts:
- path: "apps/pwa/src/lib/eventDateTime.ts"
provides: "computeNewTimedEnd + computeNewAllDayEnd pure end-tracking helpers"
contains: "computeNewTimedEnd"
- path: "apps/pwa/src/lib/eventDateTime.test.ts"
provides: "RED-then-GREEN unit coverage for duration preservation + floor rule"
contains: "computeNewTimedEnd (D-04"
- path: 'apps/pwa/src/lib/eventDateTime.ts'
provides: 'computeNewTimedEnd + computeNewAllDayEnd pure end-tracking helpers'
contains: 'computeNewTimedEnd'
- path: 'apps/pwa/src/lib/eventDateTime.test.ts'
provides: 'RED-then-GREEN unit coverage for duration preservation + floor rule'
contains: 'computeNewTimedEnd (D-04'
key_links:
- from: "apps/pwa/src/lib/eventDateTime.ts"
to: "apps/pwa/src/lib/eventDateTime.test.ts"
via: "vitest unit assertions"
pattern: "computeNewTimedEnd|computeNewAllDayEnd"
- from: 'apps/pwa/src/lib/eventDateTime.ts'
to: 'apps/pwa/src/lib/eventDateTime.test.ts'
via: 'vitest unit assertions'
pattern: 'computeNewTimedEnd|computeNewAllDayEnd'
---
<objective>
@@ -52,10 +52,11 @@ Output: `computeNewTimedEnd` and `computeNewAllDayEnd` exported from `eventDateT
<artifacts_this_plan_produces>
NEW symbols introduced here (exclude from any drift/convergence check — they did not exist before this phase):
- `computeNewTimedEnd(newStartDate, newStartTime, oldStartDate, oldStartTime, oldEndDate, oldEndTime): { endDate, endTime }` in `apps/pwa/src/lib/eventDateTime.ts`
- `computeNewAllDayEnd(newStartDate, oldStartDate, oldEndDate): string` in `apps/pwa/src/lib/eventDateTime.ts`
- Any private date helpers these need (e.g. `dateDiffDays`, `addDaysISO`, `localDateISO`, `localTimeHHMM`) — add only if not already present in the file; reuse existing local-accessor helpers where they exist.
</artifacts_this_plan_produces>
</artifacts_this_plan_produces>
<tasks>
@@ -116,17 +117,19 @@ NEW symbols introduced here (exclude from any drift/convergence check — they d
</tasks>
<threat_model>
## Trust Boundaries
| Boundary | Description |
|----------|-------------|
| Boundary | Description |
| ---------- | --------------------------------------------------------------------------------------------------------------------- |
| (none new) | Pure client-side date arithmetic on already-trusted local form state. No network, no untrusted input, no persistence. |
## STRIDE Threat Register
| Threat ID | Category | Component | Disposition | Mitigation Plan |
|-----------|----------|-----------|-------------|-----------------|
| T-06-01 | Tampering | computeNewTimedEnd / computeNewAllDayEnd | accept | Pure functions over local strings; no trust boundary crossed. Output is re-validated downstream by the existing serialize/write path (vevent.ts WR-04). UI/logic only — no new attack surface. |
| Threat ID | Category | Component | Disposition | Mitigation Plan |
| --------- | --------- | ---------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| T-06-01 | Tampering | computeNewTimedEnd / computeNewAllDayEnd | accept | Pure functions over local strings; no trust boundary crossed. Output is re-validated downstream by the existing serialize/write path (vevent.ts WR-04). UI/logic only — no new attack surface. |
</threat_model>
<verification>
@@ -136,10 +139,11 @@ NEW symbols introduced here (exclude from any drift/convergence check — they d
</verification>
<success_criteria>
- D-04 duration-preservation and floor rules are encoded as passing unit tests.
- Two exported helpers are available for Plan 06 to wire into EventForm.
- No EventForm or write-path file touched (clean ownership for parallel Wave 1).
</success_criteria>
</success_criteria>
<output>
Create `.planning/phases/06-ux-polish/06-01-SUMMARY.md` when done (RED/GREEN/REFACTOR notes + commit list).