JARVIS-UI
업데이트 2.161
2026. 6. 22.
v2.161.0.0MINORJarvis-UI
D 단계 완료: 명령 팔레트 `Ctrl+K` (Jarvis-UI)
- (새로운 제품 기능: 퍼지 검색이 가능한 명령어 팔레트). D 단계 전체를 마무리하는 커밋
docs/ai/PROMPT_GLM_PHASE_D_TO_F_2026-06-20.md(D1+D2+D3+D4 + 이 D5). 범위: 새로운 빠른 탐색 화면 — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE는 변경되지 않음. 새로운Modules/Main/CommandPalette_Popup.axaml(.cs): 사용자 정의 UserControl(컨테이너 전용, 핸들러를 인식하지 않음)로TextBox(자리 표시자 "모듈 검색…") +ItemsControldata-bound에ModuleRegistry.All다음으로 필터링됨Title.Contains/Description.Contains/Id.Contains(IgnoreCase). 각 결과에는 아이콘이 표시됩니다 (viaIconKeyToGeometryConverter.ResolveGeometry) + 제목 + 설명 (2줄). Enter 키를 누르면 첫 번째 결과가 열립니다(기본 선택됨); 행을 클릭하면 ID로 열립니다; Esc 키를 누르면 닫힙니다. Wiring에서Main_Window: 새<Popup Name="CommandPalette" PlacementMode="Center" IsLightDismissEnabled="True">(XAML에서 비워 둠 — 불필요한 XAML 네임스페이스를 피하기 위해 코드-비하인드에서 콘텐츠를 인스턴스화함);ToggleCommandPalette()인스턴스를 캐시하고, 연결DispatchRequested/CloseRequested(이벤트)를 호출합니다Reset()열기 전에.OnKeyDown이긴다if (ctrl && e.Key == Key.K) ToggleCommandPalette().Palette_DispatchRequested(id)팝업 닫기 +Dispatch(id). 수락: Ctrl+K를 누르면 중앙 팔레트가 열리고, “save”를 입력하면 → Save Editor가 나타나며, Enter를 누르면 열립니다. D 단계 전체를 5개의 커밋으로 제출 (v2.160.1.0→v2.160.4.0패치 + 이 사소한 수정) 약 72개의 모든 컨트롤에서 다음/이전 기능을 복원할 수 있습니다.IRestorableModule(8개의 에디터 + 상태가 명시된 9개의 허브; 나머지는 기본 인터페이스 메서드를 통해 상태가 없음) + 41개 모듈에 대한 명령 팔레트(Ctrl+K). 릴리스 빌드 오류 0개 (기존 경고 403개). [이전:v2.160.4.0]
v2.161.1.0PATCHJarvis-UI
E 단계(일부)(E1-E8): `ModuleMasterDetail_Shell` 8개의 Core Authoring(Jarvis-UI) 모듈
- (표면적인 수정: 레이아웃 마이그레이션; 새로운 기능 없음). E 단계의 첫 8개 커밋 (
docs/ai/PROMPT_GLM_PHASE_D_TO_F_2026-06-20.md§4). 범위: 컨테이너 시각적 요소만 — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE는 변경되지 않음; DataContext/bindings/handlers/IRestorableModule은 변경되지 않음. 8개 모듈이 수작업으로 마이그레이션됨Auto,*/2*,5*그리드 (보더 카드)Padding=16(팽창형 + ScrollViewer)에서 표준 셸(접을 수 있는 Expander,Padding=8, 밀집형): E1 CtbBase, E2 PlayerGrowth, E3 Formation (필드 컨텍스트 카드가 MasterHeader로 변경됨), E4 Treasure (카드 종류별 정보는 Detail에 보존됨) ), E5 KeyItem (2*,5*→Auto,*), E6 AutoAbility (상세 정보 8장 보존됨), E7 BukiGetTreasureCatalog (루트Margin=18제거됨 + 16진수#C9A227→WarningBrush), E8 MonEditorSelector (이미 수동 확장 기능이 있었으나 — 셸로 대체됨; 세부 정보 교환은 다음을 통해ContentControl Name="ContentFrame"(Detail 슬롯에 유지됨). 각 모듈은rsp:Responsive.Breakpoints="True"+ 스타일UserControl.narrow마스터를 다음 위치에서 중단시키는<760px. E9-E12 미포함 (Customization/Shop/MixTable/KernelCommands — 3열/매트릭스 레이아웃, 위험도 높음). 릴리스 빌드 오류 0개 (기존 경고 403개). [이전:v2.161.0.0]
v2.161.2.0PATCHJarvis-UI
E 단계 §E9: `CustomizationEditor` → `ModuleMasterDetail_Shell` (TabControl 내부의 2개 셸) (Jarvis-UI)
- (po 표면 처리: 레이아웃 변경; 신규 용량 없음). E 단계의 계속 (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§3.E9). 적용 범위: 컨테이너 비주얼만 — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE는 변경되지 않음; DataContext/bindings/handlers/IRestorableModule은 변경되지 않음. OCustomizationEditor_Control.axaml(396 → ~340 줄) 수동으로 구현한 그리드를 마이그레이션합니다3*,7*(국경 출입 카드Padding=16(팽창 + ScrollViewer) 각각TabItem정통 프로 쉘 — o<TabControl>외부(Gear / Aeon)는 유지되며, 각 내부에서는TabItem이제 ~에 대한 별도의 인스턴스가 있으며,ModuleMasterDetail_Shell(쉘 2개, 헤더 라벨 “Gear Recipes” / “Aeon Recipes”). 2세트의 바인딩 (GearFilterText/DisplayedGearRecipes/SelectedGearRecipe/GearEditSessionvsAeonFilterText/DisplayedAeonRecipes/SelectedAeonRecipe/AeonEditSession)는 쉘 내에서 격리되어 있으며, 다른 요소와 섞이지 않습니다.AutoSaveIndicator_Control(Gear/Aeon) 및AtlasEvidenceBadgeStrip(Aeon) 보존됨. 적용된 밀도: ListBox 항목Padding=12→10,Margin=0,0,0,10→6, 출처16→14,sectionLabel/muted이겼다FontSize=11. 우승했다rsp:Responsive.Breakpoints="True"+ 스타일UserControl.narrow두 마스터를 모두<760px. E10-E12 미해결 (Shop/MixTable/KernelCommands). 빌드 릴리스 오류 0개 (기존 경고 403개). [이전:v2.161.1.0]
v2.161.3.0PATCHJarvis-UI
E 단계 §E10: `ShopExplorer` → `ModuleMasterDetail_Shell` (3-col cascading) (Jarvis-UI)
- (표면적인 개선: 레이아웃 마이그레이션; 새로운 기능 없음). E 단계의 계속 (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§3.E10). 적용 범위: 컨테이너 비주얼만 — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE는 변경되지 않음; DataContext/bindings/handlers/IRestorableModule은 변경되지 않음. OShopExplorer_Control.axaml(361 → ~360 줄) 수동으로 구현한 그리드를 이전합니다Auto,Auto,*(3열 캐스케이딩: 소스 ListBox | 상품 행 ListBox | 슬롯 슬라이스 편집기) 표준 셸용. 아키텍처 결정: 소스 선택기(Col0)는 MasterHeader 내의 콤팩트한 ComboBox로 변경됩니다 (LoadedSources/SelectedSource+LoadSummary+ Refresh); shop 행(Col1)은MasterList(FilterText+DisplayedShops/SelectedShop+ 필터 피드백); 슬롯 슬라이스 편집기(Col2)는Detail(카드가 빽빽하게 배열된 WrapPanel)SelectedSlots(Image/ComboBox + “Advanced details” 확장 기능이 유지된 상태로).AutoSaveIndicator_Control그리고AtlasEvidenceBadgeStrip보존되었습니다. Hex → 토큰: 슬롯의 시각적 배지에는#0D1621(배경) 및#274760(border) inline →{DynamicResource PanelDeepBrush}/{DynamicResource PanelStrokeBrush}. 우승했다rsp:Responsive.Breakpoints="True"+ 스타일UserControl.narrow마스터를 다음 위치에서 중단시키는<760px. E11-E12 미해결 (MixTable/KernelCommands). 릴리스 빌드 오류 0개 (기존 경고 403개)
v2.161.2.0
v2.161.4.0PATCHJarvis-UI
E 단계 §E11: `MixTableEditor` → `ModuleMasterDetail_Shell` (112×112 행렬, 3열) (Jarvis-UI)
- (표면 다듬기: 레이아웃 마이그레이션; 새로운 기능 없음). E 단계의 계속 (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§3.E11). 적용 범위: 컨테이너 비주얼만 — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE는 변경되지 않음; DataContext/bindings/handlers/IRestorableModule은 변경되지 않음. OMixTableEditor_Control.axaml(176 → ~200 줄) 수동으로 구현한 그리드를 마이그레이션합니다3*,3*,5*(112×112 매트릭스: 원본 ListBox | 파트너 ListBox | 결과 세부 정보) 표준 셸용. 아키텍처적 결정: 이 매트릭스는 2단계의 연쇄 선택(origin → partner → result)을 필요로 하며, 표준 마스터-디테일 구조에는 직접 적용할 수 없습니다. Origin(Col0)은MasterList(쉘은 주축에만 적용되며,OriginFilterText/DisplayedOrigins/SelectedOrigin); 파트너(Col1)는 접을 수 있는 확장기 내의 Detail에 있는 선택기가 됩니다(기본값은 확장된 상태 —ResultFilterText/D isplayedResults/SelectedResult, label "Partner Item"); result detail (Col2) vira o topo do Detail (heroheroBluepreservado + session + Combination Editor).AutoSaveIndicator_Control,GameIndex_TemplateeAtlasEvidenceBadgeStrippreservados. 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
E 단계 §E12: `KernelCommands` → `ModuleMasterDetail_Shell` (리포지토리 상세 정보, 3-col + 세션 바 + 16진수) (Jarvis-UI)
- (표면적인 개선: 레이아웃 마이그레이션; 새로운 기능 없음). E 단계의 마지막 커밋 (
docs/ai/PROMPT_GLM_PHASE_E_HARD_AND_F_2026-06-22.md§3.E12 — 해당 계획에서 가장 높은 위험을 가진 항목). 범위: 컨테이너 시각적 요소만 — writers/save bytes/hooks/FfxLib/RT0/RT2/SGM/SPIRA FORGE는 변경되지 않음; DataContext/bindings/handlers/converters/IRestorableModule은 변경되지 않음. OKernelCommands_Control.axaml(977 → ~970줄) 3열 레이아웃으로 전환 (3*,6*,3*명령어 목록 | 편집기 세부 정보 | "사용 위치") + 표준 프로 쉘 세션 바. 아키텍처적 결정: outerRowDefinitions="Auto,*"유지됨 — TOP SESSION BAR는 셸의 위쪽에 위치합니다(0행, 변경 없음); 1행의 셸은MasterList= command ListBox (era Col0,DisplayedCommands/선택 tedCommand+FilterText+ botões Clonar/Apagar/Adicionar),상세 정보= 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 (캐릭터/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]