Live Audit — Open Issues Tracker

# Live Audit — Open Issues Tracker

> Updated 2026-06-28 (session 2). Production bot: `cash_nl_g4_live.toml` (Gen 4 adaptive).
> Server: `live_server` on 127.0.0.1:8088.

---

## Current Open Issues

### Strategy Issues

| ID | Issue | Status | Details |
|---|---|---|---|
| **S1** | Passive postflop play | 🔄 Partial | `bet_turn_base=0.58`, `strong_hands_fraction=0.30` applied. Further improvement needs Gen 5 learned betting. |
| ~~S2~~ | ~~Cold start waste~~ | ✅ **Resolved** | `update_table_info()` loads table profile from disk; `on_hand_start()` loads player profiles with `hands_observed` intact. Verified in code: cold-start check at `hands_observed >= 5` passes when profiles exist. |
| ~~S3~~ | ~~Preflop looseness not wired~~ | ✅ **Fixed** | Added `looseness_mult` to `NgPreFlopConfig`; `AdaptivePreflopGen4::get_action` now applies VPIP-driven looseness to open-raise + limp thresholds. |
| **S4** | Range prediction 13% miss | 🔄 Open | 87.9% hit rate. Weight map sweep (14 variants) shows minimal improvement via parameter tuning (±2/hand). Needs Gen 5 range-prediction NN. |
| **S5** | Gen 5 opponent features not bridged | 🔄 Open | `compute_features()` passes empty opponent_stats. Bridge Gen 4 PlayerStats → OpponentFeatures. |
| **S6** | Gen 5 no reward assignment | 🔄 Open | Transition struct lacks reward field. Needed for PPO self-play. |

### Fixed Issues (2026-06-28 session 2)

| ID | Issue | Fix |
|---|---|---|
| ~~S3~~ | Preflop looseness not wired | `looseness_mult` field in NgPreFlopConfig + per-decision config clone in AdaptivePreflopGen4 |
| ~~S2~~ | Cold start resets profiles | Verified already handled by disk loading in observer.rs |

### Fixed Issues (2026-06-27)

| ID | Issue | Fix |
|---|---|---|
| ~~B1~~ | All-in without stack/sizing awareness | Pot odds gate in `should_raise()` |
| ~~B7~~ | Bot too passive postflop | Curve sweep tuning, `bet_turn_base=0.58` |
| ~~B8~~ | `num_callers` counts limpers | Fixed to only count callers of last raise |
| ~~Call mismatch~~ | SB call computed as full BB | `reconcile_missing_blinds()` |
| ~~Range too tight~~ | Binary ranges | S-curve range construction |

### Userscript Issues

| ID | Issue | Status |
|---|---|---|
| **U5** | `clickWhenReady` retry doesn't re-validate hand ID | 🔄 Open |
| **D1** | Missing ante events (chronic) — pot undercounted | 🔄 Open |

---

## Parameter Sweep Results Summary

### Gen 4 opponent model sweep (2026-06-28, thresholds fixed)
14 variants × 3 seeds × 20k hands. Best: `narrow_center_offset=0.3` (+2/hand).
All weight map params within ±2/hand of baseline. **Conclusion: model is accurate;
threshold scaling is the real lever.**

### Gen 3/4 config comparison (2026-06-28)
Gen 4 dominates Gen 3 by 70% (148 vs 86 vs chumps). `cash_nl_g4_loose` best vs
calling stations (+2 over live). Loose/tight spread: Gen 3 = 17 pts, Gen 4 = 2 pts.

### Curve tuning sweep (2026-06-27, applied to live config)
| Round | Best param | Value | Δ |
|---|---|---|---|
| R1 | `bet_turn_base` | 0.58 | +459 |
| R1 | `scurve_steepness_mult` | 0.3 | +45 |
| R2 | `narrow_center_offset` | 0.2 | +46 |
| R2 | `range_tightness_scale` | 0.8 | +31 |
| R3 | `strong_hands_fraction` | 0.30 | +18 |
| R3 | `call_w_draw` | 0.75 | +16 |

### Validation sweep (2026-06-27)
- g4_live vs chump: **+253 BB/100** (g2 baseline: +191 BB/100 → +62 improvement)

---

## Current Live Config Values (`cash_nl_g4_live.toml`)

```
mc_samples = 50000
strong_hands_fraction = 0.30
call_base = 0.45
call_ppot_base = 0.25
call_w_draw = 0.75
call_w_pot_odds = 0.70
bet_flop_base = 0.30
bet_turn_base = 0.58
raise_base = 0.80
range_tightness_scale = 0.8
narrow_center_offset = 0.2
narrow_strength_mult = 1.0
scurve_steepness_mult = 0.3
bluff_hs_max = 0.05
range_looseness = 0.05
```

---

## Next Session Audit Plan

1. Deploy `cash_nl_g4_loose` as default for calling-station tables
2. Sweep EMA half-life (100 → 50/75) for faster opponent adaptation
3. Activate Gen 5 data collection (fix G5-1/G5-2/G5-3)
4. Focus threshold scaling sweeps, not weight map shape


id: 60976d006f58404387784a6b90ebf04c
parent_id: 1246bbc3bb4948fc8329079b84b4ae3d
created_time: 2026-06-22T10:20:30.824Z
updated_time: 2026-07-17T08:37:46.671Z
is_conflict: 0
latitude: 0.00000000
longitude: 0.00000000
altitude: 0.0000
author: 
source_url: 
is_todo: 0
todo_due: 0
todo_completed: 0
source: joplin-desktop
source_application: net.cozic.joplin-desktop
application_data: 
order: 1782123630824
user_created_time: 2026-06-22T10:20:30.824Z
user_updated_time: 2026-06-28T07:46:51.565Z
encryption_cipher_text: 
encryption_applied: 0
markup_language: 1
is_shared: 0
share_id: 
conflict_original_id: 
master_key_id: 
user_data: 
deleted_time: 1784277466671
type_: 1