From aa43b6dddb4d61e478b6eaef353e200574699bbc Mon Sep 17 00:00:00 2001 From: jgrusewski Date: Mon, 20 Apr 2026 23:46:24 +0200 Subject: [PATCH] =?UTF-8?q?cleanup:=20update=20scoreboard=20=E2=80=94=20it?= =?UTF-8?q?er=208=20(4=20resolved=20+=20Needs-human=20closed=20per=20user?= =?UTF-8?q?=20directive)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cleanup/dqn-cleanup-scoreboard.md | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/docs/superpowers/cleanup/dqn-cleanup-scoreboard.md b/docs/superpowers/cleanup/dqn-cleanup-scoreboard.md index 28eab11f9..ee212deca 100644 --- a/docs/superpowers/cleanup/dqn-cleanup-scoreboard.md +++ b/docs/superpowers/cleanup/dqn-cleanup-scoreboard.md @@ -1,7 +1,7 @@ --- -iteration: 8 +iteration: 9 last_scan: 2026-04-20T20:05:00Z -last_scoreboard_hash: iter7resolved-fflag013a-fflag016-fflag017 +last_scoreboard_hash: iter8resolved-fflag013b-dead002-dead003-dead004 consecutive_stall_count: 0 status: active --- @@ -25,7 +25,7 @@ Representative sampling from iteration-1 scan. Future iterations will expand thi - [x] [FFLAG-011] `enable_causal_intervention` — RESOLVED iter 5 commit 35ccc48c9 (dead-flag chain: DqnTrainerConfig → CausalInterventionConfig.enabled; zero readers) - [x] [FFLAG-012] `enable_gradient_vaccine` — RESOLVED iter 6 commit 9fa8c009f (dead-flag chain: GpuDqnTrainConfig → GpuDqnTrainer field; zero readers of self.enable_gradient_vaccine) - [x] [FFLAG-013a] `use_noisy_nets`+`use_distributional` in GpuExperienceCollectorConfig — RESOLVED iter 7 commit be4f9932b (both dead, comments said "always enabled") -- [?] [FFLAG-013b] `enable_action_masking` — DEFERRED: real gating chain across collector config + GpuDqnTrainer.enable_action_masking field + training_loop setter. Mixed defaults (false in collector default, true at constructor.rs:380). Needs coordinated 3-file fix. +- [x] [FFLAG-013b] `enable_action_masking` — RESOLVED iter 8 commit e8eee1ed8 (full chain deleted; comment at constructor.rs:379 confirmed "always active") - [ ] [FFLAG-014] `enable_backtest`: `crates/ml/src/hyperopt/adapters/dqn.rs:507` — S=5 B=3 E=3 score=5.0 - [x] [FFLAG-015] `enable_network_diagnostics` — RESOLVED iter 2 commit 0c5186cda - [x] [FFLAG-016] transformer 4-flag set (`use_flash_attention`, `use_sparse_attention`, `use_cuda_graphs`, `enable_profiling`) — RESOLVED iter 7 commit 3f4fa33b9 (all 4 were aspirational config with zero implementation behind them; actual flash/sparse attention lives in `crates/ml/src/flash_attention/mod.rs`) @@ -51,9 +51,9 @@ Representative sampling from iteration-1 scan. Future iterations will expand thi ### DEAD (severity 3) - [x] [DEAD-001] `use_different_seeds` unused field — RESOLVED iter 1 commit 4bbe1e561 -- [ ] [DEAD-002] `select_active_symbol` + `set_opportunity_scores` + `opportunity_scores` field all dead: `crates/ml-dqn/src/multi_asset.rs:308,317` — S=3 B=1 E=3 score=1.0 -- [ ] [DEAD-003] `crates/ml/src/transformers/features.rs` is orphan (126 LOC, not declared via `mod features;` — not in build). References types that don't exist (`FeatureConfig`, `MarketTick` etc). — S=3 B=1 E=3 score=1.0 -- [ ] [DEAD-004] `use_sparse_patterns` field in `crates/ml/src/flash_attention/mod.rs:186` — write-only, zero conditional readers. Real sparse-attention logic runs unconditionally via `create_sparse_mask()` at line 317. — S=3 B=3 E=1 score=9.0 +- [x] [DEAD-002] `select_active_symbol` + `set_opportunity_scores` + `opportunity_scores` field — RESOLVED iter 8 commit 967e56c64 +- [x] [DEAD-003] orphan `crates/ml/src/transformers/features.rs` (126 LOC) — RESOLVED iter 8 commit 647ff0997 +- [x] [DEAD-004] flash_attention flags (use_sparse_patterns / io_aware_tiling / cuda_optimization / standard_attention fallback) — RESOLVED iter 8 commit 298cc33fc ### UNWRAP (severity 3 — training hot path) - [x] [UNWRAP-001] false-positive — line 1127 is inside `mod tests` (iter 2, no commit) @@ -85,15 +85,26 @@ Representative sampling from iteration-1 scan. Future iterations will expand thi - [x] [FFLAG-016] transformer 4-flag set (aspirational config, zero impl) — iter 7 — commit 3f4fa33b9 - [x] [FFLAG-017] transformer 3-flag set (feature selectors, no impl) — iter 7 — commit 3f4fa33b9 - [x] [FFLAG-013a] `use_noisy_nets`+`use_distributional` in GpuExperienceCollectorConfig — iter 7 — commit be4f9932b +- [x] [FFLAG-013b] `enable_action_masking` chain — iter 8 — commit e8eee1ed8 +- [x] [DEAD-002] `opportunity_scores` dead API — iter 8 — commit 967e56c64 +- [x] [DEAD-003] orphan `transformers/features.rs` (126 LOC) — iter 8 — commit 647ff0997 +- [x] [DEAD-004] flash_attention flags (4 fields + standard_attention fallback + mask param) — iter 8 — commit 298cc33fc ## Known external state (NOT open findings) Prior WIP blocker (`set_meta_q_pred` missing method) was committed by the user as 18261c85a between iterations — ml crate now compiles. ## Needs human review -- [?] [FALLBACK-001] `.unwrap_or_else(|| self.symbols[0].clone())`: `crates/ml-dqn/src/multi_asset.rs:322` — reason: false-positive — the whole `select_active_symbol` method is dead (zero callers workspace-wide). Reclassified as DEAD-002. -- [?] [GPUSYNC-006] curiosity.rs:143 `pred.to_host()` — reason: needs GPU MSE-loss kernel swap to eliminate; current CPU loss path is explicitly marked "cold path" but runs per-batch during PPO curiosity training. Fix requires writing a GPU MSE+reduction kernel — exceeds 200-LOC ceiling. -- [?] [GPUSYNC-008] regime_conditional.rs:156 `states.to_host()` — reason: needs GPU per-sample classification kernel. Function's own docstring ("Zero CPU roundtrip") is a lie — current impl downloads states, classifies per row on CPU, uploads 3 mask tensors. Fix requires a fused thresholding/classification kernel. Hot-path callers bypass this via fused trainer, but validation+two impl paths still hit it. +*Per user directive "no deferred tasks, solve properly" (iter 7) the +Needs-human escape hatch is closed. Remaining items below are kept +only as a log of past reasoning — all must be tackled in future +iterations, not left deferred.* + +- [x] [FALLBACK-001] `multi_asset.rs:322` fallback — resolved via DEAD-002 (whole dead method deleted iter 8 — commit 967e56c64). +- [ ] [GPUSYNC-006] curiosity.rs `pred.to_host()` — needs GPU MSE+reduction kernel to eliminate the roundtrip. Still open; do NOT defer next iteration. +- [ ] [GPUSYNC-008] regime_conditional.rs `states.to_host()` — needs fused thresholding/classification kernel so the docstring "Zero CPU roundtrip" becomes truthful. Still open; do NOT defer. +- [ ] [FFLAG-007] `use_count_bonus` — needs action-selection split into training vs inference paths. Still open; do NOT defer. +- [ ] [FFLAG-018b] `use_unified_extractor` — needs `Option` collapsed to always-Some so is_some() checks become dead. Still open; do NOT defer. ## BLOCKED