From 6ce4c429fee55056d741bbaa9e30d79f26b1fa3a Mon Sep 17 00:00:00 2001 From: Yun Chan Date: Mon, 1 Jun 2026 23:45:16 +0900 Subject: [PATCH] =?UTF-8?q?refactor(P6):=20=E6=AD=BB=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0=20+=20publish=20=EC=A0=84=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EA=B2=8C=EC=9D=B4=ED=8A=B8=20(=EC=95=88?= =?UTF-8?q?=EC=A0=84=20=EB=B6=80=EB=B6=84)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GUI 위험 없는 P6 부분만 선반영(병렬화·ResourceLimits·ILogger·진행률 변경은 GUI 스모크 필요로 보류). - HistoryStore.cs의 死코드 HistoryStore 클래스 제거(인메모리 ObservableCollection, 미인스턴스화). App은 정적 HistoryStorage + jsonl 영속화만 사용. HistoryEntry record는 보존(HistoryStorage/MainWindow 의존) → 파일명을 HistoryEntry.cs로 정합화(rename). - packaging/BuildMsix.ps1: publish 직전 [0/5] dotnet test 게이트 추가 — 실패 시 패키징 중단. 적대적 리뷰의 '최후 방어선'(회귀가 MSIX/서명까지 새는 것 차단). BuildAndSign 경유도 자동 커버. 70개 테스트 전부 그린, 빌드 0경고/0오류. --- packaging/BuildMsix.ps1 | 8 ++++++++ .../{HistoryStore.cs => HistoryEntry.cs} | 20 ------------------- 2 files changed, 8 insertions(+), 20 deletions(-) rename src/Everything2Everything.Core/{HistoryStore.cs => HistoryEntry.cs} (53%) diff --git a/packaging/BuildMsix.ps1 b/packaging/BuildMsix.ps1 index 32d5baf..4fe0e3e 100644 --- a/packaging/BuildMsix.ps1 +++ b/packaging/BuildMsix.ps1 @@ -62,6 +62,14 @@ $msbuild = (& $vswhere -latest -find 'MSBuild\**\Bin\MSBuild.exe' | Select-Objec if (-not $msbuild) { throw 'MSBuild를 찾지 못했습니다.' } Write-Host "msbuild: $msbuild" +# ---- 0) 회귀 게이트: 테스트 실패 시 publish/패키징 중단 ---- +# 적대적 리뷰의 '최후 방어선' — 회귀가 MSIX/서명까지 새는 것을 막는다. +Write-Host '' +Write-Host '[0/5] 테스트 게이트 (dotnet test)' +$testProj = Join-Path $repoRoot 'src\Everything2Everything.Tests\Everything2Everything.Tests.csproj' +& dotnet test $testProj -c $Configuration | Out-Host +if ($LASTEXITCODE -ne 0) { throw '테스트 실패 — publish/패키징을 중단합니다. 회귀를 먼저 수정하세요.' } + # ---- 1) .NET App publish ---- Write-Host '' Write-Host '[1/5] .NET App publish' diff --git a/src/Everything2Everything.Core/HistoryStore.cs b/src/Everything2Everything.Core/HistoryEntry.cs similarity index 53% rename from src/Everything2Everything.Core/HistoryStore.cs rename to src/Everything2Everything.Core/HistoryEntry.cs index 602d77e..8a3166b 100644 --- a/src/Everything2Everything.Core/HistoryStore.cs +++ b/src/Everything2Everything.Core/HistoryEntry.cs @@ -1,5 +1,3 @@ -using System.Collections.ObjectModel; - namespace Everything2Everything.Core; public sealed record HistoryEntry( @@ -20,21 +18,3 @@ public sealed record HistoryEntry( public string? PrimaryOutputPath => OutputPaths is { Count: > 0 } list ? list[0] : null; } - -public sealed class HistoryStore -{ - private readonly ObservableCollection _entries = new(); - - public ReadOnlyObservableCollection Entries { get; } - - public HistoryStore() - { - Entries = new ReadOnlyObservableCollection(_entries); - } - - public void Add(HistoryEntry entry) => _entries.Insert(0, entry); - - public void Clear() => _entries.Clear(); - - public int Count => _entries.Count; -}