id: 26a8091588274c35aaeb345baffc09cc
parent_id: 50bc5ee7a8684756bbfdf337dc231de0
item_type: 1
item_id: ec1518e71453490f8fe5ab75cff7180c
item_updated_time: 1786792742775
title_diff: "[]"
body_diff: "[{\"diffs\":[[0,\"26-08-15\"],[1,\", evening\"],[0,\")\\\n\\\n> **P\"]],\"start1\":26,\"start2\":26,\"length1\":16,\"length2\":25},{\"diffs\":[[0,\"G48 \"],[-1,\"formula \"],[0,\"+ Ra\"]],\"start1\":68,\"start2\":68,\"length1\":16,\"length2\":8},{\"diffs\":[[0,\"26-08-15\"],[-1,\", c\"],[1,\". C\"],[0,\"ommits 0\"]],\"start1\":133,\"start2\":133,\"length1\":19,\"length2\":19},{\"diffs\":[[0,\"b..0\"],[-1,\"42876b\"],[1,\"b18e88\"],[0,\" pus\"]],\"start1\":157,\"start2\":157,\"length1\":14,\"length2\":14},{\"diffs\":[[0,\"G51 \"],[-1,\"= G50 + corrector (`corr_enabled=true`)** — configs: `cash_nl_g51.toml` (sim) / \"],[1,\"(\"],[0,\"`cas\"]],\"start1\":207,\"start2\":207,\"length1\":88,\"length2\":9},{\"diffs\":[[0,\"live\"],[-1,\".toml` (live\"],[1,\"`\"],[0,\", DE\"]],\"start1\":225,\"start2\":225,\"length1\":20,\"length2\":9},{\"diffs\":[[0,\"oml)\"],[-1,\"\\\n\\\nThe corrector (`gen4/range_corrector.rs`): Bayesian refinement\"],[1,\"** — corrector:\"],[0,\" `P(\"]],\"start1\":254,\"start2\":254,\"length1\":72,\"length2\":23},{\"diffs\":[[0,\"` after \"],[-1,\"the \"],[0,\"RangeNet\"]],\"start1\":324,\"start2\":324,\"length1\":20,\"length2\":16},{\"diffs\":[[0,\" hs \"],[-1,\"enumeration + 128 shared\"],[1,\"+ 128\"],[0,\" run\"]],\"start1\":375,\"start2\":375,\"length1\":32,\"length2\":13},{\"diffs\":[[0,\"warm\"],[-1,\", cached\"],[0,\"), h\"]],\"start1\":398,\"start2\":398,\"length1\":16,\"length2\":8},{\"diffs\":[[0,\"fit \"],[-1,\"likelihood curves per StreetAction with bet-size/aggression/bet-freq/barrel/VPIP-floor conditioning\"],[1,\"curves\"],[0,\", ra\"]],\"start1\":410,\"start2\":410,\"length1\":107,\"length2\":14},{\"diffs\":[[0,\". Fixes \"],[-1,\"the \"],[0,\"KK-overp\"]],\"start1\":443,\"start2\":443,\"length1\":20,\"length2\":16},{\"diffs\":[[0,\"lay \"],[-1,\"defect class (turn AllIn→Raise, river Raise→Check). Sim-neutral vs g50 (−0.29 BB/100 h2h); sanity gates 10/10.\\\n\\\n### G51 eval summary (2026-08-15)\\\n- Sanity: Gen2 +0.6, Gen3 +1.0, G48 +1.7, TAG +1.5, Nit +0.1, Mixed +0.4 — identical to g50\\\n- Head-to-head g51 vs g50: −0.29 BB/100 (200K hands, dead heat)\\\n- 9-max specialists: Fish 53.4 (g50: 59.0), Maniac 102 (113), rest ~equal — small on-distribution cost, accepted\\\n\\\n### Completed (all)\\\n- equity_v5_2m4 collection (85-dim, 19.2M samples) ✅\\\n- range_v17 trained + production ✅\\\n- G51 corrector implemented, reviewed, sanity-passed, committed, LIVE ✅\\\n- Gen6 PreflopNet/PPO abandoned (−644 BB/100) — code removed, models archived `models/abandoned_gen6/` ✅\\\n\\\n## Cleanup (2026-08-15)\\\n- Removed: gen6/preflop_net modules, ppo bins, g60/g62/g63 + ppo + sweep2 configs, 8 sweep scripts, collect_gen5_preflop tooling, `data/gen5_transitions/` (17G)\\\n- Review fixes\"],[1,\"class. Sim-neutral vs g50 (−0.29 BB/100 h2h).\\\n\\\n### MAJOR FINDING (2026-08-15): Harrington board parser bug\\\n`extract_bracket_cards` took the FIRST bracket on `*** TURN *** [board] [card]` lines → the flop's last card was duplicated as the turn card. **Every multi-street Harrington turn/river validation since the suite's creation ran on corrupted boards** (phantom paired board → inflated hero equity). Fixed in 0b18e88 (extract LAST bracket).\\\n\\\nConsequences with correct boards:\\\n- `4_5_99` river-fold assertion NOW PASSES (99 correctly folds river bet on real board)\\\n- Two genuine strategy gaps unmasked (#[ignore] open items):\\\n  * **4_5_99 turn**: 99 barrels turn at hs 0.40 vs mono-flop check-call (flush-heavy caller range; npot_weight 0.10 too low)\\\n  * **7_6 river**: KK checks river vs capped line (turn donk + river check after scare Ace; needs line-aware capping)\\\n- g50-NN additionally fails a2o_river + 99_twopair; **g51 passes both** — more evidence for the promotion\\\n\\\n### Sanity Gate 1 closed (0b18e88)\\\nGate 1 now runs `--features holdem_bots/gen5_nn` — the production NN path was never tested by sanity before. g51: all gates pass (Gate 1: 51 tests, 0 fail, 2 ignored-open).\\\n\\\n## G51 eval summary\\\n- Sanity: Gen2 +0.6, Gen3 +1.0, G48 +1.7, TAG +1.5, Nit +0.1, Mixed +0.4\\\n- h2h vs g50: −0.29 BB/100 (dead heat); 9-max specialists ~1-5 below g50 (on-distribution cost)\\\n\\\n## Code review (pre-commit, 2026-08-15)\\\nFixed\"],[0,\": ch\"]],\"start1\":459,\"start2\":459,\"length1\":909,\"length2\":1430},{\"diffs\":[[0,\"os (\"],[1,\"all \"],[0,\"ratios \"],[-1,\"were \"],[0,\"satu\"]],\"start1\":1923,\"start2\":1923,\"length1\":20,\"length2\":19},{\"diffs\":[[0,\"NN-blend\"],[-1,\"+\"],[1,\" + \"],[0,\"correcto\"]],\"start1\":1959,\"start2\":1959,\"length1\":17,\"length2\":19},{\"diffs\":[[0,\"tor \"],[-1,\"hoisted out of\"],[1,\"were nested inside\"],[0,\" nar\"]],\"start1\":1976,\"start2\":1976,\"length1\":22,\"length2\":26},{\"diffs\":[[0,\"te (\"],[-1,\"was \"],[0,\"silent\"],[-1,\"ly\"],[0,\" disable\"],[-1,\"d with narrowing off), inert corr_max_boost removed, +2 tests (9 total)\\\n\\\n## Next Steps\\\n1. **Sanity Gate 1 NN gap** (in progress): add `--featu\"],[1,\" risk), unguarded short boards, inert knob removed, config clone removed, named constants, +2 tests. Open: NN-returns-None empty-range fallback.\\\n\\\n## Next Steps\\\n1. **4_5_99 turn barrel fix** — npot weighting vs flush-heavy caller ranges (mono boards); th\"],[0,\"res\"],[-1,\" \"],[0,\"hold\"],[-1,\"em_bots/gen5_nn` to hand_replay invocation — then fix the exposed `4_5_99` turn-barrel (bet_threshold 0.085 on loose tables)\\\n2\"],[1,\" sweep + sanity\\\n2. **7_6 river value-bet** — line-aware capping (turn donk + river check = capped); may need corrector extension or FutureActionNet\\\n3\"],[0,\". **\"]],\"start1\":2016,\"start2\":2016,\"length1\":304,\"length2\":431},{\"diffs\":[[0,\"ea #1)**\"],[-1,\":\"],[1,\" —\"],[0,\" range-c\"]],\"start1\":2460,\"start2\":2460,\"length1\":17,\"length2\":18},{\"diffs\":[[0,\"gram\"],[-1,\", trains\"],[0,\" on \"]],\"start1\":2501,\"start2\":2501,\"length1\":16,\"length2\":8},{\"diffs\":[[0,\"y MC\"],[-1,\" (10x sim speedup)\\\n3\"],[1,\"\\\n4\"],[0,\". **\"]],\"start1\":2540,\"start2\":2540,\"length1\":28,\"length2\":10},{\"diffs\":[[0,\"Tier-2**\"],[-1,\":\"],[1,\" —\"],[0,\" per-com\"]],\"start1\":2563,\"start2\":2563,\"length1\":17,\"length2\":18},{\"diffs\":[[0,\"puts\"],[-1,\" (merges corrector into net)\\\n4. **Live data collection** for RangeNet\"],[1,\"\\\n5. **Live data\"],[0,\" fin\"]],\"start1\":2612,\"start2\":2612,\"length1\":77,\"length2\":23},{\"diffs\":[[0,\"ine-tune\"],[1,\"** —\"],[0,\" \"],[-1,\"(\"],[0,\"Torn VPI\"]],\"start1\":2633,\"start2\":2633,\"length1\":18,\"length2\":21},{\"diffs\":[[0,\".08-0.40\"],[-1,\")\\\n5\"],[1,\"\\\n6\"],[0,\". NN-ret\"]],\"start1\":2672,\"start2\":2672,\"length1\":19,\"length2\":18},{\"diffs\":[[0,\"risk\"],[-1,\" in production path)\\\n\\\n## Sim Speed (unchanged)\\\n9 Tag_nn 1300 h/s; 9 Fish_nn 4.8 h/s (m\"],[1,\")\\\n\\\n## Sim Speed / Infra\\\nM\"],[0,\"ulti\"]],\"start1\":2722,\"start2\":2722,\"length1\":94,\"length2\":33},{\"diffs\":[[0,\"neck\"],[-1,\", not NN\"],[1,\" (9 Fish_nn 4.8 h/s\"],[0,\"). e\"]],\"start1\":2776,\"start2\":2776,\"length1\":16,\"length2\":27},{\"diffs\":[[0,\"9max.sh \"],[-1,\"now \"],[0,\"parallel\"]],\"start1\":2807,\"start2\":2807,\"length1\":20,\"length2\":16},{\"diffs\":[[0,\"(8×4\"],[-1,\" threads);\"],[1,\").\"],[0,\" A/B\"]],\"start1\":2824,\"start2\":2824,\"length1\":18,\"length2\":10},{\"diffs\":[[0,\"sh`.\"],[-1,\"\\\n\\\n## Range\"],[1,\" KK replay: `replay_kk_overplay_variants` (#[ignore]).\\\n\\\n##\"],[0,\" Model\"],[-1,\" File\"],[0,\"s\\\n- \"]],\"start1\":2870,\"start2\":2870,\"length1\":29,\"length2\":72},{\"diffs\":[[0,\"sors` — \"],[-1,\"P\"],[1,\"p\"],[0,\"roductio\"]],\"start1\":2967,\"start2\":2967,\"length1\":17,\"length2\":17},{\"diffs\":[[0,\"` — \"],[-1,\"p\"],[1,\"P\"],[0,\"reflop\"],[-1,\"_v1, ppo_v1/v1b/v1c/v2/v3 (archived)\\\n\\\n## Range Feature Architecture (85 dims)\\\n53 base (EMA stats 11, confidence 1, table 2, position 3, game 5, board texture 4, board cards 10, max sizing 4, action aggregates 9) + 32 rich action history (8/street × 4). Shared `compute_rich_action_history()` in range_recorder.rs.\"],[1,\"Net/PPO archive\"],[0,\"\\\n\\\n##\"]],\"start1\":3047,\"start2\":3047,\"length1\":328,\"length2\":30},{\"diffs\":[[0,\"\\\n- I\"],[-1,\"mprovement i\"],[0,\"deas\"]],\"start1\":3094,\"start2\":3094,\"length1\":20,\"length2\":8},{\"diffs\":[[0,\" #7 \"],[-1,\"implementation \"],[0,\"deta\"]],\"start1\":3111,\"start2\":3111,\"length1\":23,\"length2\":8},{\"diffs\":[[0,\"ity \"],[-1,\"Check \"],[0,\"Poli\"]],\"start1\":3185,\"start2\":3185,\"length1\":14,\"length2\":8}]"
metadata_diff: {"new":{},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2026-08-15T11:25:30.918Z
created_time: 2026-08-15T11:25:30.918Z
is_locked: 0
type_: 13