# Wave 14 — Massive Retest (Backlog Cleared)
**Date**: 2026-07-21
**Version**: dupehell v0.5.0
**Scope**: Complete retest after all C1–C11 fixes. 11 agents, ~290 tests, all 40 domains.
**Result**: 14 bugs found (1 CRITICAL, 3 HIGH, 5 MEDIUM, 5 LOW) + 1 fixed during wave.
---
## Agent 14.1 (Core CLI) — 51/54 ✅ (3 ❌)
| `--domain kyc` (default) | ✅ | 106 records |
| `--domain healthcare` | ✅ | 112 records |
| `--domain fintech` | ✅ | 115 records |
| `--domain publishing` | ✅ | 115 records |
| `--domain blockchain` | ✅ | **C9 fixed** — owner_email: 16/16 valid emails |
| `--size 10/1000/100000` | ✅ | All work, scaling linear |
| `--seed 0/42/999999999` | ✅ | Determinism verified |
| `--difficulty light/medium/hell` | ✅ | Masters count scales correctly |
| `--output-format parquet/ipc` | ✅ | Cross-format data match confirmed |
| `--output-dir <dir>` | ✅ | Files placed in specified dir |
| `--graph` / `--graph-format ipc` | ✅ | Nodes + Edges files generated |
| `--hard-neg-ratio 0.5` | ✅ | Different hash (correct) |
| `--singleton-master-fraction 0.5` | ⚠️ | Different data, **same hash** (C14) |
| `--locale fr/de/es` | ❌ | Different names, **same hash** as en (C15) |
| `--singleton-master-fraction 0.9` | ✅ | Proper error (too high) |
| All 18 combo tests | ✅ | 3 diffs × 2 formats × 3 seeds |
| 10M records | ✅ | 10,150,006 rec in 26.8s |
| Error handling (bad params) | ✅ | Clear error messages |
**Bugs**: C14 (hash collision SMF), C15 (hash collision locale), C16 (no overwrite warning)
---
## Agent 14.2 (Python API) — 105/107 ✅ (2 ❌)
| A1-A9: basic generate() calls | ✅ | All 13 subtests pass |
| B1-B5: GenerateResult return type | ✅ | All 24 subtests pass |
| C1-C8: Error handling | ✅ | All 8 pass; hard_neg_ratio=1.5 accepted by design |
| D1-D4: estimate_difficulty() | ✅ | Returns DifficultyReport (pydantic) |
| E1-E4: Module attributes | ✅ | All present except __version__ |
| F1-F2: Docstrings | ✅ | Complete except singleton_master_fraction |
| G1-G7: Edge cases | ✅ | Determinism, IPC/Parquet, canary all pass |
**Bugs**: C17 (missing __version__), C18 (singleton_master_fraction undocumented)
---
## Agent 14.3 (Determinism & Cross-API) — 8/10 ✅ → 10/10 ✅ after rebuild
| Python same seed x2 (5 domains) | ✅ | All 5 pass |
| Different seeds = different output | ✅ | seed=42 vs seed=999 differs |
| IPC/Parquet cross-format (3 domains) | ✅ | All 3 pass |
| CLI/Python cross-API (2 domains) | ❌→✅ | **Was C-19: diverged** — FIXED by rebuilding Python wheel |
| CLI determinism | ✅ | CLI→CLI identical |
| Cross-format GT | ✅ | GT identical IPC vs Parquet |
**Bug found & fixed during wave**: C-19 was caused by stale Python wheel (July 18) vs fresh CLI build (today). Rebuilt with `maturin build --release && pip install` → resolved.
---
## Agent 14.4 (Data Quality Pt.1 — domains 1-20) — 0/20 ✅ (5 bugs)
| kyc | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ |
| healthcare | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
| fintech | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| publishing | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ |
| ecommerce | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ |
| blockchain | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ |
| education | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ |
| realestate | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ |
| manufacturing | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ |
| energy | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
| telecom | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
| media | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
| gaming | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ |
| logistics | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
| nonprofit | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
| insurance | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ |
| automotive | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
| aviation | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
| agriculture | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
| banking | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
**Bugs**: C19 (null rate inflation), C12 (phone alpha), C13 (datetime alpha), C21 (date format swap), C22 (negative balance)
---
## Agent 14.5 (Data Quality Pt.2 — domains 21-40) — 11/11 domains (1 bug)
| pharma | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| biotech | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| med_devices | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| diagnostics | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| veterinary | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| food_beverage | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| hospitality | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| travel | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| fashion | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| retail | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| sports | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| fitness | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| gaming | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| esports | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| social_media | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| saas | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| cybersecurity | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| cloud_computing | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| iot | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| robotics | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
**Bugs**: C12/C13 overlap with 14.4, C20 (IP address alpha injection in cybersecurity)
---
## Agent 14.6 (Ground Truth Integrity) — 10/10 ✅
| kyc | ✅ | ✅ | ✅ | ✅ | ✅ |
| healthcare | ✅ | ✅ | ✅ | ✅ | ✅ |
| fintech | ✅ | ✅ | ✅ | ✅ | ✅ |
| ecommerce | ✅ | ✅ | ✅ | ✅ | ✅ |
| blockchain | ✅ | ✅ | ✅ | ✅ | ✅ |
| cybersecurity | ✅ | ✅ | ✅ | ✅ | ✅ |
| academia | ✅ | ✅ | ✅ | ✅ | ✅ |
| publishing | ✅ | ✅ | ✅ | ✅ | ✅ |
| insurance | ✅ | ✅ | ✅ | ✅ | ✅ |
| telecom | ✅ | ✅ | ✅ | ✅ | ✅ |
**Bugs**: 0 — GT integrity is solid across all dimensions.
---
## Agent 14.7 (Foreign Key Integrity) — 4/4 ✅
| blockchain | 4 | ✅ | ✅ | ✅ |
| fintech | 4 | ✅ | ✅ | ✅ |
| publishing | 3 | ✅ | ✅ | ✅ |
| technology | 5 | ✅ | ✅ | ✅ |
**Tested**: size=2000/100K/500K, medium/hell, IPC/Parquet, CLI/Python. 0 orphans (excluding canary bypass). All multi-hop chains intact. Noise does not corrupt FK columns.
**Bugs**: 0
---
## Agent 14.8 (IPC/Parquet Cross-Format Equality) — 28/28 ✅
| kyc | ✅ | ✅ | ✅ | ✅ | ✅ |
| healthcare | ✅ | ✅ | ✅ | ✅ | ✅ |
| fintech | ✅ | ✅ | ✅ | ✅ | ✅ |
| publishing | ✅ | ✅ | ✅ | ✅ | ✅ |
| ecommerce | ✅ | ✅ | ✅ | ✅ | ✅ |
| blockchain | ✅ | — | — | ✅ | ✅ |
| education | ✅ | — | — | ✅ | ✅ |
| insurance | ✅ | — | — | ✅ | ✅ |
| telecom | ✅ | — | — | ✅ | ✅ |
| manufacturing | ✅ | — | — | ✅ | ✅ |
**Bugs**: 0 — C7 fix for IPC hash confirmed working. All cross-format data identical.
---
## Agent 14.9 (Watermark & Canary Records) — 10/10 ✅
| kyc | ✅ | ✅ | ✅ | ✅ | ✅ |
| healthcare | ✅ | ✅ | ✅ | ✅ | ✅ |
| fintech | ✅ | ✅ | ✅ | ✅ | ✅ |
| publishing | ✅ | ✅ | ✅ | ✅ | ✅ |
| ecommerce | ✅ | ✅ | ✅ | ✅ | ✅ |
| blockchain | ✅ | ✅ | ⏭️ | N/A | ✅ |
| education | ✅ | ✅ | ✅ | ✅ | ✅ |
| insurance | ✅ | ✅ | ✅ | ✅ | ✅ |
| telecom | ✅ | ✅ | ✅ | ✅ | ✅ |
| manufacturing | ✅ | ✅ | ⏭️ | N/A | ✅ |
**Canary count** (size=2000): 6–18 per domain. All canary records have CANARY- master_id prefix, valid record_ids, correct match_type.
**Bugs**: 0 functional. 2 doc mismatches (C23: PAN doc says 2 digits, code uses 3; C24: Passport same).
---
## Agent 14.10 (Scale & Performance) — 9/10 ✅ (1 anomaly)
| Scaling | 1K | medium | 21K rec/s | ✅ (startup-bound) |
| Scaling | 10K | medium | 140K rec/s | ✅ (matches baseline) |
| Scaling | 100K | medium | 381K rec/s | ✅ |
| Scaling | 500K | medium | 417K rec/s | ✅ |
| Difficulty | 100K | light | 400K rec/s | ✅ |
| Difficulty | 100K | medium | 334K rec/s | ✅ |
| Difficulty | 100K | hell | 289K rec/s | ✅ |
| Domain variance | 100K | kyc | 358K rec/s | ✅ |
| Domain variance | 100K | blockchain | 494K rec/s | ⚠️ +38% outlier |
| CLI vs Python | 500K | medium | 409K vs 417K | ✅ (1.8% diff) |
| Large scale | 2M | medium | 442K rec/s | ✅ |
| IPC vs Parquet | 100K | medium | 541K vs 335K | ⚠️ +62% IPC faster |
**Bugs**: C25 (blockchain throughput outlier +38% — minor, may be by-design due to simpler schema).
---
## Agent 14.11 (Edge Cases) — 30/30 ✅
| seed=0 | ✅ | Works, deterministic |
| seed=-1 | ✅ | OverflowError |
| seed=2³¹-1 / 2⁶⁴-1 | ✅ | Works |
| seed=None | ✅ | TypeError |
| size=1 (minimum) | ✅ | ValueError (must be >= 10) |
| size=10 (min valid) | ✅ | Works, 16 records |
| size=10_000_000 | ✅ | Works, 24s |
| size=-1 / 0 / None | ✅ | Appropriate errors |
| Long domain name | ✅ | OSError |
| Empty domain | ✅ | FileNotFoundError with domain list |
| output_dir edge cases | ✅ | All handled |
| 3 rapid calls | ✅ | All complete, no leaks |
| CLI: --seed 0, --size 10M | ✅ | Works |
| CLI: no args, --help | ✅ | Shows help, defaults |
| CLI: --hard-neg-ratio 0/1.0 | ✅ | Correct counts |
| Stability: 5× identical runs | ✅ | ALL MATCH |
| Memory | ✅ | ~51MB stable |
**Bugs**: 0 — edge case handling is solid.
---
## Consolidated Bug List
See `BUGS.md` for full details.
| C12 | Phone alpha injection in fuzzy_dup records | 🟠 HIGH |
| C13 | Datetime alpha injection in fuzzy_dup records | 🟠 HIGH |
| C14 | Hash collision: --singleton-master-fraction | 🟡 MEDIUM |
| C15 | Hash collision: --locale | 🟡 MEDIUM |
| C16 | No overwrite warning on hash collision | 🟠 HIGH |
| C17 | Missing __version__ attribute | 🟢 LOW |
| C18 | singleton_master_fraction undocumented | 🟢 LOW |
| C19 | Null rate inflation: 71 cols exceed schema+10pp | 🔴 CRITICAL |
| C20 | IP address alpha injection (cybersecurity) | 🟡 MEDIUM |
| C21 | Datetime format inconsistency (DD-MM-YYYY) | 🟡 MEDIUM |
| C22 | Negative current_balance (fintech/banking) | 🟢 LOW |
| C23 | PAN watermark: doc says 2 digits, code uses 3 | 🟢 LOW |
| C24 | Passport watermark: doc says 2 digits, code uses 3 | 🟢 LOW |
---
## Key Strengths Confirmed
- **GT integrity**: 10/10 domains pass all checks
- **FK integrity**: 16 FK rules × 7 configs, 0 orphans
- **IPC/Parquet equality**: 28/28 tests pass
- **Watermark**: 10/10 domains, deterministic, seed-dependent
- **Edge cases**: 30/30 handle correctly
- **Python API error handling**: 8/8 validation cases pass
- **Determinism**: Same seed = same data (CLI, Python, IPC, Parquet)
- **Performance**: 400K+ rec/s throughput, scales linearly to 10M
- **Memory**: ~51MB stable during generation