JARVIS-UI
Aggiornamento 2.162
22/06/2026
v2.162.0.0MINORJarvis-UI
FASE E COMPLETATA: `ModuleMasterDetail_Shell` in tutti i 12 moduli Core Authoring (E1-E12) (Jarvis-UI)
- (traguardo di fine fase — consolidamento dei 5 PATCH
v2.161.1.0→v2.161.5.0). L'intera Fase E deldocs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md(§2 standard canonico + §3 E9-E12 + §4) è consegnata: 12 moduli Core Authoring migrati dallo shellAuto,*/2*,5*/3*,6*,3*grid fatto a mano (scheda BorderPadding=16gonfiata + ScrollViewer) al shell canonico (ModuleMasterDetail_Shellcon Expander collassabile,Padding=8, denso) . Moduli: E1 CtbBase, E2 PlayerGrowth, E3 Formation, E4 Treasure, E5 KeyItem, E6 AutoAbility, E7 BukiGetTreasureCatalog, E8 MonEditorSelector (v2.161.1.0) + E9 CustomizationEditor (TabControl con 2 shell Gear/Aeon,v2.161.2.0) + E10 ShopExplorer (a 3 colonne a cascata, hex→token,v2.161.3.0) + E11 MixTableEditor (matrice 112×112,v2.161.4.0) + E12 KernelCommands (il dettaglio più grande del repo, 977 righe, hex→token,v2.161.5.0). Decisioni architetturali fondamentali (E9-E12): TabControl esterno preservato in Customization (2 shell); il source picker diventa ComboBox nel MasterHeader in Shop; l'asse del partner diventa Expander all'interno del Detail in MixTable; la session bar rimane sopra lo shell + "Where Used" diventa Expander all'interno del Detail in KernelCommands. Ogni modulo ha ricevutorsp:Responsive.Breakpoints="True"+ stileUserControl.narrowche comprime il master in<760px. DataContext/binding/handler/converter/AutoSaveIndicator_Control/AtlasEvidenceBadgeStrip/IRestorableModule/x:Names invariati in tutti. Writer/save byte/hook/FfxLib/RT0/RT2/SGM/SPIRA FORGE intocati. Build Release 0 errori (403 warning preesistenti — baseline Jarvis-UI). Prossimo: Fase F (F1 icone+emoji, F2 a11y, F3 sweep dei token, F4 i18n). [precedente:v2.161.5.0]
v2.162.1.0PATCHJarvis-UI
Fase F §F1: icone utilitarie (13 nuove) + pulizia emoji (8 file `.axaml`) (Jarvis-UI)
- (polish visivo: iconografia; nessuna nuova funzionalità). Primo commit della Fase F (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§4.F1). Ambito: solo container visivo — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE intoccato. 13 icone utilitarie nuove inStyles/StudioIcons.axaml(IconSearch/IconAdd/IconRemove/IconWarning/IconUndo/IconRedo/IconFilter/IconOpen/IconClose/IconChevronDown/IconChevronRight/IconCheck/IconX— stile Lucide, viewBox 24×24,<StreamGeometry>). Pulizia emoji nei 8 file.axamlelencati: 🏐/💾/🌅/🗺️ rimossi dai titolisectionLabel/cardTitlee pulsanti Salva. Pulsanti Salva (💾 Salvar) hanno ottenuto<PathIcon Data="{DynamicResource IconSave}"/>+ testo (MonsterAiEditor ×2, EncounterTableExplorer ×1, AuroraChamber ×3). Titoli con emoji (🌅/🗺️/🏐) hanno avuto l'emoji rimosso (più pulito di PathIcon inline in TextBlock).SphereGridCanvas_Control.axamlera già pulito (emoji rimosso inv2.159.5.0OPT-A6). Bonus al di fuori degli 8: 2 titoliSetModulevisibili all'utente ("Save Editor 💾","Sphere Grid 🧩"inMain_Window.axaml.cs) puliti anche per coerenza visiva dell'intestazione. Emoji in.cs(commenti + stringhe di stato) intoccate (fuori ambito). Build Release 0 errori (403 warning preesistenti)
v2.162.0.0
v2.162.2.0PATCHJarvis-UI
Fase F §F2: `AutomationProperties.Name` globale su ~98 pulsanti d'azione (a11y) (Jarvis-UI)
- (politura di accessibilità; nessuna nuova funzionalità). Secondo commit della Fase F (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§4.F2). Ambito: solo container visivo — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE intatti. Accessibilità dei pulsanti d'azione: prima di questo commit solo ~8 pulsanti nei moduli F2 avevanoAutomationProperties.Name(lo screen reader non riusciva ad annunciare i pulsanti solo icona). Aggiunto su 98 pulsanti: 87 tramite scriptwork/_a11y_name_sweep_20260622.ps1(deriva il nome dal testo visibile del pulsante; legge come UTF-8; salta i pulsanti con testo non-ASCII/glyphs di icona come ◀/▶/… per evitare mojibake) nei 12 Core Authoring + SaveEditorHub + (Customization/Shop/MixTable/KernelCommands), + 4 espliciti in KernelCommands (◀/▶ "Previous/Next FSB sample", "Import fsbankcl", "Import custom WAV"), + 2 nel MainDashboard (Open Workspace + QuickTile{Binding Title}— solo icona, priorità a11y maggiore), + 5 nel Main_Window (icone rail Music/Settings/Workspace path/Back/Forward). Dopo il commit: 164 occorrenze diAutomationProperties.Namein 18 file diModules/(rispetto a ~8 nello scope F2 prima). Hand bindings/writers intoccato. Build Release 0 errori (403 warning preesistenti). [precedente:v2.162.1.0]
v2.162.3.0PATCHJarvis-UI
Fase F §F3: spazzata token — Padding uniforme → `Spacing*` (518 letterali in 67 file); CornerRadius **non tokenizzato** (onestà) (Jarvis-UI)
- (rifinitura del design-system; nessuna nuova capacità). Terzo commit della Fase F (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§4.F3 — "alto churn, basso valore incrementale"). Ambito: solo contenitore visivo — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE intatti. Spazzata Padding: 518 letteraliPadding="N"uniformi (N ∈ {4,8,12,16,20}) migrati a{DynamicResource SpacingXs/Sm/Md/Lg/Xl}in 67 file.axamldiModules/tramite script conservatore (work/_padding_sweep_20260622.ps1— só substitui valores que batem **exato** com um token; deixou intactos os ~340 Paddings assimétricos/não-token comoPadding="10,6"/Padding="14").MonsterAiEditor2_Control.axaml**não** migrado (discontinued). **CornerRadius sweep (§F3b) = NO-OP honesto:** os valoresCornerRadiusativos nos módulos são majoritariamente 5/6/7/14 — **nenhum** bate com os tokensRadiusSm=8/Md=10/Lg=12/Pill=999. Forçar o valor mais próximo seria **mudança visual**, não tokenização. O doc citava "158 CornerRadius" mas esse count incluíaMonsterAiEditor2_Control.axaml(discontinued, ~34 ocorrências de 8/10). Decisão documentada: deixar CornerRadius literal onde não há match exato. Pós-commit: 518Padding="{DynamicResource Spacing*}"em 67 arquivos; 0Padding="16"restantes. Handlers/bindings/writers intocados. Build Release **0 erros** (403 warnings preexistentes). [anterior:v2.162.2.0`]
v2.162.4.0PATCHJarvis-UI
Fase F §F4: fondazione i18n (`.resx`) (Jarvis-UI)
- (fondazione; nessuna modifica di comportamento visibile predefinito — cultura predefinita continua ad essere en). Quarto e ultimo commit della Fase F (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§4.F4). Ambito: solo container visivo — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE intoccato. Stabilisce l'infrastruttura di internazionalizzazione: prima di questo commit il repo aveva 0.resx; stringhe ovunque hardcoded. Creato:Resources/Strings.resx(neutro = en, ~17 key portanti: titoli hero, etichette rail, segnaposto palette, precedenti, etichette delle azioni, pillole di modalità) +Resources/Strings.pt.resx(satellite PT-BR) +Resources/Strings.cs(accessore statico tramiteResourceManager, 1 proprietà statica per key — collegabile in XAML come{x:Static res:Strings.Xxx}) +Strings.ApplyUiCulture()(leggeFFX_UI_LANG=pt|en; default = neutral/en; impostaDefaultThreadCurrentUICultureprima di qualsiasi binding XAML). Cablaggio:App.axaml.cs Initialize()chiamaStrings.ApplyUiCulture()prima delAvaloniaXamlLoader.Load. Gli.resxsonoEmbeddedResourceimpliciti dallo SDK glob (Resources/**/*.resx) — verificato che il satellitept\FFXProjectEditor.resources.dllsia emesso. Dimostrazione del binding in 2 punti portanti: MainDashboard CTA "Open workspace folder" ({x:Static res:Strings.DashboardCtaOpenWorkspace}+ nome a11y) + Command Palette placeholder (Watermark="{x:Static res:Strings.RailSearchPlaceholder}"). Onestà: la i18n completa è lavoro infinito (doc §4.F4). Questo commit stabilisce la fondazione + dimostra il pattern; la migrazione dei circa 50 Title/Description di ModuleRegistry + centinaia di stringhe interne resta come backlog futuro (aggiungere key nei 2 resx + proprietà in Strings.cs + sostituire il literal con{x:Static}). Non c'è utente non-PT identificato oggi, quindiFFX_UI_LANGnon è esposto in UI (solo env var). Handlers/bindings/writers/save bytes/hooks intatti. Build Release 0 errori (403 warning preesistenti). Chiude l'intera Fase F (F1-F4). [precedente:v2.162.3.0]
v2.162.5.0PATCHJarvis-UI
i18n: migrazione `ModuleRegistry` (41 moduli × 5 campi) + stringhe dashboard + §16–§17 COMPLETATO (Jarvis-UI)
- (riutilizzo della base i18n F4; nessuna nuova funzionalità di prodotto). Post-prompt
PROMPT_GLM_PHASE_E_HARD_AND_F: 205 keyMod_{id}_{Title|Description|Mode|Notes|Scope}inStrings.resx+Strings.pt.resx(generatorework/_gen_module_i18n_20260622.ps1); lookup dinamicoStrings.Get/Strings.Module;ModuleCatalogEntry.Localized*(dashboard, palette, rail tooltip, banner tramite overlaySetModulequando_currentModuleIdcorrisponde nel registry). +11 key dashboard (hero loaded/empty, etichette Workspace/Modules/Hook).MainDashboard_ControlassociaLocalizedTitle/Description/Mode+{x:Static res:Strings.*}.docs/specs/EDITOR_UI_OVERHAUL_PLAN.md§16–§17 contrassegnati COMPLETATO (v2.160.0.0).PORT_STATUS.mdriconciliato (v2.162.4.0→v2.162.5.0). Trasparenza: descrizioni PT complete dove il registry era già PT; titoli EN tradotti nel satellite; stringhe interne dei 68SetModuleletterali restano backlog. Smoke RT1 + merge pendente di Halyson. Ambito limitato al container. Build Release 0 errori
v2.162.4.0
v2.162.6.0
fix: Command Palette `Ctrl+K` + drawer ristretto `Ctrl+B` (Popup `IsOpen`, tunnel KeyDown) (Jarvis-UI)
- Lane Ja rvis-UI. PATCH (corregge le scorciatoie promesse dalla Fase D che non aprivano mai l'overlay). Avalonia 11
PopuprichiedeIsOpen— il codice usavaIsVisible(no-op). Scorciatoie migrate al handler tunnel (KeyDownEvent) per funzionare con il focus su TextBox/editori figli.PlacementTarget+Topmostnei popup. Build Release 0 errori. [precedente:v2.162.5.0]
v2.162.8.0PATCH
fix: SGM 861 OOB slot 860 hook v1.30 (Jarvis-MAGIC-SGM)
SphereGridFullGridCompilerHook v1.30: boot bump942B6041252→41328, SKIP esteso (-861/-862), patch F858 solo writers +0/+4, ALLOC-TRACE, producer watch, draw860 riabilitato quando i buffer 861 sono pronti. RE:docs/reverse/FFX_SPHEREGRID_861_PRODUCER_RE_2026-06-20.md. Build DLL PASS; RT2 in-game Da Testare
v2.162.7.0
v2.162.9.0PATCHJarvis-UI
fix: bug MonsterAiEditor `{StaticResource Spacing*}` + colori Accento neon ripristinati (Jarvis-UI)
- Due problemi segnalati da Halyson: (1) Bug:
MonsterAiEditor_Control.axamlaveva 4 occorrenzePadding="{StaticResource SpacingLg/Md}"che non si risolvevano all'avvio (stessa classe dell'hotfixv2.159.6.1— i tokenSpacing*vivono inApplication.Resourcesdopo ilStyleInclude, quindiStaticResourcefallisce; la scansione F3 usava{DynamicResource}ma queste 4 righe erano pilotaggio manuale delv2.159.6.0che erano sfuggite). Sostituito con{DynamicResource Spacing*}— corregge il bug. (2) Colori "brutti, senza neon": ilv2.159.6.0ha normalizzato i 15Accent*FillBrush(Shell/Protect/Regen/Gold/Cycle/Forbidden/Crimson/Undo/Refresh/Move/Haste/Reflect/NulAll/Builder/Reaction) a toni molto scuri (#21506A/#1E5E45/ecc.), seppellendo la lucentezza dei bordi neon. Ripristinati a toni più satrati/vivaci (es.: Shell#21506A→#1A6E8C, Protect#1E5E45→#1E8050, Gold#4A4226→#6E5E2A, Cycle#3D4F78→#3A5BB0) — mezzotono tra il fill scuro e il bordo neon, dando presenza senza diventare neon pieno. I bordi/primi piani neon (#66D8F0/#6FE3B7/#AAB4FF/ecc.) intatti (erano già belli). Interessa tutti i moduli che consumanoAccent*(MonsterAi è il più grande). Ambito: solo contenitore visivo — writers/save byte/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE intatti. Build Release 0 errori (403 warning preesistenti)
v2.162.8.0
v2.162.9.1REVISIONJarvis-MAGIC
Spira Reforge: design lock — Overdrive→AP fuori + ricompensa per tier T
- Halyson: rimuovere Overdrive→AP (farm AP noioso); sostituto TBD. Modalità SIN: i mob con tier T ottengono anche statistiche base ↑ e più drop (senza numeri ne ste doc). Doc:
FFX_SPIRA_REFORGE_VANILLA_OFFENSIVE_REBALANCE_2026-06-16.md,SIN_DIFFICULTY_MODE_SPEC.md§3.4. [precedente:v2.162.9.0]
v2.162.9.2REVISIONJarvis-MAGIC
Spira Reforge: handoff RT2 test harness (concessione abilità prima della griglia)
- Doc
docs/ai/PROMPT_SPIRA_REFORGE_COMMAND_RT2_TEST_HARNESS_2026-06-18.md— da incollare in chat parallela: deploy minimocommand.bin,GridTeach+ sidecargrid_teach_learned.bin, concessione tramiteffxprobectl call 385D10, smoke test per pack (manifest), checklist ripristina vanilla al termine del test
v2.162.9.1
v2.162.9.4PATCH
Arena+ compose: deploy lab completo + debounce Enter (Jarvis-ARENA)
- Exit
2147516570=ArenaMultiBossLab.dllassente — deploy ora copia l'intera cartella inmodules\tools\ArenaMultiBossLab\. Picker: rising-edge su Confirm + cooldown 20f post-toggle (fix deselezionare premendo Enter)
v2.162.9.3