1
0
Fork 0
Everything2Everything/src/Everything2Everything.Core
Yun Chan 379a4a738d refactor(P4): ConvertOptions God Object → 불변 record (init-only)
mutable sealed class(13 sub-record 가변)을 불변 record로 전환 — 배치 병렬 변환(P6)에서
공유해도 안전한 스레드 안전 전제 확보 + 값 의미론. 시그니처(ConvertAsync(ConvertOptions))는 비침습 유지.

- ConvertOptions + 13개 옵션 타입(Jpeg/Png/Webp/Avif/Tiff/Bmp/Gif/PdfRender/PdfBuild/HtmlRender/
  Ocr/PdfCompress/Ai) → sealed record, 전 프로퍼티 get;init;. 8개 Provider의 READ는 무영향.
- 변이 5곳을 with 식/객체 초기화로 교정(WRITE만 깨지므로 국소적):
  MainWindow.BuildOptions(한 식으로 불변 구성), App.RunQuickAsync(with), OcrProvider(PdfRender 초기화),
  특성화 테스트 2곳, ImageOptimProviderTests.
- 카테고리 분해(RoutingOptions/OutputOptions)는 reader 파급이 커서 후속으로 보류(비침습 우선).

70개 테스트 전부 그린(골든마스터 동일성 = 동작 불변), 빌드 0경고/0오류.
2026-06-02 09:40:07 +09:00
..
Converters refactor(P4): ConvertOptions God Object → 불변 record (init-only) 2026-06-02 09:40:07 +09:00
Providers refactor(P3): combine을 IMultiInputConverter로 추출 — 엔진 ImageMagick 누수 봉합 2026-06-01 23:39:02 +09:00
ConversionEngine.cs refactor(P3): combine을 IMultiInputConverter로 추출 — 엔진 ImageMagick 누수 봉합 2026-06-01 23:39:02 +09:00
ConvertOptions.cs refactor(P4): ConvertOptions God Object → 불변 record (init-only) 2026-06-02 09:40:07 +09:00
ConvertResult.cs feat: Everything2Everything 양방향 변환 매트릭스 피보팅 2026-05-07 13:40:08 +09:00
Everything2Everything.Core.csproj refactor(P2): DI 컴포지션 루트 + Scrutor 어셈블리 스캔 자동등록 2026-06-01 23:30:06 +09:00
Everything2EverythingBootstrap.cs refactor(P2): DI 컴포지션 루트 + Scrutor 어셈블리 스캔 자동등록 2026-06-01 23:30:06 +09:00
HistoryEntry.cs refactor(P6): 死코드 제거 + publish 전 테스트 게이트 (안전 부분) 2026-06-01 23:45:16 +09:00
HistoryStorage.cs feat: Everything2Everything 양방향 변환 매트릭스 피보팅 2026-05-07 13:40:08 +09:00
OutputPathHelper.cs feat: Everything2Everything 양방향 변환 매트릭스 피보팅 2026-05-07 13:40:08 +09:00
PreviewService.cs feat: Everything2Everything 양방향 변환 매트릭스 피보팅 2026-05-07 13:40:08 +09:00
ServiceCollectionExtensions.cs refactor(P2): DI 컴포지션 루트 + Scrutor 어셈블리 스캔 자동등록 2026-06-01 23:30:06 +09:00
SettingsStore.cs feat: 외부도구 활성화 인프라 — ISettingsStore(DPAPI) + ExternalProcessRunner 2026-06-01 13:16:56 +09:00