id: 3793386d342f4e2d8451fa567a712b8c
parent_id: 2ad32133fde8450ca23bbf777b6ba402
item_type: 1
item_id: 3073fa7641ab4c2f9cb9120a98eaa6e0
item_updated_time: 1783540414870
title_diff: "[]"
body_diff: "[{\"diffs\":[[0,\" bot |\\\n\\\n\"],[1,\"## Production Config Chain\\\n\\\n**G48 Live** (`configs/bots/cash_nl_g48_live.toml`):\\\n```\\\nvoting_mode = \\\"first_applicable\\\"\\\n\\\n1. g47_equity_preflop     → preflop: PEM2 matrix equity + unified score\\\n2. g48_formula_postflop   → postflop: formula score + observer ranges + MC 40K\\\n```\\\n\\\n**G47 Live** (`configs/bots/cash_nl_g47_live.toml`) — fallback:\\\n```\\\nvoting_mode = \\\"first_applicable\\\"\\\n\\\n1. g47_equity_preflop     → preflop: PEM2 matrix equity\\\n2. g4_adaptive_postflop   → postflop: observer-driven range narrowing → Gen 3 equity\\\n```\\\n\\\n## G48 Scoring Formula\\\n\\\n```\\\ncombined = value_score + ppot_weight × ppot\\\nvalue_score = hs × (1 - npot_weight × npot) + nutredraw_weight × nutpot × (1 - hs)\\\n\\\ncall_threshold = (call_base + call_bs_weight × board_strength) / looseness × position_factor\\\n\\\nMultiway cap: required_equity × (1 + margin)\\\n  margin = 0.28/√opp (non-river), 0.15/√opp (river)\\\n```\\\n\\\nLive params: `sizing_base=0.33, bet_base=0.08, ppot_weight=0.75, npot_weight=0.10, call_base=0.42, call_bs_weight=0.12`\\\n\\\n\"],[0,\"## Key F\"]],\"start1\":1855,\"start2\":1855,\"length1\":16,\"length2\":1012},{\"diffs\":[[0,\"er blend\"],[1,\", `call_raise_freq`\"],[0,\"\\\n- `hold\"]],\"start1\":3484,\"start2\":3484,\"length1\":16,\"length2\":35},{\"diffs\":[[0,\"ookups)\\\n\"],[1,\"- `holdem_bots/src/gen4/preflop_opening_range.rs` — Opening range visualization\\\n\"],[0,\"- `holde\"]],\"start1\":3782,\"start2\":3782,\"length1\":16,\"length2\":96},{\"diffs\":[[0,\"methods)\"],[1,\", `push_when_calling()`, `remaining_stack_share()`\"],[0,\"\\\n- `hold\"]],\"start1\":3947,\"start2\":3947,\"length1\":16,\"length2\":66},{\"diffs\":[[0,\"es`\\\n\"],[-1,\"- `holdem_bots/src/cash/rollout_postflop_v3.rs` — production Gen 2 V3 strategy\\\n- `holdem_bots/src/cash/ng_preflop.rs` — NG preflop (169-hand table-based)\\\n- `holdem_bots/src/common/hand_rankings.rs` — 169-hand ranking tables\\\n\"],[0,\"- `h\"]],\"start1\":4120,\"start2\":4120,\"length1\":232,\"length2\":8},{\"diffs\":[[0,\"### \"],[-1,\"Experiment GUI\\\n- `holdem_bots/src/gui/api.rs` — REST API handlers\\\n- `holdem_bots/src/gui/config_gen.rs` — dynamic TOML generation for sweeps\\\n- `holdem_bots/src/gui/runner.rs` — subprocess simulation runner\\\n- `holdem_bots/src/gui/static/index.html` — SPA frontend\\\n\\\n### C\"],[1,\"Configs\\\n- `configs/bots/cash_nl_g48.toml` — G48 sim c\"],[0,\"onfig\"],[-1,\"s\"],[0,\"\\\n- `\"]],\"start1\":4991,\"start2\":4991,\"length1\":283,\"length2\":66},{\"diffs\":[[0,\"bots/cash_nl_g48\"],[1,\"_live\"],[0,\".toml` — G48 sim\"]],\"start1\":5065,\"start2\":5065,\"length1\":32,\"length2\":37},{\"diffs\":[[0,\"toml` — G48 \"],[-1,\"sim\"],[1,\"live\"],[0,\" config\"],[1,\" (MC 40K budget)\"],[0,\"\\\n- `configs/\"]],\"start1\":5087,\"start2\":5087,\"length1\":34,\"length2\":51},{\"diffs\":[[0,\"/bots/cash_nl_g4\"],[-1,\"8\"],[1,\"7\"],[0,\"_live.toml` — G4\"]],\"start1\":5137,\"start2\":5137,\"length1\":33,\"length2\":33},{\"diffs\":[[0,\"_live.toml` — G4\"],[-1,\"8\"],[1,\"7\"],[0,\" live config (20\"]],\"start1\":5154,\"start2\":5154,\"length1\":33,\"length2\":33},{\"diffs\":[[0,\"ig (\"],[-1,\"20K MC budget\"],[1,\"fallback\"],[0,\")\\\n- \"]],\"start1\":5181,\"start2\":5181,\"length1\":21,\"length2\":16},{\"diffs\":[[0,\"fig\\\n\"],[-1,\"- `configs/bots/cash_nl_gen2.toml` — Gen 2 config\\\n- `configs/bots/cash_nl.toml` — Gen 3 config\\\n\"],[0,\"- `c\"]],\"start1\":5322,\"start2\":5322,\"length1\":103,\"length2\":8},{\"diffs\":[[0,\"s/gen5_v\"],[-1,\"2\"],[1,\"4\"],[0,\".safeten\"]],\"start1\":6098,\"start2\":6098,\"length1\":17,\"length2\":17},{\"diffs\":[[0,\"weep_g48\"],[-1,\"_postflop\"],[1,\"*\"],[0,\".sh` — G\"]],\"start1\":6215,\"start2\":6215,\"length1\":25,\"length2\":17},{\"diffs\":[[0,\"G48 \"],[-1,\"postflop sweep\\\n- `scripts/sweep_g48_preflop.sh` — G48 preflop sweep\\\n- `scripts/sweep_g47_postflop.sh` — G47 postflop sweep\\\n\"],[1,\"sweep scripts\\\n- `scripts/sweep_unified_g47.sh`, `scripts/sweep_unified_g48.sh` — unified sweeps\\\n\\\n### Userscript (separate project)\\\n- `/home/jan/WebstormProjects/super-marvin-userscripts/` — TamperMonkey script\\\n- `torn/dist/torn.user.js` — built output (v0.1.10)\\\n- `torn/src/config.ts` — exports `DOM_DEBUG`, `DEFAULT_CONFIG`\\\n- `torn/src/table_dom.ts` — DOM parsing\\\n- `torn/src/index.ts`, `parser.ts`, `executor.ts`, `safety.ts`\\\n- `shared/src/client.ts` — HTTP transport to `live_server`\"]],\"start1\":6231,\"start2\":6231,\"length1\":127,\"length2\":490}]"
metadata_diff: {"new":{},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2026-07-16T07:16:43.378Z
created_time: 2026-07-16T07:16:43.378Z
type_: 13