feat: AI bug fixes, deck/collection migration, and enrichment pipeline

- Fix AI turn pipeline: add cmc to Scryfall cache, tag isRamp/isRemoval/
  isBoardWipe from oracle text during enrichment, enable post-combat spell
  casting for all difficulty levels
- Migrate deck builder, deck generator, and collection from ui/ to
  lan-client/ as iframe-embedded panels with LAB_API_BASE patching
- Fix ai-bridge.js: turnNumber, deck_name, battlefield serialization,
  5-playstyle mapping, window exports for cross-script access
- Fix engine.js: battlefieldCards flat array (not player.battlefield),
  aiDeclareAttacks extraction, combat overlay fixes
- Fix collection.js: template literal, column visibility alignment,
  set_code key, oracle text column, sortable category
- Add exile/graveyard last-card image rendering in ui.js
- Make state_encoder.py resilient to mixed input types
- Enrich type_line from Scryfall at card insert in deckbuilder.py

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
rgriffithandClaude Opus 4.6 committed 2026-04-05 00:05:23 -04:00
1 parent 30c3ab5a89
commit 409aba26f4
18 files changed
+16726 -36

No files matched your search

+32
View File
@@ -3541,3 +3541,35 @@ kbd {
border-color: rgba(255,255,255,0.2);
color: var(--color-text-muted);
}
/* ── Fullscreen Panel (Deck Builder / Deck Generator) ──── */
.fullscreen-panel {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 9000;
background: #0a0a14;
display: flex;
flex-direction: column;
}
.fullscreen-panel.hidden {
display: none;
}
.fullscreen-panel-header {
display: flex;
align-items: center;
justify-content: space-between;
height: 36px;
padding: 0 12px;
background: rgba(20,20,35,0.95);
border-bottom: 1px solid rgba(255,255,255,0.08);
color: rgba(255,255,255,0.8);
font-size: 13px;
font-weight: 600;
}
.fullscreen-panel-header .btn-util {
font-size: 18px;
line-height: 1;
}