audit: math-fix fourth-pass re-verification (all gates fresh, OFFLAN-OK 21:05Z)

This commit is contained in:
krisf committed 2026-10-09 17:06:14 -04:00
1 parent 2846656ea8
commit 8ba23dac56
2 files changed
+21 -1

No files matched your search

+20
View File
@@ -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**.
+1 -1
View File
@@ -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
}