JARVIS-UI
업데이트 2.159
2026. 6. 20.
v2.159.0.0MINORJarvis-UI
Save Editor의 Character 탭: FFXED 호환성 (스킬, 파티, OD 모드, 오버드라이브)
- Character 탭이 더 이상 스탯과 일괄 처리 버튼만으로 구성되지 않습니다: 신규
SaveEditor_CharacterBindings+FfxSaveCharacterFieldCatalogFFXED v0.749 패널을 반영함 — 콤보 활성화/오버드라이브 모드, 파티 (7 슬롯 @15768), ~95개 어빌리티(비트필드 @22090), 카운터가 포함된 20가지 오버드라이브 모드, 오버드라이브 및 스페셜 어빌리티, 최대치가 설정된 스피어 레벨/OD 게이지(22088/22086).FfxSaveCore.ReadSaveBit/WriteSaveBit>7 비트 수정 (FFXED 의미론)offset + bit/8). FFXED와 마찬가지로 UI가 3열로 재구성되었습니다. 빌드 릴리스 오류 0개
v2.158.2.0
v2.159.1.0PATCHJarvis-UI
런타임 DLL 매니저: ModuleMasterDetail_Shell 파일럿 + heroGradient + 반응형 디자인 + 오프라인/분리 상태 배너 + 빈 상태 + 접근성(a11y)
- Runtime DLL Manager에서 모듈별 UI 감사가 계속 진행 중입니다 (
Modules/RuntimeDllManager/), 다음과 같이PROMPT_UI_RUNTIMEDLL_2026-06-20.md. (P0) Hero 인라인#183444/#111C24/#3B4B2D→Classes="heroGradient"; 크롬의 16진수#20303B에서 삭제됨.axaml(사용RailHoverBrush/PanelStrokeBrush). (P1) 가장 먼저 소비된 것 r의 저장소에서ModuleMasterDetail_Shell: master = 상태 카드 3장 (Game root / FFX open / Hooks); detail = 영웅 + DLL 목록. (P1)rsp:Responsive.Breakpoints+ 스타일UserControl.narrow마스터가 다운됩니다. (P2) 배너WarningBrush/DangerBrush~할 때IsGameClosed(게임 종료 — 토글은 디스크만 설정함) 그리고IsRuntimeDetached(프로브/훅 없이 열린 FFX — 실시간 상태가 신뢰할 수 없음). 빈 상태Border#EmptyState~할 때!GameRootReady. (P3)AutomationProperties.Name상태 체크박스 및 작업 버튼에서;ToggleA11yName항목별. 범위 준수: 배포/토글/DLL/훅/프로브 로직은 변경되지 않음 — 시각적 컨테이너만 변경. [이전:v2.159.0.0]
v2.159.2.0PATCHJarvis-UI
블리츠볼 허브: 중복된 셸을 다음으로 이전 `SubTabHub` 재사용 가능
- O
BlitzballHub_Control(Modules/BlitzballHub/)는 정확히 그SubTabHub_Control벌써 — 하위 탭 영역tabPill,tabPillActive, 지연 로딩 + 탭별 캐시, Writer/Read-only 필러, 오디오PlayAlternative()클릭 시. OMenuItem_Blitzball이제 하나 만들어 보세요SubTabHub_Control~와 함께AddTab5개의 탭(Writer 4개 + Prize Atlas 읽기 전용 1개)에 대해 fluent를 적용하며, 동일한 pill 텍스트와requiresProject: false모든 경우(4개의 문서 편집기는 각각 고유한 빈 상태를 유지하며, Atlas는 프로젝트 없이 열립니다). TheBlitzballHub_Control(.axaml+.axaml.cs)는 삭제됩니다 —grep더 이상 찾을 수 없다new BlitzballHub_Control()제작 중. 범위 준수:FfxLib/Blitzball/*, RT0/RT2,ByteSnapshotEditorSession그리고 5개의 하위 에디터의 내부 콘텐츠는 전혀 변경되지 않았으며, 시각적 컨테이너만 바뀌었습니다. 이는 향후 마이그레이션을 위한 템플릿이 되었습니다.SaveEditorHub(7개의 탭이 하드코딩됨). 빌드 릴리스 오류 0개 (기존 경고 401개)
v2.159.1.0
v2.159.3.0PATCHJarvis-UI
Save Editor Hub 2단계: 칩 더티 + 페이로드 SHA256 + 세션 보호
- Save Editor Hub에서 모듈별로 UI 감사를 계속 진행 중 (
Modules/SaveEditor/), 다음과 같이docs/ai/PROMPT_UI_SAVEEDITOR_HUB_PHASE2_2026-06-20.md. (P0) 클래스를 사용하여 헤더 카드에 저장되지 않은 변경 사항 칩autosaveChip/autosaveOrb/autosaveLabel기존의StudioTheme, ~에 연결된IsDirty— 사용자가 캐릭터/길/장비 등을 편집할 때 나타나며, ‘저장’ 또는 ‘다른 이름으로 저장’을 수행하면 사라집니다(DataModel은 이미 초기화됨).IsDirty). (P1) 페이로드 SHA256 짧은 버전 (첫 12자 + "…") viaFfxSaveHash.Sha256Hex(session.Core.Data)헤더에 전체 해시(64자)를 표시하는 툴팁이 표시되며, 로드/저장/MC 전환 시 재계산됩니다 — 다음 경우에는 재계산되지 않습니다.TouchDirty(해시 = 메모리 내 블롭의 지문; 더티 ≠ Apply+mutate 전까지 해시 변경 없음). 새로운 속성PayloadHashShort/PayloadHashFull및 방법RefreshPayloadHash()DataModel에서. (P2) 세션 대체 전 확인: nov helperAvaloniaDialog_Util.ConfirmYesNoAsync(새로운 자산이 없는 Yes/No 모달)은 Load(툴바 + 빈 상태 CTA) 전에 호출되며, MC 슬롯을 변경하기 전에IsDirty; MC 슬롯 콤보는 더 이상 직접적인 TwoWay 바인딩을 사용하지 않고 다음을 거치게 됩니다.SelectionChanged확인 체크박스 + 수동 동기화 조합↔DataModel. 범위 준수: FFXED 하위 탭, 오프셋,FfxSaveFile작성자, 배치 태그 및 CLI--ffx-save-rt2전혀 변경되지 않았습니다 — 허브 셸과 DataModel에만 새로운 속성이 추가되었습니다. 빌드 릴리스 오류 0개. [이전:v2.159.2.0]
v2.159.4.0PATCHJarvis-UI
Magic DLL Browser: 9 hex → 토큰 + ModuleMasterDetail_Shell (2번째 소비자) + 빈 상태 + 반응형 + 접근성
- Magic DLL Browser에서 모듈별 UI 감사를 계속 진행 중입니다 (
Modules/Extras/), 다음과 같이docs/ai/PROMPT_UI_MAGICDLLBROWSER_2026-06-20.md. (P0) 11명#RRGGBBChrome (Wave4 편집 지침)#E8A040, Value Workbench 제품군 경고#E8A040, 그리고 3개의 RT2 인라인 배지 — 비활성화됨#3B1A1A/#E85050/#F0A0A0, 제공#3B2719/#E8A040/#F0C070, 위험#2A2A1A/#C0A040/#E8D080) 기존 토큰/클래스에서StudioTheme:WarningBrush가이드라인/가족 경고 문구에서; 배지 rt2-dead →Classes="pillDanger"; 배지 rt2-timing PROVED →Classes="pillWriter"; 배지 rt2-timing RISK → 배경PanelAltBrush+WarningBrush(테두리/전경). (P1) 두 번째 소비자인ModuleMasterDetail_Shell(1번 = RuntimeDllManager): 본문ColumnDefinitions="330,*"hand-rolled는 쉘을 다음과 같이 바꿉니다.MasterHeaderLabel="Magic DLLs"— master = 소스 루트 요약 + 검색 + 목록 상자magic_*.dll; 세부 사항 = 액션 히어로 + Wave4 어트리뷰션 + Direct Patch Builder + 고밀도 탭 컨트롤 (섹션/내보내기/가져오기/사운드 (SeSep)/오버레이 슬롯/역할 후보/패밀리 비교기/논리적 디컴파일/문자열/경고).MinWidthmaster ~260은 셸에서 비롯됩니다. (P2)Border#EmptyState자세한 내용은 언제!HasSelectedDll(제목 "No DLL selected" + DLL 선택 방법 또는 설정 방법을 안내하는 부제목)magicFiles\FFXroot); 마스터 브랜치의 빈 상태일 때!HasDllList(새로운 플래그 계산됨Dlls.Count > 0, 알림 위치:ApplyFilter(Refresh 및 Search를 포함하기 위해);rsp:Responsive.Breakpointsno root + 스타일UserControl.narrow<760px에서 마스터가 접힙니다(작업 WrapPanel이 Extract/Repack과 같은 중요한 버튼을 잘라내지 않습니다). (P3)AutomationProperties.Name디테일의 약 16개 작업 버튼(Open DLL/Extract/Logical Decompile/Repack/Patch Plan/C/ASM Project/Semantic RE Report/Magic Viewer/Phyre Package I/O/Clone/바이트 패치 적용/ASCII 패치 적용/값 패치 준비 및 적용/호스트 오프셋 패치 준비 및 적용/ps3data 복제본 배포/PS3 Magic 및 폴더 열기). 헤더 카드는 다음과 같이 유지됨card일반 (결정:heroGradient보조 컨텍스트 헤더에서는 부담이 될 수 있습니다(DLL이 선택된 경우 실제 히어로(hero)는 검사 패널에 표시됩니다). 범위 준수: PE 오버레이, Direct Patch Builder, Value Workbench, 논리적 디컴파일,MagicDllBrowser_DataModel디컴파일/재패키징/패치 로직 및 이벤트OpenPs3MagicRequested/OpenMagicViewerRequested+ 배선 없음Main_Window전혀 변경되지 않았습니다 — 시각적 컨테이너만 변경되었습니다 (UI 전용 속성 1개)HasDllList추가됨). 빌드 릴리스 오류 0개 (기존 경고 401개); 0#RRGGBB문자 그대로의.axaml모듈의. [이전:v2.159.3.0]
v2.159.5.0PATCHJarvis-UI
UI Optionals Master: 단일 PATCH로 해결된 옵션 백로그의 28개 ID (Jarvis-UI)
- 전체 실행
docs/ai/PROMPT_UI_OPTIONALS_MASTER_2026-06-20.md제5절 — 미처리된 28개의 ID를 모두 구현함 (OPT-F2는 이미v2.159.4.0, 재작성되지 않음). 범위: UI 다듬기 컨테이너만 (토큰, 반응형, 접근성, 빈 상태, 필, 이모지) — writers/save bytes/hooks/FfxLib/RT0/RT2는 변경되지 않음. Spri nt B (재사용 가능한 SubTabHub): OPT-B1/B2 —AutomationProperties.Name모든 버튼에서tabPill에서 생성됨AddTab(), 와tabA11yName선택 사항 (기본값은 레이블 “X 탭”에서 파생됨); OPT-B3 —BlitzballSubTabHubFactory.Create()정적 분석은 다음의 5개 탭 구조를 추출합니다.MenuItem_Blitzball(5줄 이하); OPT-B4 — 자리 표시자 복사본requiresProject이제 허브를 통해 설정 가능 (RequiresProjectMessage), 기존 PT 기본값 유지. 스프린트 F (잔여 Magic DLL 브라우저): OPT-F1 — 헤더 카드heroGradient; OPT-F3 — 2개의 고정 행에 배치된 작업 버튼(Open/View | Author/Patch, 이전에는 단일 WrapPanel); OPT-F4 —IsMasterExpandedDataModel에 지속됨 (셸에서 TwoWay); OPT-F5 — 디테일의 영웅heroGradient; OPT-F6 — 마스터 비어 있음!HasDllList표준에 따라Border#EmptyState(아이콘 + 복사, detail이 비어 있는 경우와 동일); OPT-F7 —StatusSeverity(없음/정보/경고/위험)에서 파생된StatusText+ 새 항목StatusSeverityBrushConverter오류/알림을 표시합니다DangerBrush/WarningBrush; OPT-F8 —AutomationProperties.Name검색 텍스트 상자에서; OPT-F9 — pillWRITER LAB · native magicFiles DLL · RT2 pending헤더에서. Sprint A + C (Save Editor): OPT-A1 — 반응형 디자인 (헤더가 세로 방향 StackPanel로 변경되며, 액션이 좁은 영역에 쌓임); OPT-A2 — 헤더heroGradient; OPT-A3 — 알약READ-ONLY · FFXED port · RT2 via CLI헤더에; OPT-A4 — 전체 SHA256 해시의 클릭 시 복사(클립보드 경유TopLevel.Clipboard, 새로운IconCopy); OPT-C1 —StatusSeverity에서StatusSummary(변환기 재사용); OPT-C2–C5 — Character/Equipment/Items/Blitzball 하위 탭의 마스터 목록Expander접이식 (ExpandDirection="Left", 기본값 확장). 스프린트 A5/A6/D (스피어 그리드 + 블리츠볼): OPT-A5 — 이모지🏐에서 삭제됨SetModule블리츠볼과sectionLabel로스터에서; OPT-A6 —♻️ Restaurar→ "원본 복원",✕링크 → "제거" + a11y; OPT-D1 — v1 반응형 양식 (3열 그리드 →WrapPanel(narrow에 쌓이는); OPT-D2 —ActiveToolModeDataModel의 enum + 뷰 클래스toolActive활성 모드 버튼에서 (다음에 반영됨:PropertyChanged(코드 비하인드에서); OPT-D3 —AutomationProperties.NameLoad/Save/Validate CTA에서. 스프린트 E (런타임 잔여 eDll): OPT-E2 — 배너의 새로고침 버튼IsGameClosed; OPT-E3 — C# 토글 버튼의 16진수 값 (ToggleBrush/ToggleBorderBrush/ToggleForeground/ToggleGlow/RuntimeBrush) 토큰으로 전환됨RuntimeToggle*/RuntimeRuntime*에서StudioTokens(다음 방법을 통해 해결합니다Resources.TryGetValue, 모듈에 16진수 없음); OPT-E1 — 건너뜀 (토글 DLL은 다음을 통해 동기식으로 작동함File.Move/File.Copy, 300ms를 초과하는 눈에 띄는 비동기 작업이 없음 — 7절에 기록됨). 릴리스 빌드 오류 0개 (기존 경고 401개, 수정된 파일에서는 경고 없음); 0#RRGGBB우리의 새로운 리터럴.axaml터치됨. [이전:v2.159.4.0]
v2.159.6.0PATCHJarvis-UI
프론트엔드 P0/P1 시각적 개선: heroGradient sweep + MonsterAi 16진수 토큰 + 좁은 드로어 + P1-7 디자인 토큰 (Jarvis-UI)
- P0/P1 백로그 실행
docs/ai/FRONTEND_AUDIT_P0_P1_2026-06-19.md승인된 계획에 따라. 범위: UI/디자인 시스템 다듬기 — writers/save bytes/hooks/FfxLib/RT0/RT2 변경 없음;MonsterAiEditor2_*(단종됨) 변경 없음. P0-1 (heroGradient sweep): 25개의 파일에 포함된 26개의 인라인 그라데이션Modules/이주자 — 18명의 성직자 (#163245/#0F1821/#214F69) 보았다Classes="heroGradient"; 8가지 정체성 변형이 새로운 명명된 토큰으로 보존됨 (heroPurple/heroGreen/heroBrown/heroTeal/heroBlue에서StudioTheme.axaml+Color토큰HeroXxxA/B/CColor에서StudioTokens.axaml) — Aurora는 보라색을 유지하고, AutoAbility/Formation/Customization은 녹색을 유지하며, KeyItem은 갈색을 유지하고, AlBhed/CtbBase/PlayerGrowth는 청록색을 유지하며, MixTable은 파란색을 유지합니다.Main_Window.axaml헤더 (팔레트PanelDeepColor(원본)을 의도적으로 보존했습니다. P0-2 (MonsterAi hex → tokens): 마이그레이션된 MonsterAiEditor 클러스터의 활성 파일 4개 — 261개의 16진수 리터럴 (Background/BorderBrush/Foreground)이 다음으로 축소되었습니다.{DynamicResource ...}패밀리별(Shell/Protect/Regen/Gold/Forbidden/Cycle + Panel/Stroke), 패밀리 내 드리프트를 정규화하여 (~20개의 청록색 채우기가 1개로 변함)AccentShellFillBrush). 생성됨 14AccentXxxForegroundBrush신규 (이전에는 골드 회원만 이용 가능) + 가족Border.accentXxx(15가지 스타일 + 선택자> TextBlock)에서StudioTheme,Button.accen과 평행하게 tXxxexistente.MonsterAiEditor2_Control.axamlretém seus 71 hex (discontinued). **P0-4 (drawer narrow):** o bug onde emWindow.narrowo botão "≡" eCtrl+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** (재생 속도: 빠름/보통/느림sys:TimeSpan), **Elevation** (Border.elevation1/2/3BoxShadow). Adoção piloto:StudioTheme.axamlconsome반경 Lg/Md/SmemBorder.card/cardSoft/Button.primaryAction/secondaryAction/railIcon/tabPill, e소요 시간: 일반/빠름nas 3 transições de microinteração (antes literais0:0:0.12/0:0:0.10);MonsterAiEditor_Control.axamldemonstraSpacingLg/Md+ combo카드 액센트 쉘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
부트 수정: ModuleMasterDetail_Shell(Jarvis-UI)의 P1-7 반경/이동 토큰 및 바인딩
- 핫픽스 이후
v2.159.6.0. StudioTheme: 참조 P1-7 (RadiusLg/Md/Sm,DurationNormal/Fast)에서는{StaticResource ...를 사용했고 }mas os tokens estão emApplication.Resources(StudioTokens.axaml) **depois** doStyleIncludedo tema →KeyNotFoundException: 정적 리소스 'RadiusLg'를 찾을 수 없습니다.no boot (processo morria sem janela). Fix:{DynamicResource ...}. **ModuleMasterDetail_Shell:**MasterHeader/마스터리스트/상세 정보/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`]