From 8ba23dac568316f699c4737f71eba8a7e8332ae6 Mon Sep 17 00:00:00 2001 From: krisf Date: Fri, 9 Oct 2026 17:06:14 -0400 Subject: [PATCH] audit: math-fix fourth-pass re-verification (all gates fresh, OFFLAN-OK 21:05Z) --- MATH-FIX-REPORT.md | 20 ++++++++++++++++++++ audit/bilingual-geo-check.json | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/MATH-FIX-REPORT.md b/MATH-FIX-REPORT.md index a1816a9..2c550b9 100644 --- a/MATH-FIX-REPORT.md +++ b/MATH-FIX-REPORT.md @@ -158,3 +158,23 @@ Queue gate re-checked per plan: HEAD `1074a7f` == `origin/main`, `git diff` (tra Note: this harness mounts `TMPDIR` read-only; Playwright capture runs with `TMPDIR=/tmp` (no site impact). No code change required — `0839826` (the plan's mandated commit) stands at `origin/main`; this pass adds only the re-verification evidence, the fresh off-LAN timestamp (`audit/bilingual-geo-check.json`), and this report (now tracked, per repo convention for root reports). Final: **MATH_FIX_DONE**. + +--- + +## Re-verification (fourth DSH pass, 2026-10-09 21:0x UTC, post-completion) + +Queue gate: tree clean at start (`git status --porcelain` empty), HEAD `9dcf575` == `origin/main`, no prior job in flight → proceed (not `DSH_QUEUE_BUSY`). Full end-to-end acceptance re-executed, every output below fresh in this pass; code unchanged (fix commit `0839826` in HEAD, audit greps confirm Fix 1–4: GIS `a >= 65 ? gis(…) : 0` ×3 :249/260/265, merge `if (yr < 65) gisSum = 0;` :382 + per-partner ≥65 :379–380, clawback `oasGross > 0 ? Math.min(clawback(…), oasGross) : 0` ×3 + split-solver :248/259/366–367, `row.mixed` + depletion guard `!row.mixed` :390/395, `fillDefaults` clamp :188, slider `min: 40` app.js:211 / `#wi-ret min="40"` index.html:86, `t.mixedNote` EN+FR i18n.js:251/512, `#yr-mixed-note` index.html:95): + +| Check | Fresh output (this pass) | +|---|---| +| `tests/engine.test.js` | `RESULT: 61 pass, 0 fail` | +| `tests/i18n.test.js` | `I18N-OK all i18n checks passed (50)` | +| `tests/ui.smoke.js` | `SMOKE-OK all ui smoke checks passed (146)` | +| `tests/ps-pension.test.js` / `ps-auto-service.test.js` | `70 pass, 0 fail` / `21 pass, 0 fail` | +| `passes3.js` rerun (live engine) | exit 0, `conservation: OK` ×3 → `audit/math-fix/passes3-pass4.log`. PASS 1: row 55 OASnet $0 (plan evidence −$3,501), row 56 GIS $0 (was $12,916), GIS first row 65 ($12,567, OASnet $9,150); PASS 3 FIRE: first draw 40 (Withdraw $62,837, CPP/OAS/GIS $0), total @39 $493,710 = 350000×1.035¹⁰ ✓ | +| `scripts/deploy.sh` | `DEPLOY-OK` | +| Origin byte-check | `BYTE-MATCH` 4/4 (cache-busted sha256, repo vs live): engine/engine.js `2101f46b…`, app.js `092a35d7…`, i18n.js `cfc5ab0b…`, index.html `28ab4f62…` | +| Live recapture (`mathfix_capture.py after`) | couple 52/52 ret 55: rows 58–64 OAS $0, GIS $0 (0 negative-OAS cells, 0 GIS>0 rows <65), first GIS row 65 ($12K), no growing-Total-withdraw rows (post-depletion honest $0); `wiRetMin: "40"`; FIRE `fire_first_draw_age: "40"`; mobile 390: slider min=40 value=40, `sliderRight 367 < vw 390`, chip [25, 145], FIRE hint present; `noteShown: false` — correct, symmetric couple has no mixed rows (Deviation 2; †/legend proven by smoke fixture) | +| Off-LAN (Midhurst `trouble@100.96.20.61`) | `OFFLAN-OK`, `"all_ok": true`, `checked_at 2026-10-09T21:05:47Z` | + +No code change required — plan executed end-to-end; commit `0839826` at `origin/main`. Final: **MATH_FIX_DONE**. diff --git a/audit/bilingual-geo-check.json b/audit/bilingual-geo-check.json index c164f28..1a719b3 100644 --- a/audit/bilingual-geo-check.json +++ b/audit/bilingual-geo-check.json @@ -5,7 +5,7 @@ "has_i18n_script": true, "i18n_js_fr_strings": true, "i18n_js_size": 39689, - "checked_at": "2026-10-09T21:03:32Z", + "checked_at": "2026-10-09T21:05:47Z", "vantage": "trouble@100.96.20.61 (Midhurst, off-LAN)", "all_ok": true } \ No newline at end of file