Skip to content

Commit 5678d87

Browse files
authored
Merge pull request #495 from AdaWorldAPI/claude/wonderful-hawking-lodtql
Witness/meta probe family + TEKAMOLO resolver + Lo design (surreal_container)
2 parents 8342ecb + 41c9327 commit 5678d87

11 files changed

Lines changed: 1635 additions & 24 deletions

File tree

.claude/board/AGENT_LOG.md

Lines changed: 149 additions & 0 deletions
Large diffs are not rendered by default.

.claude/board/TECH_DEBT.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,34 @@
1515

1616
## Open Debt
1717

18+
### TD-NDARRAY-SIMD-POPCNT-NATIVE — `extract_rules` SIGILLs under `-C target-cpu=native` on larger RowMasks (2026-06-14)
19+
20+
**Surfaced by** the `invariance_witness_probe` (lance-graph-arm-discovery, `--features ndarray-simd`).
21+
Reproducible: `RUSTFLAGS="-C target-cpu=native"` → the probe prints its header, then dies with
22+
**signal 4 (SIGILL, exit 132), no Rust panic**, inside `extract_rules` (the per-candidate count loop,
23+
which under `ndarray-simd` routes RowMasks AND+popcount through `ndarray::simd::U64x8`).
24+
25+
**Characterized:**
26+
- Crashes at n = 24 000 rows (375 popcount-words) AND n = 24 576 (384 words, no 8-word tail) → **not**
27+
a tail-remainder bug; it scales with mask size.
28+
- The `meta_awareness_probe` at n = 4 096 rows (64 words) runs FINE under the same `native` flags →
29+
the faulting kernel is only reached for larger masks.
30+
- The **default codegen path (no `target-cpu`) and CI's `x86-64-v3` (AVX2, no AVX-512) are unaffected**;
31+
the probe result is bit-identical there (INV1 ρ=+0.894 etc.). Both probes are documented to run
32+
WITHOUT `native`.
33+
34+
**Most likely cause (unconfirmed):** compile-time `native` on this sandbox enables an AVX-512 feature
35+
(suspect VPOPCNTQ / AVX-512-VPOPCNTDQ from the U64x8 popcount, possibly AMX) that the **virtualized
36+
runtime CPU does not actually implement** → illegal instruction. A build-config × sandbox-CPU mismatch,
37+
not necessarily a logic bug. NOTE: `lance-graph-arm-discovery/Cargo.toml` *recommends* `target-cpu=native`
38+
/ `x86-64-v4` in a comment — that is the trap a consumer would copy.
39+
40+
**Owed:** simd-savant / sentinel-qa triage to (a) pin the exact faulting instruction (objdump the
41+
U64x8 popcount kernel + the AMX re-exports), (b) decide whether ndarray's `U64x8` should runtime-detect
42+
VPOPCNTDQ/AMX rather than trust compile-time `target_feature`, and (c) correct the Cargo.toml comment to
43+
warn that `native` can SIGILL on virtualized hosts lacking the detected AVX-512 subset. Until then:
44+
run the `ndarray-simd` probes on the default path. **Status: Open.**
45+
1846
### TD-CI-COVERAGE-MOLD-1 — `test-with-coverage` job lacks the mold linker the `test` job has (2026-06-12)
1947

2048
**2026-06-12 local-repro addendum (same PR, later commit) — diagnosis CONFIRMED

.claude/knowledge/bf16-hhtl-terrain.md

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
## READ BY: truth-architect, savant-research, family-codec-smith,
44
## palette-engineer, integration-lead, container-architect
55

6-
## STATUS: 5 corrections absorbed, 0 probes run. All claims are CONJECTURES
7-
## until the probe queue drains.
6+
## STATUS: 6 corrections absorbed, 0 probes run. All claims are CONJECTURES
7+
## until the probe queue drains. Correction 6 (2026-06-14) reclassifies
8+
## the whole float-reconstruction framing as a category error for
9+
## byte-encoded models — see the Correction Chain.
810

911
---
1012

@@ -42,6 +44,28 @@ Iteration 5: Slot D = CLAM tree path (bucketing > resolution)
4244
→ Correct: Slot D is PRIMARY (bucket address), Slot V is REFINEMENT (exact value)
4345
→ Correct: 3-level 16-way CLAM = 12 bits → 16 → 256 → 4096 alignment
4446
→ UNVERIFIED: requires Probe M1 (CLAM tree fit on 256 Jina centroids)
47+
48+
Iteration 6 (operator, 2026-06-14): float codec on byte-encoded model = CATEGORY ERROR
49+
→ Measured: bgz-hhtl-d certified on real Qwen3-TTS-1.7B FAILS reconstruction on
50+
all 16 roles (palette/hhtld cos ~0.05–0.32, Base17 cos ~0.01–0.37 at the first
51+
fold, matvec rel-err ~1.0, fisher-z ρ 0.03–0.68) — cert at
52+
.claude/knowledge/certification/hhtld_qwen3tts17b.json. The scalar Slot V (BF16
53+
residual) adds ≈0 over palette-only (palette_cos ≈ hhtld_cos).
54+
→ Root insight: this is NOT just a weak residual. It is a category error. Qwen's
55+
information lives in a BYTE-QUANTIZED REGISTER (GGUF / byte-BPE / bgz7), not a
56+
continuous float field. Scoring float-RECONSTRUCTION fidelity (Base17 fold +
57+
cosine/L2) on a discrete/byte representation measures the wrong category. Same
58+
failure mode as I-VSA-IDENTITIES, one layer down: decoding a quantized register
59+
back to f32 to score cosine IS the register-loss the iron rule forbids.
60+
→ Correction: for byte-encoded models the success metric is discrete CODE-AGREEMENT
61+
/ bucket-ROUTING (the rolling floor), NOT reconstruction. The codec should never
62+
decode to f32 to score cosine. Reconstruction is the wrong question.
63+
→ Evidence the right-category path works (ndarray PR #218 probe family):
64+
rolling_floor_probe (coarse code routed via a self-calibrating μ+3σ floor,
65+
ρ=1.0 tracking, reject stable ~0.1% under SD drift), helix_bitdepth_probe
66+
(direction as a discrete golden index, 24-bit lossless vs ≤f16), and
67+
morton_perturbation_probe (discrete frame drives a field on-demand). None
68+
decode-to-f32-to-score-cosine.
4569
```
4670

4771
## The Five Hard Constraints

Cargo.lock

Lines changed: 38 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/lance-graph-arm-discovery/Cargo.toml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,23 @@ optional = true
5555

5656
[lib]
5757
doctest = true
58+
59+
# Meta-awareness probe: real Aerial+ extraction → entropy ladder + Granger meta,
60+
# witness-as-pointer (meta derived, never stored). Needs the ndarray meta surface,
61+
# so it rides the `ndarray-simd` feature (the only path that pulls ndarray here).
62+
[[example]]
63+
name = "meta_awareness_probe"
64+
required-features = ["ndarray-simd"]
65+
66+
# Invariance-witness probe: basins as ICP environments — a confounded pair that entropy
67+
# trusts (low H) but cross-basin invariance refutes (the MIT causal-discovery third axis).
68+
[[example]]
69+
name = "invariance_witness_probe"
70+
required-features = ["ndarray-simd"]
71+
72+
# Coreference rung-separation probe: relative-pronoun resolution over the REAL 144-cell
73+
# verb_table (VerbFamily × Tense → SlotPrior) as a syntax/Semantik/pragmatic split.
74+
# Needs the contract (verb_table, via `landing`) AND ndarray (reliability, via `ndarray-simd`).
75+
[[example]]
76+
name = "coreference_rung_probe"
77+
required-features = ["ndarray-simd", "landing"]

0 commit comments

Comments
 (0)