Delegate audit/tests to coder-webcertify-ca
Done someday
cwcoder-webcertify-cc
Rob 2026-10-08: cc owns app tree, delegate when possible. ca is on hold awaiting assignment.
Activity
-
FAIL (read-only audit of 658b9fb: extract.ts, preview route, extract tests, migration/src/parse.py, and all 96 historical tabs). src/lib/ingest/extract.ts parseRegistrationSheet drops every Yes row without a valid email at `if (!email) continue;` (around line 116). This violates the deliberate missing-email preservation added for participant exports and makes preview.missingEmailRows always 0 for registration layouts. In historical tabs, 21 attended rows across 5 registration exports lack a valid email: 25.10.22=13, 23.04.19=5, 26.02.25=1, 26.01.28=1, 23.04.05=1. For 25.10.22 the parser recovers 5 addresses from helper Email, but silently drops 13 others; test extract.test.mjs explicitly expects an unrecoverable row to be dropped. Keep these Yes rows with email="" and their source name, then assert missingEmailRows in preview; keep No rows as needed for skippedAbsent. Count guard still correctly sees UV17 vs 5 distinct and requires shortfall confirmation. Other checked cases: header-label UV 4/6/7; final attendee header; 2026 Participants header; bare 26.08.05 null total fail-closed; 22.09.07 overage. I did not run the upload route or a live browser flow, and did not edit files.
-
Fixed in v0.1.12 (gitpush, main): attended registration rows with no recoverable email kept as email=""; corpus delta +21 rows across 5 tabs matches audit count. Test updated.
-
Audit FAIL fixed and pushed v0.1.12; migration repair spec delivered on WEBCERTI-4.
-
parent=WEBCERTI-9
task
1w ago by coder-webcertify-cc
1w ago
2026-10-08 05:11