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
KoalaTrapLord
d8f7105471
feat: replace PPLX_API_KEY with ANTHROPIC_API_KEY in install script ( #105 )
2026-03-25 12:25:01 -04:00
KoalaTrapLord
071088715f
feat: replace PPLX_API_KEY with ANTHROPIC_API_KEY in start-lab.bat ( #105 )
2026-03-25 12:23:43 -04:00
KoalaTrapLord
95429d9f35
feat: replace PPLX_API_KEY with ANTHROPIC_API_KEY in .env.example ( #105 )
2026-03-25 12:21:40 -04:00
KoalaTrapLord
55379a98ef
feat: replace Perplexity config with Anthropic Claude settings ( #105 )
2026-03-25 12:20:33 -04:00
KoalaTrapLord
173dee6ccc
feat: add anthropic>=0.40.0 and openai>=1.0.0 to requirements ( #105 )
2026-03-25 12:17:52 -04:00
KoalaTrapLord
34dee24399
feat: add AnthropicClient as drop-in replacement for PerplexityClient ( closes #105 phase 1)
2026-03-25 12:16:14 -04:00
KoalaTrapLord
88f1022d0e
fix: deduplicate card names globally before Scryfall batch lookup
...
enforce_deck_ratios can return the same card name under multiple
categories (e.g. Teferi's Protection in both protection + synergy).
all_card_names had no cross-category dedup, so get_cards_by_names
returned duplicate CardEntry objects that then failed the singleton
validator in CommanderDeck.
Fix: build all_card_names with dict.fromkeys() across all categories
so each name appears exactly once. Also deduplicate after Scryfall
lookup by name as a second safety net.
2026-03-25 11:23:06 -04:00
KoalaTrapLord
737863c55d
fix: .env.example default COACH_PROVIDER to perplexity
2026-03-25 10:43:42 -04:00
KoalaTrapLord
e710287c35
fix: run_coaching_session respects COACH_PROVIDER for Perplexity API
...
The coaching pipeline in coach_service.py was always calling self.llm (Ollama) regardless of COACH_PROVIDER setting. Now branches on COACH_PROVIDER == 'perplexity' to call the Perplexity API directly via httpx, matching the pattern used in routes/coach.py coach_chat endpoint.
2026-03-25 10:42:49 -04:00
KoalaTrapLord
2e3c1ec0f1
fix: startup logs and DeckBuilderAdapter respect COACH_PROVIDER/DECK_GEN_PROVIDER instead of hardcoding Ollama
2026-03-25 10:34:04 -04:00
KoalaTrapLord
21f032d32e
fix: set DECK_GEN_PROVIDER default to perplexity and DECK_GEN_MODEL to sonar-pro
2026-03-25 10:29:54 -04:00
KoalaTrapLord
2881309d41
fix: set COACH_PROVIDER default to perplexity, remove stale DeepSeek comment
2026-03-25 10:13:58 -04:00
KoalaTrapLord
e162d50608
feat: bulk quantity edit for collection table
2026-03-25 10:12:03 -04:00
KoalaTrapLord
49bab7fb0a
fix: set FORGE_DIR to repo root so cardsfolder path resolves correctly
2026-03-25 10:09:10 -04:00
KoalaTrapLord
34e88a3a14
fix: correct indentation of commander_keywords and oracle overlap scoring in deckgen.py
2026-03-25 08:45:51 -04:00
KoalaTrapLord
f199bcfa34
feat: column visibility toggle UI for collection table
2026-03-25 08:31:12 -04:00
KoalaTrapLord
77c92d569d
fix: correct indentation of elif/else branches in _run_sim_thread_deepseek
2026-03-25 08:24:21 -04:00
KoalaTrapLord
f24bd05be8
feat: collection stats dashboard (CMC curve, color/type/rarity/value)
2026-03-25 07:51:09 -04:00
KoalaTrapLord
e7ffccf3e8
feat: persist coach sessions to SQLite with disk fallback
2026-03-24 23:44:20 -04:00
KoalaTrapLord
64a65ca2f6
feat: auto-fill deck name with Auto - {CommanderName} on select
2026-03-24 23:19:17 -04:00
KoalaTrapLord
3ba44f68d9
feat: oracle-text keyword overlap scoring in _generate_deck
2026-03-24 22:56:30 -04:00
KoalaTrapLord
f851df6dbf
fix: add getBaseUrl(), PolicyDecision record, and decide(String,int) to PolicyClient
...
GameSession.java references these APIs which were missing from
PolicyClient, causing 3 compilation errors. Added:
- getBaseUrl() getter
- PolicyDecision record (action, confidence)
- decide(String, int) overload that delegates to decide(JsonObject)
2026-03-24 22:46:45 -04:00
KoalaTrapLord
ded79bfde1
feat: add omit_cards chips styles to deck generator CSS
2026-03-24 22:20:10 -04:00
KoalaTrapLord
411e40e46e
feat: add omit_cards chips panel to deck generator HTML
2026-03-24 22:17:25 -04:00
KoalaTrapLord
a4e49daf49
feat: add omit_cards chips/tags input to deck generator JS
2026-03-24 22:11:36 -04:00
KoalaTrapLord
675c64029b
feat: add progress bar + ETA to deck generation UI
2026-03-24 21:20:47 -04:00
KoalaTrapLord
4c47b9d5e2
fix: add V3 result cache to avoid re-generating deck on export
2026-03-24 21:07:59 -04:00
KoalaTrapLord
8903432d67
fix: add missing export filter params (rarity, setCode, power, toughness, keyword, edhrec, qty)
2026-03-24 21:01:35 -04:00
KoalaTrapLord
b1e473397f
fix: shopping list field name + scan-add refresh function name
2026-03-24 20:53:19 -04:00
KoalaTrapLord
07b2c9d5a9
fix: add missing LLM_TIMEOUT constant in coach.py
...
LLM_TIMEOUT was referenced but never defined, causing a NameError
in the Ollama streaming SSE code path when COACH_PROVIDER != 'perplexity'.
2026-03-24 20:43:36 -04:00
KoalaTrapLord
58bbb514ad
fix: skip ML decision flush when brain not connected (heuristic fallback guard)
2026-03-24 20:27:02 -04:00
KoalaTrapLord
d70d74d753
feat: add Scryfall on-the-fly embedding fallback for unknown cards
2026-03-24 20:09:27 -04:00
KoalaTrapLord
475849e477
fix: prevent double-flush of ML decisions in deepseek sim thread
...
_run_sim_thread_deepseek was manually calling engine.flush_ml_decisions()
and writing the .jsonl, then passing engine=engine to _finish_sim which
called flush_ml_decisions() a second time — returning an empty list and
producing empty training data files.
Fix: pass engine=None to _finish_sim when the deepseek thread has already
flushed manually, so _finish_sim skips the second flush entirely.
2026-03-24 19:19:45 -04:00
KoalaTrapLord
b2d1078ca9
fix: disable quiet mode when ML logging is enabled in createWorker
...
DecisionExtractor requires verbose Forge output to reconstruct board
states. When quiet=true, Forge runs with -q which strips the verbose
log lines, causing 0 decisions to be extracted. This change passes
quiet=false to BatchRunner when mlLogEnabled is true.
2026-03-24 18:45:36 -04:00
KoalaTrapLord
9bce919690
fix: replace non-existent ForgeEpisodeGenerator import with actual exports
2026-03-24 13:45:48 -04:00
KoalaTrapLord
41b711c17e
fix: normalize deck report slug matching (spaces/hyphens/underscores)
2026-03-24 13:31:52 -04:00
KoalaTrapLord
a6940ca61a
fix: update get_status() to check Perplexity connection when COACH_PROVIDER=perplexity
2026-03-24 13:29:16 -04:00
KoalaTrapLord
a65daaf801
fix: update Deck Coach status label from LM Studio to Perplexity
2026-03-24 13:26:41 -04:00
KoalaTrapLord
c475f5998b
docs: add COACH_PROVIDER to .env.example
2026-03-24 12:54:30 -04:00
KoalaTrapLord
456ef927f9
feat: add Perplexity deep research support to coach chat endpoint
2026-03-24 12:53:42 -04:00
KoalaTrapLord
a515049542
feat: add COACH_PROVIDER config for Perplexity-powered coach chat
2026-03-24 12:50:21 -04:00
KoalaTrapLord
457e6f91c8
docs: add PPLX_MODEL to .env.example
2026-03-24 12:47:58 -04:00
KoalaTrapLord
977dbd96d7
feat: use PPLX_MODEL config instead of hardcoded 'sonar' in deckgen
2026-03-24 12:47:09 -04:00
KoalaTrapLord
5a499442e6
feat: add PPLX_MODEL env var for configurable Perplexity model
2026-03-24 12:45:40 -04:00
KoalaTrapLord
1f3b17d173
fix: remove ForgeEpisodeQueue import from training __init__
...
ForgeEpisodeQueue does not exist in rollout_buffer.py yet.
Removing premature import to unblock supervised training pipeline.
2026-03-24 12:26:06 -04:00