更新 2.220
2026/8/2
v2.220.0.0BETAMINOR
Seymour2026年8月2日
VIEWERHUB F2: Magic/Model/Map viewers migrated to the hub + python retired
- Prefix routing in
StudioWebServer中的前綴路由 (MapPrefix): multi-app on a single port —/= noclip serve-dir,/magic/= RuntimeTools/FFXMagicViewerWeb,/model/= FFX,/map/= FFXViewerWeb,/work/= repoRoot/work (Model Viewer absolute glTF assets). Longest prefix wins;PrefixRouting_ServesAppUnderPrefix測試 ( - 9/9)。新 描述 在
ViewerHubService中:magic-viewer,model-viewer,model-preview(model-preview.html for the MonEditor fusion/T-pose),map-scene-editor;BuildUrl(descId, extraQuery)with cache-bust for web apps + query (e.g.magic=004C);FindRepoRoot()(assembly walk-up). ViewerShell接受extraQuery(MagicDllBrowser?magic=deep-link).- MonEditor migrated: model preview (fusion/T-pose) now uses the hub (
model-preview+ id1/id2/label1/label2/tpose/fusion 查詢) 以及通用WebView2Host— goodbye python launcher 8767. - Aurora已遷移:
AuroraViewerWindow和AuroraFieldExplorer_Control使用通用WebView2Host(ModelViewerWeb namespace deleted). - RETIRED (git rm -f):
MagicViewerWeb/(launcher + 3 embeds),ModelViewerWeb/(launcher + 3 embeds + original WebView2Host),MapSceneEditorWeb/(launcher + 3 embeds),MonsterStudioWeb/MonsterStudioLauncher.cs(orphaned browser launcher). Zero python, zero duplicated launcher. - 接線 :
Main_Window—ShowMagicViewer/ModelViewerWeb/ModelViewerEmbedded/MapSceneEditorEmbedded open theViewerShell(嵌入式3D查 - 看器); 傳統案例 仍可運行。關卡: 構建0錯誤; PASS; editor smoke (Extras → Magic Viewer / Model Viewer / Map Scene Editor — all in the shell, single port 8769, prefixes).
v2.219.2.3
v2.220.0.1BETAPATCH
Seymour2026年8月2日
國際化:最終拉丁語覆蓋率約78-83%(PT→ES 字典520術語 + EN→ES 201 + UI 映射42鍵)+ ES 重新生成修復
- 工作線 IFRT-2
- PT→ES 字典 (
work/_i18n_pt_es_{1,2,3}.py, 520 術語:冠詞/代名詞/形容詞/UI/遊戲機制/動詞) — ES 是唯一沒有 PT 覆蓋的拉丁語 (PT 字典僅包含 FR/DE/IT); +EN→ES (work/_i18n_en_es_1.py, 201 術語:機率/已選擇/檢視器/實驗室/撰寫者 + 複合短語「強制戰鬥」/「階段輪換」/「儲存編輯器」...)。 - 最終整合管線 (
work/_i18n_final_pipeline.py):預先編譯的正則表達式(7個字典),按順序從中性語言重新生成4種拉丁語:詞彙表 > 領域 > EN 短語 > EN 單詞 > PT > PT-ES/EN-ES;之後手動 ES 重新應用在上層(441)+ 移除50個孤立詞。 - Key-based UI 映射 (
work/_i18n_ui_map.py, 42 個 Common*/Action*/Lang*/Term* 鍵): 還原→Annuler/Rückgängig, 語言→Langue/Sprache/Lingua, 擁有者→Propriétaire/Besitzer/Proprietario... 最後應用(強制從中性語言重新生成並會覆蓋)。 - 最終覆蓋率: ES 83.4%,FR 82.7%,DE 78.3%,IT 82.9%(對比本輪之前的50/58/56/60%)。剩餘 = 技術垃圾(十六進制/路徑/ID/頭目專有名詞)根據內部規則保持為 EN。
- 閘門: 構建0錯誤;測試套件 396/396 PASS;9/9 resx 資源檔案對齊(2199個鍵)。PT 10.2%;JA/KO/ZH 已暫存(font-bank)。
v2.220.0.0
v2.220.1.0BETAPATCH
Seymour2026年8月2日
已停用模組 (5) + MonEditor/Monster Studio 上的模型 + 清理標題
- DISABLED 100%(已從目錄中移除——從 UI 中消失;在
ModuleCatalogPolicy.cs中明確阻擋,帶有 "🚫 DISABLED — NOT FUNCTIONAL — 在沒有 NOT 的情況下做 re-enable RT2"):magic-effects(魔法效果——完全 non-functional),ps3-magic(PS3 魔法 HD——non-functional/重複),magic-viewer-web(魔法檢視器網頁——與中心的魔法工作室重複),model-viewer-embedded(模型檢視器 HD 的副本——兩者都開啟 shell),pointer-script-table("??? / Wave-1 sem 編輯器" 佔位符)。 - MonEditor → 模型現在使用 MONSTER STUDIO(noclip,真實 PS2 骨骼動畫):
monster_studio.ts接受?monster=<modelID hex>(建構函式解析 + 下拉選單同步),而MonEditor_DataModel從 modelID 推導出 CatalogId(m021→0x1015)——編輯過的怪物預覽會以動畫方式開啟,不再是 three.js T-pose。model-preview描述(T-pose/融合)保留供日後使用。「在瀏覽器中開啟預覽」按鈕已隱藏(never-browser 規則)。 - 標題已修正:
map-scene-editor失去了 "Spira 鍛造 ·"(SPIRA FORGE 已因規則暫停)+ 註釋/範疇已更新至中心(無 python,無瀏覽器)。 - 閘門: 建構 0 錯誤;冒煙測試:怪物編輯器 → 模型(Monster Studio 中的動畫怪物)+ 目錄不含 5 個已停用模組。
v2.220.0.1
v2.220.2.0BETAPATCH
Seymour2026年8月2日
PS2 模型 (RSD) 已停用 (第6個模組)
ps2-rsd-models(額外 / PS2 模型 RSD) — read-only 結構計數瀏覽器,用於 RSD 套件 (@RSD/@PLY/@MAT 清單 + .tm2),無 3D 渲染/編輯/寫入 — 價值極低,對使用者來說「毫無意義」。在ModuleCatalogPolicy.cs中明確停用區塊。真正的 3D 模型檢視器 = Model Viewer / Monster Studio (ViewerHub).- 閘門: 建置 0 個錯誤。總共已停用: 6 (magic-effects, ps3-magic, magic-viewer-web, model-viewer-embedded, pointer-script-table, ps2-rsd-models).
v2.220.1.0
v2.220.3.0BETAPATCH
Seymour2026年8月2日
PS2 知識已停用(第7個模組)
ps2-knowledge(附加內容 / PS2 知識)— read-only 「來源/結構」樞紐,無解碼器/播放/寫入器 — 使用者:「無法使用」。在ModuleCatalogPolicy.cs中的明確停用區塊。真正的知識存在於文件(KNOWLEDGE_BASE.md / docs/reverse/)中。- 閘門: 建置 0 個錯誤。總停用數:7。
v2.220.2.0
v2.220.3.1BETAREVISION
Seymour2026年8月2日
技術清理:彙整舊版清理的紀錄
- 文件
docs/ai/TECHNICAL_CLEANUP_2026-08-02.md— 彙整本次工作階段中因屬於無法運作、重複,及/或結構價值低下的舊版內容而遭移除/停用的 EVERYTHING: - 7 個模組 DISABLED(已從目錄移除,並附上「🚫 DISABLED —— NOT re-enable 不可 RT2」區塊):
magic-effects(魔法效果 — 完全 non-functional)、ps3-magic(PS3 魔法 HD — non-functional/重複)、magic-viewer-web(Magic Viewer Web — 與中樞的 Magic Studio 重複)、model-viewer-embedded(與 Model Viewer HD 重複)、pointer-script-table(「無編輯器」佔位)、ps2-rsd-models(PS2 模型 RSD — 僅 read-only 數量,無渲染/編輯/寫入功能)、ps2-knowledge(PS2 知識 — 未使用的 read-only 中樞)。 - 14 個檔案 DELETED(git rm -f, F2):
MagicViewerWeb/(python launcher 8766 + 3 embeds),ModelViewerWeb/(python launcher 8767 + 3 embeds + original WebView2Host),MapSceneEditorWeb/(python launcher 8768 + 3 embeds),MonsterStudioWeb/MonsterStudioLauncher.cs(orphaned browser launcher). - 重複問題已解決: 5 個檢視器 + 6 個島嶼 → 1 個中樞(in-process StudioWebServer,單一連接埠 8769,前綴路由;1 個 ViewerShell;宣告式描述)。零 Python、零外部瀏覽器、零殘留程序。
- 其他:
map-scene-editor標題已清理(移除「Spira Forge ·」);MonEditor 的「在瀏覽器中開啟預覽」已隱藏;MonEditor → Models 已遷移至 Monster Studio(?monster=);Aurora 已遷移至通用 WebView2Host。
v2.220.3.0
v2.220.4.0BETAPATCH
Seymour2026年8月2日
模型檢視器 (HD) 已停用 (第8個模組) — 選項 A+C 已覈准
model-viewer-web(模型檢視器 HD) — BROKEN: 所有 816 個目錄 glTFs 指向/work/phyre_chr_anim/(磁碟上遺失 — 0/816 載入; 已記錄診斷)。怪獸工作室 (ViewerHub) 涵蓋「檢視怪獸」功能,使用真實的 PS2 渲染器。- A+C: 項目已停用 (明確的「🚫 DISABLED」區塊,帶有 re-enable 路徑) + 程式碼與
model-viewer描述 INTACT 並已就緒,供 HD 工作線 to re-enable 使用 (re-export glTFs + 正確指向目錄 + 移除區塊)。model-preview(MonEditor 融合/T-pose) 保持啟用 (不依賴該項目)。 - 閘門: 建置 0 個錯誤。總計已停用: 8。
v2.220.3.1
v2.220.5.0BETAPATCH
Seymour2026年8月2日
在 ViewerShell 中的自有身份:URL 已移除,noclip 遊戲/關於 已清除
- Shell v3 (FFX Mod Studio 身份): 位址列/URL 已從頁首移除 (使用者規則:無 loopback/URL 強調); 「FFX Mod Studio」品牌 + 檢視器標題 + 狀態標籤 + 重新載入。整體版面配置 (深色,右側 3D) 保留。
- 外觀已清除:noclip 面板將其標題寫入
data-title(Panel.setTitle →toplevel.dataset.title) — 現在此外觀隱藏了div[data-title="About"](noclip.website 致謝) 和div[data-title="Games"](Wii/GC 遊戲選單),透過強大的屬性選擇器 + MutationObserver。保留:3D 畫布 + 功能面板 (下拉選單) + 檢視器設定/統計 (技術性,保留)。 - 閘門: 建置 0 錯誤。下一步:在 shell 中進行 FFX 場景導覽 (Zanarkand/Ruins/Besaid 樹狀結構透過 noclip hash 路由 — F3)。
v2.220.4.0
v2.220.5.1BETAPATCH
Seymour2026年8月2日
i18n: HOUSE RULE "never translate filenames" 已應用並在管道中受到保護
- 工作線 IFRT-2
- 使用者發現的錯誤: 領域字典 (
command→commande/Kommando) 透過\bcommand\b在command.bin內進行匹配,導致檔案名稱損毀 → 每種語言有 9 個損毀的檔案 (command.bin→commande.bin,item.bin→objet.bin,FFX.exe→F.exe,ps3data\magic→ps3data\magie...). - 永久修復:
PROTECT_RE嵌入於full_translate的_i18n_final_pipeline.py中 — 路徑 (magicFiles\FFX)、附有副檔名的檔案 (command.bin,kaizou.bin,.dds.phyre,magic_####.dll)、技術縮寫 (ATEL, DINPUT8, RT0, RT2, EBP, EV01, FTCX, MSEQ, VBF, DDS, GLTF, PHYRE, monmagic1/2, a_ability, arms_rate...) 以及專有名詞 (Tidus, Rikku, Yunalesca, Sin, Seymour...) 在翻譯前會變成~PTK~佔位符,並返回 byte-for-byte。常見的 UI 詞彙 (modules,command,item) 則保持自由。 - 驗證: 在 4 個拉丁語系中,0 個損毀的檔案名稱(ES 83.4% / FR 82.7% / DE 78.2% / IT 82.9% 保留)。腳本:
_i18n_fix_filenames.py(手術式修復)+_i18n_protect_tokens.py(以保護方式重新產生)。 - 閘門: 建置 0 錯誤;測試套件 396/396 PASS;9/9 已對齊。
v2.220.5.0
v2.220.6.0BETAMINOR
Seymour2026年8月2日
i18n:具備 6 個選項的語言選擇器 (PT/EN/ES/FR/DE/IT) — 4 個已翻譯的拉丁語系語言現在可在編輯器中選取
- 工作線 IFRT-2
Strings.cs:ResolveLanguage/SetLanguage/CurrentLanguage/NormalizeLanguage/ApplyCulture從 PT/EN 擴展到pt|en|es|fr|de|it(CultureInfo pt-BR/es-ES/fr-FR/de-DE/it-IT);持久化 (ui_lang.config) 與FFX_UI_LANG環境接受全部 6 個;預設保持為pt。Main_Window.axaml: 選擇器 MenuFlyout 獲得 4 個新項目 (LangSpanish/LangFrench/LangGerman/LangItalian) +MenuItem_Language_Es/Fr/De/It_Click處理常式於 code-behind (相同ApplyLanguage流程 → 乾淨重啟)。- Resx: 在所有 9 個 resx 檔案中的
LangSpanish/French/German/Italian索引鍵,self-localized (每種語言會顯示其自身名稱:Français/Deutsch/Español/Italiano)。 - 閘門: 建置 0 個錯誤;套件 396/396 PASS;9/9 已對齊。ES 83.4% / FR 82.7% / DE 78.2% / IT 82.9% 的翻譯現在可從 UI 取得。
v2.220.5.1
v2.220.7.0BETAPATCH
Lulu2026年8月2日
魔法 DLL 瀏覽器:標籤頁分組為 結構 | 執行期 | RE (藥丸選擇器) — 回應工作線的 UI 提案
- 決策: 將提案中有用的部分(將12個散落的標籤頁分組)應用於
MagicDllBrowser(額外項) —MagicDllEditor(樹狀+插槽) 保持 UNTOUCHED (在 .rdata 解析器修復後穩定)。 - 分組: 結構 (章節, 匯出, 匯入, WD3 流, 覆蓋 Slots, PPP 運算碼) · 執行期 (音效/SeSep, 角色候選項) · RE (家族比較器, 邏輯反編譯, 字串, 警告)。
- 實作: 3個
tabPill/tabPillActive藥丸 (主題) +Button_SetTabGroupcode-behind (過濾器TabItem.IsVisible+SelectedIndex;無資料/繫結變更)。2個新的 i18n 鍵 (U_grupo_estrutura,U_grupo_re;執行期復用ModeRuntime)。 - 閘門: 建置0個錯誤;套件 396/396 PASS (包含 StringsIntegrity)。
v2.220.6.0
v2.220.8.0BETAPATCH
Seymour2026年8月2日
SKIN FIX: 保證皮膚應用 (ExecuteScriptAsync 回退於 NavigationCompleted)
- 診斷 (WebView2 證據):
AddScriptToExecuteOnDocumentCreatedAsync是 NOT 將指令碼應用到文件 (skin:false由一個在NavigationCompleted的探測確認 — 皮膚從未執行,這就是為什麼即使使用正確的建置和乾淨的快取,關於/遊戲仍然存在)。 - 修正:
WebView2Host現在將皮膚存儲在_pendingSkinScript並 re-applies 它通過ExecuteScriptAsync於NavigationCompleted(此時文件已存在 — 保證應用,涵蓋重新載入).AddScriptToExecuteOnDocumentCreatedAsync保留為第一個路徑 (供未來文件使用)。 - 輕量永久診斷:
NavigationCompleted在每次導航時將一個探測 (皮膚/雜湊/關於/遊戲) 寫入到%TEMP%\ffx-studio-diag.log— 供 UI 工作線使用的工具。 - 閘門: 建置0錯誤;使用者確認: 關於和遊戲選單 (遊戲) 已從檢視器中消失。
v2.220.7.0