JARVIS-UI
Aggiornamento 2.161
22/06/2026
v2.161.0.0MINORJarvis-UI
Fase D COMPLETA: Command Palette `Ctrl+K` (Jarvis-UI)
- (nuova capacità del prodotto: palette di comandi con ricerca fuzzy). Commit che chiude l'intera Fase D del
docs/ai/PROMPT_GLM_PHASE_D_TO_F_2026-06-20.md(D1+D2+D3+D4 + questo D5). Ambito: nuova superficie di navigazione rapida — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE intocati. NuovoModules/Main/CommandPalette_Popup.axaml(.cs): UserControl dedicato (solo contenitore, non conosce i gestori) conTextBox(segnaposto "Cerca moduli…") +ItemsControldata-bound alModuleRegistry.Allfiltrato daTitle.Contains/Description.Contains/Id.Contains(IgnoreCase). Ogni risultato mostra un'icona (tramiteIconKeyToGeometryConverter.ResolveGeometry) + Titolo + Descrizione (2 righe). Invio apre il primo risultato (selezione implicita); Click su una riga apre per Id; Esc chiude. Cablaggio nelMain_Window: nuovo<Popup Name="CommandPalette" PlacementMode="Center" IsLightDismissEnabled="True">(vuoto nello XAML — contenuto istanziato nel code-behind per evitare namespace XAML aggiuntivi);ToggleCommandPalette()mette in cache l'istanza, collegaDispatchRequested/CloseRequested(eventi) e chiamaReset()prima di aprire.OnKeyDownottieneif (ctrl && e.Key == Key.K) ToggleCommandPalette().Palette_DispatchRequested(id)chiude il popup +Dispatch(id). Accettazione: Ctrl+K apre la palette centrale, digita "save" → Save Editor appare, Invio apre. L'intera Fase D è stata consegnata in 5 commit (v2.160.1.0→v2.160.4.0PATCH più questo MINOR) back/forward ripristinabile in tutti i ~72 controlli tramiteIRestorableModule(8 editori + 9 hub con stato esplicito; il resto stateless tramite metodi dell'interfaccia di default) + Command Palette Ctrl+K sui 41 moduli. Build Release 0 errori (403 warning preesistenti). [precedente:v2.160.4.0]
v2.161.1.0PATCHJarvis-UI
Fase E parziale (E1-E8): `ModuleMasterDetail_Shell` su 8 moduli Core Authoring (Jarvis-UI)
- (lucidatura di superficie: migrazione di layout; senza nuova funzionalità). Prime 8 commit della Fase E (
docs/ai/PROMPT_GLM_PHASE_D_TO_F_2026-06-20.md§4). Ambito: solo container visivo — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE intatti; DataContext/bindings/handlers/IRestorableModule invariati. 8 moduli migrati dal hand-rolledAuto,*/2*,5*grid (Border cardPadding=16gonfiato + ScrollViewer) allo shell canonico (Expander collassabile,Padding=8, denso): E1 CtbBase, E2 PlayerGrowth, E3 Formation (field-context card è diventato MasterHeader), E4 Treasure (cards kind-specific preservati nel Detail ), E5 OggettoChiave (2*,5*→Auto,*), E6 AutoAbility (8 schede di dettaglio preservate), E7 BukiGetTreasureCatalog (rootMargin=18rimosso + hex#C9A227→WarningBrush), E8 MonEditorSelector (già aveva Expander manuale — sostituito dallo shell; lo scambio di dettaglio tramiteContentControl Name="ContentFrame"è mantenuto nello slot Detail). Ogni modulo ha ottenutorsp:Responsive.Breakpoints="True"+ stileUserControl.narrowche comprime il master in<760px. Mancano E9-E12 (Customization/Shop/MixTable/KernelCommands — layout 3-col/matrice, rischio maggiore). Build Release 0 errori (403 warning preesistenti). [precedente:v2.161.0.0]
v2.161.2.0PATCHJarvis-UI
Fase E §E9: `CustomizationEditor` → `ModuleMasterDetail_Shell` (2 shell dentro TabControl) (Jarvis-UI)
- (po Risultato: lucidatura di superficie: migrazione di layout; senza nuova funzionalità). Continuazione della Fase E (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§3.E9). Ambito: solo container visivo — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE intatti; DataContext/bindings/handlers/IRestorableModule invariati. IlCustomizationEditor_Control.axaml(396 → ~340 righe) migra il grid hand-rolled3*,7*(Border cardPadding=16gonfiato + ScrollViewer) di ogniTabItemallo shell canonico — il<TabControl>esterno (Gear / Aeon) è preservato; all'interno di ogniTabItemora c'è un'istanza propria delModuleMasterDetail_Shell(2 shell, header labels "Gear Recipes" / "Aeon Recipes"). I 2 set di bindings (GearFilterText/DisplayedGearRecipes/SelectedGearRecipe/GearEditSessionvsAeonFilterText/DisplayedAeonRecipes/SelectedAeonRecipe/AeonEditSession) rimangono isolati nel loro shell — senza miscela.AutoSaveIndicator_Control(Gear/Aeon) eAtlasEvidenceBadgeStrip(Aeon) preservati. Densità applicata: ListBox itemPadding=12→10,Margin=0,0,0,10→6, fonti16→14,sectionLabel/mutedhanno ottenutoFontSize=11. Ha guadagnatorsp:Responsive.Breakpoints="True"+ stileUserControl.narrowche collassa entrambi i master in<760px. Mancano E10-E12 (Shop/MixTable/KernelCommands). Build Release 0 errori (403 warning preesistenti). [precedente:v2.161.1.0]
v2.161.3.0PATCHJarvis-UI
Fase E §E10: `ShopExplorer` → `ModuleMasterDetail_Shell` (3-col cascading) (Jarvis-UI)
- (polish di superficie: migrazione di layout; nessuna nuova capacità). Continuazione della Fase E (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§3.E10). Ambito: solo container visivo — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE intatti; DataContext/bindings/handlers/IRestorableModule inalterati. IlShopExplorer_Control.axaml(361 → ~360 righe) migra il grid fatto a manoAuto,Auto,*(3-col cascading: source ListBox | shop rows ListBox | slot slice editor) al shell canonico. Decisione architetturale: il source picker (Col0) diventa un ComboBox compatto nel MasterHeader (LoadedSources/SelectedSource+LoadSummary+ Aggiorna); le shop rows (Col1) diventano ilMasterList(FilterText+DisplayedShops/SelectedShop+ feedback del filtro); lo slot slice editor (Col2) diventa ilDetail(WrapPanel denso di schedeSelectedSlotscon Image/ComboBox + Expander "Dettagli avanzati" preservato).AutoSaveIndicator_ControleAtlasEvidenceBadgeStrippreservati. Hex → token: il badge visivo dello slot aveva#0D1621(background) e#274760(border) inline →{DynamicResource PanelDeepBrush}/{DynamicResource PanelStrokeBrush}. Ha aggiuntorsp:Responsive.Breakpoints="True"+ styleUserControl.narrowche collassa il master in<760px. Mancano E11-E12 (MixTable/KernelCommands). Build Release 0 errori (403 warning preesistenti)
v2.161.2.0
v2.161.4.0PATCHJarvis-UI
Fase E §E11: `MixTableEditor` → `ModuleMasterDetail_Shell` (matrice 112×112, 3-col) (Jarvis-UI)
- (lucidatura superficiale: migrazione del layout; nessuna nuova funzionalità). Continuazione della Fase E (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§3.E11). Ambito: solo container visivo — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE intatti; DataContext/bindings/handlers/IRestorableModule invariati. IlMixTableEditor_Control.axaml(176 → ~200 righe) migra la griglia realizzata a mano3*,3*,5*(matrice 112×112: origin ListBox | partner ListBox | result detail) al shell canonico. Decisione architetturale: la matrice richiede 2 selezioni concatenate (origin → partner → result) e non rientra direttamente nel master-detail canonico. Origin (Col0) diventaMasterList(shell solo per l'asse primario,OriginFilterText/DisplayedOrigins/SelectedOrigin); partner (Col1) diventa un selettore all'interno del Detail in un Expander collassabile (espanso di default —ResultFilterText/D RisultatiVisualizzati/RisultatoSelezionato, label "Partner Item"); result detail (Col2) vira o topo do Detail (heroheroBluepreservado + session + Combination Editor).IndicatoreAutoSalvataggio_Control,ModelloIndiceGiocoeFasciaBadgeProvaAtlaspreservados. Ganhoursp:Responsive.Breakpoints="True"+ styleUserControl.narrowque colapsa o master em<760px. Falta E12 (KernelCommands — maior detail do repo, maior risco). Build Release 0 erros (403 warnings preexistentes). [anterior:v2.161.3.0]
v2.161.5.0PATCHJarvis-UI
Fase E §E12: `KernelCommands` → `ModuleMasterDetail_Shell` (IL DETTAGLIO PIÙ GRANDE DEL REPO, a 3 colonne + session bar + hex) (Jarvis-UI)
- (lucidatura di superficie: migrazione del layout; nessuna nuova capacità). Ultimo commit della Fase E (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§3.E12 — quello a MAGGIORE RISCHIO del piano). Ambito: solo container visivo — writer/save byte/hook/FfxLib/RT0/RT2/SGM/SPIRA FORGE intocati; DataContext/binding/handler/converter/IRestorableModule invariati. IlKernelCommands_Control.axaml(977 → ~970 righe) migra il layout a 3 colonne (3*,6*,3*lista comandi | dettaglio editor | "Dove usato") + session bar nello shell canonico. Decisione architetturale: l'RowDefinitions="Auto,*"esterno rimane — la BARRA SESSIONE IN ALTO rimane sopra lo shell (riga 0, invariata); lo shell nella riga 1 haMasterList= ListBox dei comandi (era Col0,DisplayedCommands/Selec tedCommand+FilterText+ botões Clonar/Apagar/Adicionar),Detail= editor (era Col1, ~840 linhas de campos densos preservados byte-a-byte: Identity/Animations/Battle SFX 3 tiers/Menu/Characters/Costs/Attack Data/Element/Properties/Status/Status Special/Extra); a 3ª coluna "Where Used" (era Col2) vira um Expander colapsável dentro do Detail (default colapsado, label "Where Used — monster links").x:Names preservados (ThisControl,CommandList,MonsterLinksList) — o code-behind referenciaMonsterLinksList.SelectedItememOpenReferenceMonster.AutoSaveIndicator_Controle os 3 converters (Character/DamageFormula/HitCalcType) preservados. Hex → tokens no mesmo commit:#FF6B6B(LoadError foreground) →DangerBrush;#1A2A3A(Spira Ward note bg) →PanelDeepBrush;#3A6EA5(Spira Ward note border) →PanelStrokeBrush;#7EC8FF/#B8D4E8(Spira Ward note foreground) →AccentCoolBrush(token exato já existe). Ganhoursp:Responsive.Breakpoints="True"+ styleUserControl.narrowque colapsa o master em<760px. Fecha a Fase E (E1-E12 completa). Build Release 0 erros (403 warnings preexistentes). [anterior:v2.161.4.0]