JARVIS-UI
Update 2.159
20.6.2026
v2.159.0.0Jarvis-UI
Registerkarte „Charakter“ im Save-Editor: FFXED-Kompatibilität (Fähigkeiten, Gruppe, OD-Modi, Overdrives)
- KLEINER. Die Registerkarte „Charakter“ umfasst nun nicht mehr nur Werte und Batch-Schaltflächen: neu
SaveEditor_CharacterBindings+FfxSaveCharacterFieldCatalogspiegeln das FFXED-Panel v0.749 wider – Combos im Activation-/Overdrive-Modus, Party (7 Plätze @15768), ~95 Fähigkeiten (Bitfeld bei 22090), 20 Overdrive-Modi mit Zählern, Overdrives und Spezialfähigkeiten, Sphere-Level / OD-Anzeige mit Maximalwerten (22088/22086).FfxSaveCore.ReadSaveBit/WriteSaveBitBits >7 korrigieren (Semantik FFXEDoffset + bit/8). Benutzeroberfläche wie bei FFXED in drei Spalten neu angeordnet. Release-Build 0 Fehler
v2.158.2.0
v2.159.1.0PATCHJarvis-UI
Runtime DLL Manager: ModuleMasterDetail_Shell-Pilot + heroGradient + Responsive + Offline-/Detached-Banner + Empty State + a11y
- Die modulweise Überprüfung der Benutzeroberfläche im Runtime DLL Manager wird fortgesetzt (
Modules/RuntimeDllManager/), gemäßPROMPT_UI_RUNTIMEDLL_2026-06-20.md. (P0) Hero inline#183444/#111C24/#3B4B2D→Classes="heroGradient"; Hex-Wert von Chrome#20303Baus dem.axaml(verwendetRailHoverBrush/PanelStrokeBrush). (P1) 1. verbraucht r aus dem Repo vonModuleMasterDetail_Shell: master = 3 Status-Karten (Game root / FFX open / Hooks); detail = Held + Liste der DLLs. (P1)rsp:Responsive.Breakpoints+ StilUserControl.narrowDer Master bricht zusammen. (P2) BannerWarningBrush/DangerBrushwennIsGameClosed(Spiel beendet – Toggles aktivieren nur die Scheibe) undIsRuntimeDetached(FFX ohne Probe/Hook geöffnet – Live-Status unzuverlässig). Leerer ZustandBorder#EmptyStatewenn!GameRootReady. (P3)AutomationProperties.Namein den Status-Kontrollkästchen und Aktionsschaltflächen;ToggleA11yNamepro Element. Umfang eingehalten: Logik für Deploy/Toggle/DLL/Hook/Probe unverändert – nur visueller Container. [vorher:v2.159.0.0]
v2.159.2.0PATCHJarvis-UI
Blitzball Hub: Migration der doppelten Shell in die `SubTabHub` wiederverwendbar
- Das
BlitzballHub_Control(Modules/BlitzballHub/) duplizierte genau das, was derSubTabHub_Controlschon seit — Unterregister-BereichtabPill,tabPillActive, Lazy Load + Cache pro Registerkarte, Writer/Read-only-Modus, AudioPlayAlternative()beim Klicken. DasMenuItem_BlitzballJetzt baue einenSubTabHub_ControlmitAddTabFluent für die 5 Registerkarten (4 Writer + 1 Prize Atlas Read-only) mit denselben Pill-Texten undrequiresProject: falseIn allen (die vier Texteditoren behalten ihre projektbezogenen Leerstände bei; der Atlas öffnet sich ohne Projekt). DerBlitzballHub_Control(.axaml+.axaml.cs) wird gelöscht —grepfindet nicht mehrnew BlitzballHub_Control()in Produktion. Umfang eingehalten:FfxLib/Blitzball/*, RT0/RT2,ByteSnapshotEditorSessionund der Inhalt der 5 Unterredakteure blieb völlig unverändert – nur die visuelle Hülle hat sich geändert. Es dient als Vorlage für die zukünftige Migration desSaveEditorHub(7 fest programmierte Registerkarten). Release-Build 0 Fehler (401 bereits vorhandene Warnungen)
v2.159.1.0
v2.159.3.0PATCHJarvis-UI
Save Editor Hub Phase 2: Chip Dirty + SHA256-Payload + Sitzungsschutz
- Das Audit der Benutzeroberfläche im Save Editor Hub wird Modul für Modul fortgesetzt (
Modules/SaveEditor/), gemäßdocs/ai/PROMPT_UI_SAVEEDITOR_HUB_PHASE2_2026-06-20.md. (P0) Fehlermeldung Nicht gespeicherte Änderungen in der Kopfkarte bei Verwendung von KlassenautosaveChip/autosaveOrb/autosaveLabelbestehenden desStudioTheme, verknüpft mitIsDirty— wird angezeigt, wenn der Benutzer „Charakter/Gil/Ausrüstung/etc.“ bearbeitet, und verschwindet nach „Speichern“/„Speichern unter“ (DataModel wird bereits auf Null zurückgesetzt)IsDirty). (P1) Kurzer Payload SHA256 (die ersten 12 Zeichen + „…“) überFfxSaveHash.Sha256Hex(session.Core.Data)im Header, mit Tooltip, der den vollständigen Hash (64 Zeichen) anzeigt; wird beim Laden/Speichern/MC-Umschalten neu berechnet — nicht neu berechnet beimTouchDirty(Hash = Fingerabdruck des Blobs im Speicher; „dirty“ ≠ Hash-Änderung bis „Apply+mutate“). Neue EigenschaftenPayloadHashShort/PayloadHashFullund MethodeRefreshPayloadHash()im DataModel. (P2) Bestätigung vor dem Ersetzen der Sitzung: neu der HelferAvaloniaDialog_Util.ConfirmYesNoAsync(Yes/No-Modal ohne neues Asset) wird vor „Load“ (Symbolleiste + CTA im leeren Zustand) und vor dem Wechsel des MC-Slots aufgerufen, wennIsDirty; das MC-Slot-Combo verwendet kein direktes TwoWay-Binding mehr und läuft stattdessen überSelectionChangedmit Bestätigungssperre + manueller Synchronisierung zwischen Combo und DataModel. Gültigkeitsbereich eingehalten: Unterregisterkarten FFXED, Offsets,FfxSaveFileWriters, Batch-Tags und CLI--ffx-save-rt2völlig unverändert – lediglich der Hub Shell und das DataModel haben neue Eigenschaften erhalten. Build Release 0 Fehler. [vorher:v2.159.2.0]
v2.159.4.0PATCHJarvis-UI
Magic DLL Browser: 9 Hex → Tokens + ModuleMasterDetail_Shell (2. Verbraucher) + leere Zustände + responsiv + Barrierefreiheit
- Die modulweise Überprüfung der Benutzeroberfläche im Magic DLL Browser wird fortgesetzt (
Modules/Extras/), gemäßdocs/ai/PROMPT_UI_MAGICDLLBROWSER_2026-06-20.md. (P0) Die 11#RRGGBBvon Chrome (Wave4-Bearbeitungshinweise#E8A040, Warnung zur Value Workbench-Familie#E8A040, und die 3 RT2-Inline-Badges – defekt#3B1A1A/#E85050/#F0A0A0, bitte#3B2719/#E8A040/#F0C070, Risiko#2A2A1A/#C0A040/#E8D080) werden in die bestehenden Tokens/Klassen desStudioTheme:WarningBrushin den Texten zu „Guidance“/„Family Warning“; Badge rt2-dead →Classes="pillDanger"; Abzeichen rt2-timing PROVED →Classes="pillWriter"; Abzeichen rt2-timing RISK → HintergrundPanelAltBrush+WarningBrush(Rand/Vordergrund). (P1) 2. Verbraucher des Repos vonModuleMasterDetail_Shell(1. = RuntimeDllManager): der HauptteilColumnDefinitions="330,*"hand-rolled dreht die Shell mitMasterHeaderLabel="Magic DLLs"— master = Zusammenfassung der Quellverzeichnis-Struktur + Suche + ListBox vonmagic_*.dll; Detail = Aktionsheld + Wave4-Attribution + Direct Patch Builder + kompaktes TabControl (Abschnitte/Exporte/Importe/Sound (SeSep)/Overlay-Slots/Rollenkandidaten/Familienvergleicher/Logische Dekompilierung/Zeichenfolgen/Warnungen).MinWidth„master ~260“ stammt aus der Shell. (P2)Border#EmptyStateim Detail, wenn!HasSelectedDll(Titel „Keine DLL ausgewählt“ + Untertitel mit Anweisungen zur Auswahl einer DLL / zum Einstellen dermagicFiles\FFXroot); leerer Zustand auf dem Master, wenn!HasDllList(neues Flag berechnetDlls.Count > 0, notif mit Sitz inApplyFilterum „Refresh“ und „Search“ abzudecken);rsp:Responsive.Breakpointsno root + styleUserControl.narrowDer Master wird bei <760px ausgeblendet (das WrapPanel für Aktionen blendet wichtige Schaltflächen wie „Extract“ und „Repack“ nicht aus). (P3)AutomationProperties.Namein den ~16 Aktionsschaltflächen des Detail-Menüs (Open DLL/Extract/Logical Decompile/Repack/Patch Plan/C/ASM Project/Semantic RE Report/Magic Viewer/Phyre-Paket-E/A/Klonieren/Byte-Patch anwenden/ASCII-Patch anwenden/Value-Patch vorbereiten und anwenden/Host-Offset-Patch vorbereiten und anwenden/PS3-Daten-Klon bereitstellen/PS3 Magic & Ordner öffnen). Die Header-Karte wird beibehalten alscardallgemein (Beschluss:heroGradientin einem sekundären Kontext-Header würde es zu schwer werden – der eigentliche Hero befindet sich im Inspektionsfenster, wenn eine DLL ausgewählt ist). Gültigkeitsbereich beachtet: PE-Overlay, Direct Patch Builder, Value Workbench, logische Dekompilierung,MagicDllBrowser_DataModelDekompilieren/Neu verpacken/Patch-Logik und die EreignisseOpenPs3MagicRequested/OpenMagicViewerRequested+ Verkabelung Nr.Main_Windowvöllig unverändert – nur der visuelle Container hat sich geändert (1 rein UI-bezogene Eigenschaft)HasDllListhinzugefügt). Build-Release 0 Fehler (401 bereits vorhandene Warnungen); null#RRGGBBwörtlich in.axamldes Moduls. [vorherige Seite:v2.159.3.0]
v2.159.5.0PATCHJarvis-UI
UI Optionals Master: 28 IDs aus dem Backlog der abgeschlossenen Optionals in einem einzigen PATCH (Jarvis-UI)
- Vollständige Ausführung des
docs/ai/PROMPT_UI_OPTIONALS_MASTER_2026-06-20.mdAbs. 5 – alle 28 ausstehenden IDs wurden implementiert (OPT-F2 war bereits fertiggestellt inv2.159.4.0, nicht überarbeitet). Umfang: UI-Optimierung nur Container (Token, Responsivität, Barrierefreiheit, Leerstände, Pills, Emojis) — writers/save bytes/hooks/FfxLib/RT0/RT2 unberührt. Spri nt B (wiederverwendbarer SubTabHub): OPT-B1/B2 —AutomationProperties.Nameauf allen SchaltflächentabPillerzeugt inAddTab(), mittabA11yNameoptional (Standardwert ergibt sich aus der Bezeichnung: „Registerkarte X“); OPT-B3 —BlitzballSubTabHubFactory.Create()„static“ extrahiert die Struktur der 5 Registerkarten aus demMenuItem_Blitzball(≤5 Zeilen); OPT-B4 – Kopie des PlatzhaltersrequiresProjectjetzt über den Hub konfigurierbar (RequiresProjectMessage), alte PT-Standardeinstellung beibehalten. Sprint F (Magic DLL Browser – Rest): OPT-F1 — KopfzeilenkarteheroGradient; OPT-F3 – Aktionsschaltflächen in 2 festen Zeilen (Öffnen/Anzeigen | Autor/Patch, zuvor ein einziges WrapPanel); OPT-F4 —IsMasterExpandedim DataModel gespeichert (TwoWay in der Shell); OPT-F5 – Detail-HeldheroGradient; OPT-F6 — Master leer!HasDllListstandardmäßigBorder#EmptyState(Symbol + Kopieren, entspricht „Detail leer“); OPT-F7 —StatusSeverity(Keine/Info/Warnung/Gefahr) abgeleitet vonStatusText+ NeuStatusSeverityBrushConverterzeigt eine Fehlermeldung/einen Hinweis an inDangerBrush/WarningBrush; OPT-F8 —AutomationProperties.Nameim Suchfeld; OPT-F9 — PillWRITER LAB · native magicFiles DLL · RT2 pendingin der Kopfzeile. Sprint A + C (Save Editor): OPT-A1 – Responsivität (Kopfzeile wird zu einem vertikalen StackPanel, Aktionen werden im schmalen Modus gestapelt); OPT-A2 – KopfzeileheroGradient; OPT-A3 — PilleREAD-ONLY · FFXED port · RT2 via CLIim Header; OPT-A4 – „Copy-on-Click“ des vollständigen SHA256-Hashwerts (Zwischenablage überTopLevel.Clipboard, neuIconCopy); OPT-C1 —StatusSeverityinStatusSummary(Wiederverwendung des Konverters); OPT-C2–C5 — Masterlisten der Unterregister „Character“, „Equipment“, „Items“ und „Blitzball“ inExpanderzusammenklappbar (ExpandDirection="Left", erweiterte Standardeinstellung). Sprint A5/A6/D (Sphere Grid + Blitzball): OPT-A5 — Emoji🏐aus demSetModuleTitel von Blitzball und vonsectionLabelaus dem Kader; OPT-A6 —♻️ Restaurar→ „Original wiederherstellen“,✕im Link → „Entfernen“ + a11y; OPT-D1 — v1 responsives Formular (3-spaltige Raster →WrapPaneldas in „narrow“ gestapelt wird); OPT-D2 —ActiveToolModeenum im DataModel + Visual-KlassetoolActiveauf der aktiven Schaltfläche (wird überPropertyChangedim Code-Behind); OPT-D3 —AutomationProperties.Namein den CTAs „Load“, „Save“ und „Validate“. Sprint E (Runtim (Rest-eDll): OPT-E2 – Schaltfläche „Refresh“ im BannerIsGameClosed; OPT-E3 — Hex-Wert der Umschalt-Schaltfläche in C# (ToggleBrush/ToggleBorderBrush/ToggleForeground/ToggleGlow/RuntimeBrush) in Token umgewandeltRuntimeToggle*/RuntimeRuntime*inStudioTokens(wird überResources.TryGetValue, ohne Hex im Modul); OPT-E1 — übersprungen (Toggle-DLL läuft synchron überFile.Move/File.Copy, es gibt keine wahrnehmbaren asynchronen Vorgänge >300 ms — dokumentiert in Abschnitt 7). Release-Build 0 Fehler (401 bereits vorhandene Warnungen, keine in den bearbeiteten Dateien); null#RRGGBBneuer Text in den.axamlangespielt. [vorherige Seite:v2.159.4.0]
v2.159.6.0PATCHJarvis-UI
Frontend P0/P1: Visuelle Überarbeitung: heroGradient-Sweep + MonsterAi-Hex-Tokens + schmale Schublade + P1-7-Design-Tokens (Jarvis-UI)
- Bearbeitung des P0/P1-Backlogs des
docs/ai/FRONTEND_AUDIT_P0_P1_2026-06-19.mdgemäß genehmigtem Plan. Umfang: polish UI / Design-System — writers/save bytes/hooks/FfxLib/RT0/RT2 unverändert;MonsterAiEditor2_*(nicht mehr verfügbar) unverändert. P0-1 (heroGradient sweep): 26 Inline-Farbverläufe in 25 DateienModules/abgewandert — 18 Kanoniker (#163245/#0F1821/#214F69) sahenClasses="heroGradient"; 8 Identitätsvarianten, die als neue benannte Tokens beibehalten wurden (heroPurple/heroGreen/heroBrown/heroTeal/heroBlueinStudioTheme.axaml+ColorTokenHeroXxxA/B/CColorinStudioTokens.axaml) — „Aurora“ bleibt violett, „AutoAbility/Formation/Customization“ bleiben grün, „KeyItem“ bleibt braun, „AlBhed/CtbBase/PlayerGrowth“ bleiben türkis, „MixTable“ bleibt blau.Main_Window.axamlKopfzeile (PalettePanelDeepColor(eigene) absichtlich beibehalten. P0-2 (MonsterAi hex → Tokens): die 4 AKTIVEN Dateien des migrierten MonsterAiEditor-Clusters — 261 Hex-Literale (Background/BorderBrush/Foreground) zusammengefasst zu{DynamicResource ...}nach Familie (Shell/Protect/Regen/Gold/Forbidden/Cycle + Panel/Stroke), wobei die Abweichungen innerhalb der Familie normalisiert wurden (~20 tealfarbene Füllungen wurden zu 1AccentShellFillBrush). Erstellt 14AccentXxxForegroundBrushneu (gab es bisher nur bei Gold) + FamilieBorder.accentXxx(15 Stile + Selektoren> TextBlock) inStudioTheme, parallel zuButton.accen tXxxexistente.MonsterAiEditor2_Control.axamlretém seus 71 hex (discontinued). P0-4 (drawer narrow): o bug onde emWindow.narrowo botão "≡" eStrg+Bnão faziam nada visível (estiloWindow.narrow Border#IconRailCol → IsVisible=Falsevencia o toggle) foi resolvido — novo<Popup Name="RailDrawer">flutuante emMain_Window.axamlcom os 6 grupos de navegação como botões de texto verticais (mais escaneáveis que ícones 22px em tela pequena),IsLightDismissEnabled=True;ToggleIconRail()agora branch narrow→Popup / wide→Border. Reusa os MESMOSMenuItem_*handlers (zero mudança em handlers). P1-7 (design tokens estruturais): novas famílias emStudioTokens.axaml— Spacing (SpacingXs/Sm/Md/Lg/XlThickness +StackGapSm/Md/Lgdoubles), Radius (RadiusSm=8/Md=10/Lg=12/Pill=999CornerRadius), Motion (Dauer: Schnell/Normal/Langsamsys:TimeSpan), Elevation (Border.Höhe1/2/3BoxShadow). Adoção piloto:StudioTheme.axamlconsomeRadiusLg/Md/SmemBorder.card/cardSoft/Button.primaryAction/secondaryAction/railIcon/tabPill, eDauer: Normal/Schnellnas 3 transições de microinteração (antes literais0:0:0,12/0:0:0,10);MonsterAiEditor_Control.axamldemonstraSpacingLg/Md+ comboKarte „AccentShell“em 4 cards piloto. Divergências do audit registradas: P0-3 (Ctrl+B) já estava implementado na working tree (não era mais "comentário mentiroso"); P1-8 (shell) já tinha 2 consumidores; P1-5/P1-6 (arquitetura nav) fora do escopo por alto merge-risk. Build Release 0 erros (401 warnings preexistentes, nenhum novo). Artefatos de sweep:work/_hero_gradient_sweep_20260620.ps1,work/_monster_ai_hex_sweep_20260620.ps1. [anterior:v2.159.5.0]
v2.159.6.1PATCHJarvis-UI
Boot-Fix: Tokens P1–7 für Radius/Bewegung + Bindungen des ModuleMasterDetail_Shell (Jarvis-UI)
- Hotfix nach
v2.159.6.0. StudioTheme: Referenzen P1–7 (RadiusLg/Md/Sm,DurationNormal/Fast) verwendeten{StaticResource }mas os tokens estão emApplication.Resources(StudioTokens.axaml) depois doStyleIncludedo tema →KeyNotFoundException: Statische Ressource „RadiusLg“ nicht gefundenno boot (processo morria sem janela). Fix:{DynamicResource ...}. ModuleMasterDetail_Shell:MasterHeader/MasterList/Detail/MasterHeaderLabel/IsMasterExpandedagora usamRelativeSource AncestorType=ModuleMasterDetail_Shell(antes bindavam o DataModel do módulo → lista/botões/detail vazios no Magic DLL Browser e Runtime DLL Manager). Escopo: UI container only — writers/save/hooks intocados. Build Release 0 erros. [anterior:v2.159.6.0]