Commit Graph
31 Commits
Author SHA1 Message Date
krisf 18f5ed8a76 audit: math-fix twenty-fourth-pass re-verification (all gates fresh, OFFLAN-OK 22:16Z, deploy + 34/34 byte sweep, passes3 + DOM rows byte-identical to passes 14-23, couple frame roles inverted vs pass 23) 2026-10-09 18:17:27 -04:00
krisf 83a4489e44 audit: math-fix twenty-third-pass re-verification (all gates fresh, OFFLAN-OK 22:12Z, deploy + 34/34 byte sweep, passes3 + DOM rows byte-identical to passes 14-22, couple frame roles match pass 22) 2026-10-09 18:14:11 -04:00
krisf 4852ab5b94 audit: math-fix twenty-second-pass re-verification (all gates fresh, OFFLAN-OK 22:09Z, deploy + 34/34 byte sweep, passes3 + DOM rows byte-identical to passes 14-21, couple frame roles inverted vs pass 21) 2026-10-09 18:10:34 -04:00
krisf 4b0b461cfb audit: math-fix twenty-first-pass re-verification (all gates fresh, OFFLAN-OK 22:06Z, deploy + 34/34 byte sweep, passes3 + DOM rows byte-identical to passes 14-20, both couple runs on canonical frame) 2026-10-09 18:07:14 -04:00
krisf 30a0a067ef audit: math-fix twentieth-pass re-verification (all gates fresh, OFFLAN-OK 22:03Z, deploy + 34/34 byte sweep, passes3 + DOM rows byte-identical to passes 14-19, frame-set observation logged) 2026-10-09 18:04:08 -04:00
krisf 566079dbec audit: math-fix nineteenth-pass re-verification (all gates fresh, OFFLAN-OK 21:59Z, deploy + 34/34 byte sweep, passes3 + DOM rows byte-identical to passes 14/15/16/17/18) 2026-10-09 18:00:37 -04:00
krisf 89c884b149 audit: math-fix eighteenth-pass re-verification (all gates fresh, OFFLAN-OK 21:55Z, deploy + 34/34 byte sweep, passes3 + DOM rows byte-identical to passes 14/15/16/17) 2026-10-09 17:57:12 -04:00
krisf 208f02d612 audit: math-fix seventeenth-pass re-verification (all gates fresh, OFFLAN-OK 21:52Z, deploy + 34/34 byte sweep, passes3 + DOM rows byte-identical to passes 14/15/16) 2026-10-09 17:53:18 -04:00
krisfandClaude f6a050510a audit: math-fix sixteenth-pass re-verification (all gates fresh, OFFLAN-OK 21:49Z, deploy + 34/34 byte sweep, passes3 + DOM rows byte-identical to passes 14/15)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-09 17:49:51 -04:00
krisfandClaude ce5b69df3e audit: math-fix fifteenth-pass re-verification (all gates fresh, OFFLAN-OK 21:46Z, deploy + 34/34 byte sweep, canonical couple frame on first attempt)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-09 17:46:49 -04:00
krisf a1697cb728 audit: math-fix fourteenth-pass re-verification (all gates fresh, OFFLAN-OK 21:40Z, deploy + 34/34 byte sweep, animation-phase frame set generalized) 2026-10-09 17:42:40 -04:00
krisf ef6962bbe9 audit: math-fix thirteenth-pass re-verification (all gates fresh, OFFLAN-OK 21:37Z, deploy + 34/34 byte sweep, render-race cause closed) 2026-10-09 17:38:10 -04:00
krisf c2a66a3fdb audit: math-fix twelfth-pass re-verification (all gates fresh, OFFLAN-OK 21:33Z, deploy + 34/34 byte sweep, first-attempt render determinism) 2026-10-09 17:34:18 -04:00
krisf fbae89cf36 audit: math-fix eleventh-pass re-verification (all gates fresh, OFFLAN-OK 21:30Z, deploy + 34/34 byte sweep, render-race determinism note) 2026-10-09 17:31:19 -04:00
krisf 5a90a120d2 audit: math-fix tenth-pass re-verification (all gates fresh, OFFLAN-OK 21:24Z, deploy + 21/21 byte sweep, live FIRE/mobile 390 capture) 2026-10-09 17:26:45 -04:00
krisf 5ec2bf6ce5 audit: math-fix ninth-pass re-verification (all gates fresh, OFFLAN-OK 21:21Z, deploy + 21/21 byte sweep) 2026-10-09 17:22:26 -04:00
krisf 2e4e0963a4 audit: math-fix eighth-pass re-verification (all gates fresh, OFFLAN-OK 21:17Z, live mixed-window probe) 2026-10-09 17:19:38 -04:00
krisf dec4798cd9 audit: math-fix seventh-pass re-verification (all gates fresh, OFFLAN-OK 21:14Z) 2026-10-09 17:15:09 -04:00
krisf 73018a193e audit: math-fix sixth-pass re-verification (all gates fresh, OFFLAN-OK 21:11Z) 2026-10-09 17:12:23 -04:00
krisf 45387af04d audit: math-fix fifth-pass re-verification (all gates fresh, OFFLAN-OK 21:08Z) 2026-10-09 17:08:54 -04:00
krisf 8ba23dac56 audit: math-fix fourth-pass re-verification (all gates fresh, OFFLAN-OK 21:05Z) 2026-10-09 17:06:14 -04:00
krisf 2846656ea8 audit: math-fix third-pass re-verification (all gates fresh, OFFLAN-OK 21:03Z) + report tracked 2026-10-09 17:03:59 -04:00
krisf 6a61adeeb4 audit: off-LAN recheck after math-fix deploy (OFFLAN-OK, re-verification pass) 2026-10-09 16:04:11 -04:00
krisf a210e7edfc engine: GIS 65+ floor, clawback only with OAS, couple mixed-row footnote, FIRE retire age 40 2026-10-09 15:52:53 -04:00
krisf 97cecb91a7 ps: auto-derive years of service from join year + retirement age 2026-10-09 15:41:58 -04:00
krisf 043fa8a683 Header: right-align EN|FR toggle in .hdr-in (top-right of page)
One CSS line: .lang-toggle{order:99;margin-left:auto}. Spec's literal order:99 alone
failed its own <=2px right-edge acceptance (gap 45.6-467.6px, 18/24 cases — order
reorders, .hdr-in is left-packed; geo-literal-order99.json), so margin-left:auto on
the toggle absorbs the free space; pill/logo untouched (spec-forbidden zone respected).

Battery: A1 gap=0px + rightmost + nothing-past-left in 24/24 (320/360/390/1280 x EN/FR
x intro/quiz/results); A2 header height unchanged 56/66px; A3 320px no overflow/wrap,
FR logo ellipsis intact, elementFromPoint hit-tests lang buttons + Start over pass;
A4 FR/EN clicks switch lang+title+aria-pressed; A5 24 screenshots before/after; A6
engine 36 + i18n 48 + smoke 92 + ps-pension 70 green; A7 desktop pixdiff header-strip-
only, 0 px below header at every device, self-jitter bit-identical; A8 DEPLOY-OK,
origin marker=1 + byte-identical CSS, off-LAN troublebox 200+marker+rule OFFLAN-OK.
2026-10-09 13:32:40 -04:00
krisf 583b5ee2f8 PS pension module: optional federal PSSA engine + UI (PSPC-accurate, EN/FR) 2026-10-09 11:44:40 -04:00
krisf 7697639fb8 round 4: app-shell quiz screen at <=700px — #step-body is the only scroller, #btn-next/#panel become the static bottom cluster; revert FR .opt override (keep 972f3a7); + capture/verify/pixdiff/offlan audit tooling and before/after evidence; closes QUIZ-APPSHELL-FIX.md 2026-10-09 10:52:23 -04:00
krisf ea953ec23c Bilingual EN/FR: i18n.js dict+t(), lang state+payload, header toggle, FR copy, Intl formatters; i18n.test.js + bilingual smoke; FR mobile audit evidence + BILINGUAL-REPORT.md 2026-10-09 10:06:55 -04:00
krisf 1b194b6f92 Round 2 mobile pass: CTA pinned above bottom sheet, swipe hint in chart header, anchor scroll-margin
- Issue 1: --sheet-h CSS var (live sheet height via syncSheetH: load/toggle/resize/
  panel-content), .scr clearance and sticky #btn-next/.step-nav above the sheet;
  income short step pixel-identical to round 1 (CTA top 485).
- Issue 2: chart() helper renders .chart-h (h3+p + .swipe span) into #g1-#g4;
  .chartbox::before overlay removed; hint is flex sibling in header, sticky left.
- Issue 3: [id]{scroll-margin-top:70px} so #whatif anchor lands below sticky hdr.
- G2 tick clip and Four-futures scroll documented as non-issues in report.
- verify2.py: 90/90 PASS live; before/after evidence in audit/mobile-{before,after}2/.

Spec: MOBILE-FIX-2.md. Report: MOBILE-FIX-2-REPORT.md.
2026-10-09 06:44:08 -04:00
krisf 53315e03e8 Mobile pass: 8 fixes per MOBILE-FIX.md (single-row 55px header, 560px-scroll charts w/ bigger SVG fonts + swipe hint, content-height chips sheet w/ scrim, 44px touch targets, year table 13px/-2 cols/fade/sticky Age, vision manifest-race fix, honest share fallback, theme-color+type bumps); before/after audits + geo-check evidence 2026-10-09 06:04:03 -04:00