KoalaTrapLord
554b166787
Phase 2d/2e/2f: Extract forge_runner, precon_service, import_service/helpers into services/
2026-03-17 15:22:19 -04:00
KoalaTrapLord
874561f423
Phase 2c: Extract card analysis to services/card_analysis.py ( #12 )
2026-03-17 05:14:35 -04:00
KoalaTrapLord
c7309d1ace
Phase 2b: Extract deck service to services/deck_service.py ( #11 )
2026-03-17 05:05:52 -04:00
KoalaTrapLord
5aee93dfae
Phase 1c: Extract datPhase 2a: Extract Scryfall client to services/scryfall.py ( #10 )abase service to services/database.py ( #9 )
2026-03-17 04:54:36 -04:00
KoalaTrapLord
e14a6f9500
Phase 1c: Extract database service to services/database.py ( #9 )
2026-03-17 04:40:44 -04:00
KoalaTrapLord
7baae153ae
Phase 1b: Extract Config, BatchState, AI_PROFILES into models/state.py ( #8 )
2026-03-17 01:57:22 -04:00
KoalaTrapLord
eadf54c670
Phase 1a: Extract Pydantic models into models/requests.py + models/responses.py ( #7 )
2026-03-17 01:45:57 -04:00
KoalaTrapLord
312d13949d
feat: extract ML endpoints into routes/ml.py ( #36 )
...
Moved all 15 /api/ml/* endpoints, 4 state dicts, and 3 background
pipeline functions from lab_api.py into routes/ml.py. Wired via
app.include_router(ml_router) in lab_api.py.
2026-03-17 00:41:31 -04:00
KoalaTrapLord
192c307ca7
refactor( #42 ): deduplicate sim thread functions in deepseek.py
2026-03-17 00:20:51 -04:00
KoalaTrapLord
5cb6e6ce81
refactor( #41 ): remove duplicate _get_deepseek_brain from deepseek.py, import from shared
2026-03-17 00:08:04 -04:00
KoalaTrapLord
301b9d38c8
fix( #40 ): use Path().parent.parent for correct src/ resolution in routes/deepseek.py
2026-03-17 00:02:22 -04:00
KoalaTrapLord
b57fc9dc2f
fix: add missing stdlib imports (threading, os, re, csv, io, datetime) across route modules
2026-03-16 01:55:17 +00:00
KoalaTrapLord
e1f2b5d89f
fix: add missing os import to collection.py
2026-03-16 01:53:17 +00:00
KoalaTrapLord
9b354e019b
fix: add missing Path import to collection.py
2026-03-16 01:42:37 +00:00
KoalaTrapLord
ac3b76793b
fix: add missing Path, os, threading imports to routes/collection.py
2026-03-15 21:05:35 -04:00
KoalaTrapLord
c60719a0a9
refactor: extract deckgen (14) + coach (12) routes
...
- routes/deckgen.py: classic generator, Perplexity V1, V3 generator + exports
Helpers: _resolve_commander, _generate_deck, _build_collection_summary,
_call_pplx_api, _fill_basic_lands, etc.
Uses _coach._deck_gen_v3 via module reference for V3 state
- routes/coach.py: all coaching endpoints + init_coach_service(),
_build_deck_report_from_db, globals (_coach_service, _deck_gen_v3, etc.)
- lab_api.py: 3265 -> 1063 lines (16 remaining: ML + SPA catch-all)
- Total: 90 extracted + 16 remaining = 106 endpoints verified
2026-03-15 07:26:09 +00:00
KoalaTrapLord
87a2090c68
refactor: extract scanner (6) + deepseek/sim (9) routes
...
- routes/scanner.py: scan, scan/add, re-enrich, auto-classify, auto-classify-all, edhrec
- routes/deepseek.py: sim/run, sim/status, sim/result, sim/run-from-deck,
sim/run-deepseek, deepseek/connect, deepseek/status, deepseek/configure, deepseek/logs
- lab_api.py: 4464 -> 3265 lines (42 remaining endpoints)
- Total: 64 extracted + 42 remaining = 106 endpoints verified
2026-03-15 06:56:02 +00:00
KoalaTrapLord
8a6fbfaa8a
fix: 3 post-refactor bugs (COMMANDER_META, PRECON_INDEX, startup)
...
Task 1: Move BUILTIN_COMMANDERS + load_commander_meta() to shared.py
Fix import_routes.py to use _shared.COMMANDER_META (module ref)
Task 2: Rewrite precon.py to use _shared.PRECON_INDEX (module ref)
Task 3: Add @app.on_event('startup') safety net for uvicorn --reload
2026-03-14 19:08:21 +00:00
KoalaTrapLord
36077c94ab
refactor: extract 49 endpoints into 5 route modules
...
- Extract collection (10), deckbuilder (18), precon (4), import (5), lab (12) routes
- All share helpers/models/state from routes/shared.py
- Gut lab_api.py from 8872 to 4487 lines (57 remaining endpoints)
- Delete routes/_wire.py and routes/_autoload.py (replaced by include_router)
- Add _scryfall_fuzzy_lookup to shared.py
- 106 total endpoints verified: 49 extracted + 57 remaining
2026-03-14 18:55:32 +00:00
KoalaTrapLord
c52eb1c3ef
refactor: extract all shared state, helpers, models into routes/shared.py
2026-03-14 03:15:12 -04:00
KoalaTrapLord
c14402494b
feat(routes): add _autoload.py — FastAPI startup event that wires routers
...
Adds an @app.on_event('startup') hook that imports routes._wire.
This means lab_api.py needs zero changes — the routers self-register
when the app boots. Drop this file into the repo root and it works.
Alternatively, add to lab_api.py after app creation:
from routes import _autoload # noqa
2026-03-14 01:49:52 -04:00
KoalaTrapLord
5ea512bfef
feat(routes): add _wire.py — registers shared symbols and includes all routers
...
Called via `import routes._wire` at the bottom of lab_api.py (after all
symbols are defined). Registers every shared object into routes.shared
and mounts all five APIRouters onto the FastAPI app.
Batch 6/6 — final wiring step.
2026-03-14 01:49:18 -04:00
KoalaTrapLord
d92345927f
refactor: Batch 5 — routes/deckbuilder.py (deck CRUD, cards, analysis, recs, bulk-add, export)
2026-03-14 01:47:04 -04:00
KoalaTrapLord
e1a46202b2
refactor: Batch 4 — routes/collection.py (collection CRUD, import, export, scryfall cache)
2026-03-14 01:46:33 -04:00
KoalaTrapLord
553e07980f
refactor: Batch 3 — routes/import_routes.py and routes/precon.py
2026-03-14 01:45:58 -04:00
KoalaTrapLord
b0666bb3fd
refactor: Batch 2 — routes/lab.py (simulator, status, decks-list, profiles, analytics, deepseek)
2026-03-14 01:45:17 -04:00
KoalaTrapLord
4b1d2f71f5
refactor: Batch 1 — add routes/ package with shared state, config, and models
2026-03-14 01:44:37 -04:00