From df07eb9bdddd2a33b68bbc59e3093b32684eb2c3 Mon Sep 17 00:00:00 2001 From: Yun Chan Date: Mon, 1 Jun 2026 14:04:22 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20UI=20=EC=B6=9C=EB=A0=A5=20=ED=98=95?= =?UTF-8?q?=EC=8B=9D=20=EC=B9=B4=ED=83=88=EB=A1=9C=EA=B7=B8=20=ED=99=95?= =?UTF-8?q?=EC=9E=A5=20+=20=EB=A9=80=ED=8B=B0=ED=99=89=20=EB=85=B8?= =?UTF-8?q?=EC=B6=9C=202=ED=99=89=20=EC=A0=9C=ED=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 구버전 앱에서 새 변환이 드롭다운에 안 보이던 문제 — AllFormats(UI 화이트리스트)에 데이터/벡터/영상/오디오 형식이 없었음. 추가. - AllFormats에 csv/json/xlsx/svg + 영상(mp4/webm/mkv/mov/avi) + 오디오(mp3/aac/m4a/opus/ogg/flac/wav) 16종 추가 - OutputsForInput 노출 maxHops 3→2: html→png→gif→mp4 같은 카테고리 횡단 과도 노출 차단 (실제 변환 FindBestPath는 3홉 유지) - 테스트 38개 통과 --- .../Views/MainWindow.xaml.cs | 16 ++++++++++++++++ .../Providers/ProviderRegistry.cs | 4 +++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Everything2Everything.App/Views/MainWindow.xaml.cs b/src/Everything2Everything.App/Views/MainWindow.xaml.cs index 8f91571..7510b16 100644 --- a/src/Everything2Everything.App/Views/MainWindow.xaml.cs +++ b/src/Everything2Everything.App/Views/MainWindow.xaml.cs @@ -824,6 +824,22 @@ public partial class MainWindow : Wpf.Ui.Controls.FluentWindow new(".html", "HTML", "HTML", "FsFmtHtml"), new(".md", "Markdown", "MD", "FsFmtOther"), new(".txt", "텍스트", "TXT", "FsFmtOther"), + new(".csv", "CSV", "CSV", "FsFmtOther"), + new(".json", "JSON", "JSON", "FsFmtOther"), + new(".xlsx", "Excel", "XLSX", "FsFmtOther"), + new(".svg", "SVG", "SVG", "FsFmtOther"), + new(".mp4", "MP4", "MP4", "FsFmtOther"), + new(".webm", "WebM", "WEBM", "FsFmtOther"), + new(".mkv", "MKV", "MKV", "FsFmtOther"), + new(".mov", "MOV", "MOV", "FsFmtOther"), + new(".avi", "AVI", "AVI", "FsFmtOther"), + new(".mp3", "MP3", "MP3", "FsFmtOther"), + new(".aac", "AAC", "AAC", "FsFmtOther"), + new(".m4a", "M4A", "M4A", "FsFmtOther"), + new(".opus", "Opus", "OPUS", "FsFmtOther"), + new(".ogg", "OGG", "OGG", "FsFmtOther"), + new(".flac", "FLAC", "FLAC", "FsFmtOther"), + new(".wav", "WAV", "WAV", "FsFmtOther"), }; private bool _suppressFormatChanged; diff --git a/src/Everything2Everything.Core/Providers/ProviderRegistry.cs b/src/Everything2Everything.Core/Providers/ProviderRegistry.cs index c2054d1..e3a6ce1 100644 --- a/src/Everything2Everything.Core/Providers/ProviderRegistry.cs +++ b/src/Everything2Everything.Core/Providers/ProviderRegistry.cs @@ -58,8 +58,10 @@ public sealed class ProviderRegistry { // 그래프 reachability(transitive closure)로 멀티홉 변환까지 노출한다 (예: json→xlsx, svg→jpg). // 동일 포맷(self-edge: txt→txt AI, png→png 압축)은 '다른 형식으로 변환' 목록에서 제외. + // UI 노출용은 2홉으로 제한 — 3홉은 html→png→gif→mp4 같이 카테고리를 넘나드는 과도한 변환을 만든다. + // (실제 변환 FindBestPath는 options.MaxHops(기본 3)를 그대로 써서 사용자가 명시하면 더 깊은 경로도 수행) var input = ConversionPair.Normalize(inputExtension); - return _graph.ReachableOutputs(input, maxHops: 3, allowLossy: true) + return _graph.ReachableOutputs(input, maxHops: 2, allowLossy: true) .Where(o => !string.Equals(o, input, StringComparison.OrdinalIgnoreCase)) .OrderBy(e => e, StringComparer.OrdinalIgnoreCase) .ToList();