KoalaTrapLord
3f6d71ecbc
fix(coach): switch all Anthropic calls to streaming to prevent 10-min timeout error ( closes #109 )
...
- anthropic_client.py: all 4 methods (chat_structured, chat_plain, achat_structured, achat_plain) now use .messages.stream() context manager
- coach_service.py: inline aclient.messages.create() replaced with async streaming via aclient.messages.stream()
- _parse_response() updated to accept pre-extracted text string (since stream gives us text directly)
- check_status() left as non-streaming (max_tokens=10, safe from the 10min rule)
2026-03-27 02:36:22 -04:00
KoalaTrapLord
4246555228
feat: auto-run update_weights.py after overnight sims ( #114 )
...
Completes the sim → weights → deck builder feedback loop.
- Add run_update_weights() to overnight-run.py
- Add auto_update_weights config key (default True)
- Add --no-update-weights, --weights-min-games, --weights-lr CLI flags
- Runs before neural net training so both pipelines get fresh data
2026-03-27 02:35:08 -04:00
KoalaTrapLord
8dd9623417
feat: inject simulation-learned weights into deck builder LLM prompts ( #113 )
...
Closes #112
- Add sim_insights.py to translate learned_weights.json into LLM prompt text
- Add sim_context param to suggest_cards() and enforce_deck_ratios() in ollama_client.py
- Wire get_sim_insights() into build_deck pipeline (Steps 4 & 6)
- Fully backwards compatible — no-op until real sim data exists
2026-03-27 02:27:42 -04:00
KoalaTrapLord
817b71f69d
feat(ui): add tip-icon tooltips to distillation, simulator, coach, deckgenerator pages
...
- distillation.html: tooltips on all 10 params + ELO Ratings header
- simulator.html: tooltips on Opponent, Games, Record logs, API Endpoint, Model, Temp, Timeout
- coach.html: tooltips on Power Level, Meta Focus, Budget, Focus Areas, Similar Cards Results
- deckgenerator.html: tooltips on Target Bracket, Use my collection, Smart Substitution, AI Model
- All pages now share tooltip styles from global.css (no per-page duplication needed)
2026-03-27 02:06:58 -04:00
KoalaTrapLord
e71cac9dd1
feat(ui): add tooltips to all pages — distillation, simulator, coach, deckgenerator
...
- Move .tip-icon tooltip CSS from training.css into global.css so all pages share it
- distillation.html: 8 param tooltips (Max Generations, Convergence Window, Supervised Epochs, Supervised LR, PPO Iterations, PPO Episodes/Iter, PPO LR, Min Win Rate Gate, Opponent, Playstyle) + ELO Ratings header
- simulator.html: tooltips on Opponent, Games, Record turn logs, API Endpoint, Model, Temp, Timeout
- coach.html: tooltips on Target Power Level, Meta Focus, Budget, Focus Areas, Find Similar Cards Results
- deckgenerator.html: tooltips on Target Bracket, Use my collection, Smart Substitution, AI Model
2026-03-27 01:57:37 -04:00
KoalaTrapLord
cb38081a8b
fix: add top_n cutoff to ELO tournament (default top 10 generations)
2026-03-27 01:48:10 -04:00
KoalaTrapLord
cd9d2eebd8
feat(coach): Phase 1 - pass richer card stats to Claude prompt ( #108 )
...
- _format_underperformers: add synergyScore, clunkinessScore, avgTurnCast, keptInOpeningHandRate
- _format_top_cards: add synergyScore and avgTurnCast
- _format_matchups: append perArchetypeWinRates block from DeckMeta
- USER_PROMPT_TEMPLATE: add ### Archetype Win Rates section placeholder
2026-03-27 01:32:51 -04:00
KoalaTrapLord
e6f18d4a61
feat(training): add intro banner and parameter tooltips to ML Training page
2026-03-27 00:18:21 -04:00
KoalaTrapLord
4e90337f54
feat: extend card hover preview to all card names in coach UI
2026-03-26 23:48:27 -04:00
KoalaTrapLord
a01a70f725
Use DEFAULT_MAX_TOKENS config for Anthropic max_tokens
2026-03-26 22:50:10 -04:00
KoalaTrapLord
4da58681a4
Enhance coach prompt for more detailed reports
2026-03-26 22:41:23 -04:00
KoalaTrapLord
224b4b5d5b
feat: increase coach detail limits (MAX_UNDERPERFORMERS=8, MAX_TOKENS=16384)
2026-03-26 22:33:18 -04:00
KoalaTrapLord
1a34f00574
Update .env.examplefix: correct model ID in .env.example (claude-opus-4-0 -> claude-opus-4)
2026-03-26 15:50:53 -04:00
KoalaTrapLord
8ec7db1612
fix: correct malformed string literals in config.py model defaults
2026-03-26 15:42:34 -04:00
KoalaTrapLord
e0a75e2d04
fix: correct Anthropic model ID from claude-opus-4-0 to claude-opus-4
2026-03-26 15:36:23 -04:00
KoalaTrapLord
15bd6f42bb
fix: resolve all ruff linting errors across coach module
2026-03-26 15:30:27 -04:00
KoalaTrapLord
0aa57ab7d2
fix: remove duplicate resp token on line 284 in run_coaching_session ( #105 )
2026-03-26 14:23:52 -04:00
KoalaTrapLord
9f5eb4a99f
fix: add missing resp= assignment on line 284 ( #105 )
2026-03-26 14:11:35 -04:00
KoalaTrapLord
a9f18f53da
fix: correct indentation of try/except/else block in run_coaching_session ( #105 )
2026-03-26 14:06:27 -04:00
KoalaTrapLord
c9e932ef43
fix: correct try: block indentation in run_coaching_session ( #105 )
2026-03-26 13:44:33 -04:00
KoalaTrapLord
cb99388e3c
fix: correct indentation of total_steps in collect_rollouts
2026-03-26 13:14:34 -04:00
KoalaTrapLord
2e316548e7
fix: repair resp= assignment and _re.sub typo in coach_service.py ( #105 )
2026-03-26 13:11:55 -04:00
KoalaTrapLord
b46e1e0877
fix: remove stray string literal in init_coach_service ( #105 )
2026-03-26 12:31:52 -04:00
KoalaTrapLord
e17b877dcc
fix: repair syntax errors in coach_status and init_coach_service ( #105 )
2026-03-26 12:18:07 -04:00
KoalaTrapLord
6ce21908d3
Update coach.py
2026-03-26 11:53:39 -04:00
KoalaTrapLord
15495483f3
fix: remove _coach_init_error reference from status endpoint ( #105 )
2026-03-26 11:36:33 -04:00
KoalaTrapLord
540fbbf1b3
fix: remove broken _coach_init_error lines from coach.py ( #105 )
2026-03-26 10:52:41 -04:00
KoalaTrapLord
a5cc7736b4
feat: update thread dropdown to 1,2,4,8,16,24,32
2026-03-25 23:15:38 -04:00
KoalaTrapLord
8c6248cf84
feat: increase max threads from 16 to 32
2026-03-25 21:37:21 -04:00
KoalaTrapLord
22d63fd15e
Update coach.py
2026-03-25 21:29:24 -04:00
KoalaTrapLord
2dc0ba2d25
Update coach.py
2026-03-25 21:18:27 -04:00
KoalaTrapLord
8f180820f9
fix: add missing _DEFAULT_ORIGINS definition in lab_api.py ( #105 )
2026-03-25 21:00:34 -04:00
KoalaTrapLord
b283418879
fix: correct indentation in _call_anthropic_api else-block ( #105 )
2026-03-25 20:43:11 -04:00
KoalaTrapLord
61be42ea6d
fix: resolve IndentationError on line 882 in routes/deckgen.py ( #105 )
2026-03-25 20:18:19 -04:00
KoalaTrapLord
3906b93c6a
feat: add WebSocket support for Unity game state streaming ( #107 )
...
* feat: add ws/ package for WebSocket game state streaming
* feat: add WebSocket ConnectionManager with per-game broadcasting
* feat: add GameStateTracker with deep-diff delta engine
* feat: add WebSocket route with delta push and REST bridge endpoints
* feat: register ws_game_router in lab_api.py
2026-03-25 19:51:15 -04:00
KoalaTrapLord
af2a71d1a5
fix: eliminate event-loop-blocking sync calls in async FastAPI routes ( #106 )
...
* feat: add async DB wrapper and eliminate event-loop blocking
* fix: rewrite llm_client.py with native async httpx - removes urlopen and run_in_executor
* fix: rewrite routes/coach.py - replace all sync DB/HTTP with async (aiosqlite + httpx)
* fix: add async DB shutdown hook to lab_api.py
* feat: add aiosqlite>=0.19.0 to requirements
2026-03-25 19:17:41 -04:00
KoalaTrapLord
cf7c872e12
feat: update test mock from pplx_client to anthropic_client ( #105 )
2026-03-25 16:43:11 -04:00
KoalaTrapLord
c9227dac70
Update substitution_prompt.pyfeat: update substitution_prompt.py docstring from Perplexity to Claude Opus ( #105 )
2026-03-25 16:41:47 -04:00
KoalaTrapLord
34b1ea2e30
feat: update deck_gen_user.py docstring from Perplexity to Claude Opus ( #105 )
2026-03-25 16:41:24 -04:00
KoalaTrapLord
1c6454dce5
feat: update substitution_schema.py source field from perplexity to anthropic ( #105 )
2026-03-25 16:39:16 -04:00
KoalaTrapLord
464dd732d5
feat: update deck_schema.py docstring from Perplexity to Claude Opus ( #105 )
2026-03-25 16:36:22 -04:00
KoalaTrapLord
f481243c4e
feat: replace Perplexity AI with Claude Opus in deckgenerator.html ( #105 )
2026-03-25 16:33:00 -04:00
KoalaTrapLord
f49b6cbea5
feat: replace Perplexity AI spinner text with Claude Opus in deckbuilder.html ( #105 )
2026-03-25 16:30:00 -04:00
KoalaTrapLord
71f316a220
feat: update status label from Perplexity to Claude Opus in coach.html ( #105 )
2026-03-25 16:26:31 -04:00
KoalaTrapLord
9556f9d7d0
feat: replace Perplexity with Anthropic Claude in lab_api.py ( #105 )
2026-03-25 15:18:14 -04:00
KoalaTrapLord
9de0965c78
feat: replace Perplexity with Anthropic Claude in routes/deckgen.py ( #105 )
2026-03-25 15:09:46 -04:00
KoalaTrapLord
38bfa51d85
feat: replace Perplexity with Anthropic Claude in routes/coach.py ( #105 )
2026-03-25 14:41:34 -04:00
KoalaTrapLord
c58f561df4
feat: replace PerplexityClient with AnthropicClient in deck_generator.py ( #105 )
2026-03-25 14:34:18 -04:00
KoalaTrapLord
6cf1e58018
feat: replace Perplexity with Anthropic Claude in coach_service.py ( #105 )
2026-03-25 14:30:40 -04:00
KoalaTrapLord
1382d25e46
feat: update clients __init__.py comment to reference Anthropic ( #105 )
2026-03-25 12:25:56 -04:00