โ€บNavigation

Iteration 6 โ€” Forex ICP Repaired (Tier-A): Twin-Column Root Cause, 163 Features Graded REPAIR LANDED

What happened in this iteration, in plain words: the lab's first real job was to end the forex blackout โ€” and it turned out the story was deeper than the casebook said. The known defect (the instrument searched for five crypto column names on a forex table) had in fact already been patched in a June re-runโ€ฆ and forex still came back empty. This iteration found out why: two of the forex anchor columns are the same column under two names โ€” byte-for-byte identical across 701,424 rows. Feeding both twins into the invariance instrument makes its math degenerate, it threw an error for every single feature, and a silent catch-all turned all those errors into an innocent-looking empty page. We proved that failure on record (five probes, five identical crashes), removed the twin (plus one metadata column, per an existing precedent), made every skip and error loudly counted, and re-ran. Result: 163 of 167 forex features now get graded (it was zero), the crypto control is identical to the committed run on every comparable feature, and the whole thing took under a minute inside the resource cage. The scientific readout mirrors crypto: nothing on forex is regime-invariant either โ€” but now that's a measurement, not blindness.

Preflight (A0)

2026-07-03 09:18 UTC โ€” load1 4.03 / 32 cores (โ‰ค24) ยท no competing nasimubd jobs (transient 40 MB gh) ยท 20 GiB available, si/soโ‰ˆ0 ยท clickhouse-server active ยท sidecar active + /health healthy โ†’ ALL PASS. Run: capped systemd-run 5c/5G scope, readonly=2 on every query, single-thread BLAS, 0.94 min wall, pre-authorized (directive 03b). Zero synthetic values (directive 03c) โ€” the null leg permutes real rows only.

The two-layer defect and how it died

LAYER 1 (known, committed casebook): v2 harness ACTIVE = 5 CRYPTO column names
        โ†’ 0 of 5 found on fxview โ†’ every forex env silently skipped โ†’ {}
        STATUS: already patched in v3 (per-substrate ACTIVE_BY, 2026-06-12)
        โ€ฆ and yet v3's forex map was STILL {} โ€” nobody knew why. THIS iteration:

LAYER 2 (found + proven today): on fxview EURUSD@5,
        duration_us โ‰ก intra_duration_us   โ† BYTE-IDENTICAL TWINS
        (countIf(duration_us != intra_duration_us) = 0 over 701,424 rows;
         stddev identical to the last digit in all 7 regime windows)
        v3 anchors = [duration_us, intra_duration_us, max_gap_duration_us,
                      intra_intensity_qps][:4]  โ† twin included
        โ†’ ICP design matrix rank-deficient
        โ†’ causalicp: LinAlgError("Singular matrix") for EVERY feature
        โ†’ bare `except: return nan` swallowed every one โ†’ silent {}
        PROVEN ON RECORD (P1): 5 probe features, 5ร— LinAlgError, zero other paths

THE FIX:
   anchors(forex) = [duration_us, intra_intensity_qps, intra_burstiness]
     DERIVED: centrality top5 โˆ’ twin โˆ’ metadata column (CRY_EXC precedent);
     corr(duration_us, intra_intensity_qps) = โˆ’0.165 โ†’ healthily distinct
   + FAIL LOUD: every env-skip and every exception counted by class;
     an empty result now prints its reasons โ€” this failure class cannot recur silently

THE RE-RUN (P2, capped read-only, 10 forex envs ร— 2,000-row deterministic subsamples):
   forex|EURUSD|5 ICP map: 163/167 features graded   (was 0)
   accounting: 50 constant-in-env skips + 4 features with <3 envs ยท anchor skips: 0
   readout: 0/163 regime-invariant at ฮฑ=0.05 โ€” forex mirrors crypto's 0/92

Acceptance scorecard

Criterion (from the fix plan)Result
Forex ICP map non-empty (~140 effective features expected)โœ“ 163/167 graded; every skip counted, nothing silent
Per-environment anchor skips = 0โœ“ 0 (all 10 envs kept all 3 anchors)
granger_echo_p non-degenerate on forexโœ“ already demonstrated by committed v3 E1 artifacts (forex gates, n=15,616)
Crypto results bit-identical to committedโœ“ 92/92 comparable features identical ยท +8 additive bar_* batch-6 columns that post-date the June run (graded 0.0, consistent)
Shuffled-environment null still collapsesExecuted (real rows re-partitioned into pseudo-envs); real AND null both read set-size 0 for all features โ€” the inherited len(estimate) readout cannot distinguish "no subset accepted" from "many accepted, empty intersection". Known limitation on record; disambiguation = Frontier #2's per-environment k-of-N (which is exactly the next pinned item).

Technical record

ItemValue
KindREPAIR (re-grounding of admitted G3 on the forex substrate, Tier-A slice) โ€” LEDGER row 8
Harnessforex_icp_fix_rerun.py โ€” mirrors the v3 fetch verbatim (N_SUB=2000, intHash64 stride, FINAL on fxview), per-substrate anchors, fail-loud instrumentation; ran in ~/fwd_smoke_venv (the June campaign's own env)
Root-cause probes (read-only)countIf(duration_us != intra_duration_us) = 0 over 701,424 eur_parity rows ยท stddev pairs identical in all 7 windows ยท corr(duration_us, intra_intensity_qps) = โˆ’0.165
Anchor decision (ยง0 tag)[duration_us, intra_intensity_qps, intra_burstiness] โ€” DERIVED (committed centrality top5 โˆ’ byte-identical twin โˆ’ metadata column per CRY_EXC precedent); recorded in FOREX-ICP-WIRING-DEFECT.md as its caveat required
Environmentsforex: 8 regime windows + 2 sessions (incl. live_tail last-90d โ€” non-deterministic by design, noted) ยท crypto control: 10 historical windows
Expiryre-ground after the next completed forex regime slice (interim rule ยง5.2)
Remaining slicefix-plan step 6: full forex grid (19 symร—thr) โ€” next bounded slice after Frontier #2 unless operator reorders
Compute / prod impact0.94 min wall inside the 5c/5G scope ยท ~22 readonly=2 SELECTs (2,000-row subsamples) ยท zero writes outside audit folder + dashboard

โ–ถ Next iteration

Iteration 6 ยท 2026-07-03 ยท Frontier #1 Tier-A repair ยท capped read-only spike (pre-authorized 03b) ยท zero synthetic data (03c) ยท append-only