From 471747ba607ce7fff7982d8f34e97016547142d1 Mon Sep 17 00:00:00 2001 From: Your Date: Sat, 4 Jul 2026 20:45:26 +0200 Subject: [PATCH] docs(changelog): refresh v0.9.0 entry for bundle v3 (CMYK/P&P/OWL + stability fixes) (#134) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The v0.9.0 entry predating bundle v3 missed the print-production and late-cycle stability work. This refresh brings it in line with master `21e2c666`, cross-checked against the release-validation dossier v4 (docs/RELEASE-VALIDATION-v0.9.0.md §3.3) and dashboard decisions #26-69. Added: - "Print Production (CMYK & Print&Play)" section: Ghostscript post-process (#632), `--pdf-cmyk` entry-point (#652), bundle v3 = 80 PDFs DeviceCMYK + SWOP OutputIntent (6.18 GB RGB -> 5.30 GB CMYK), P&P Standard/Light (#645/#648-650, 64 -> 80 PDFs), GS timeout 180->900s (#670) - "OWL Ontology (Bilingual EN/FR)" section: Fallacies OWL 5.07 MB (#634 regen), Virtues OWL (#592/#499 Phase 2), honest scope note (EN+FR only, not 8-lang) - "Fixed - Pipeline Stability (Jun-Jul 2026)" section: harvest deadlock #651, serial retry #613/#676, logger Spectre #630/#655, CMYK oxymore, Johnny 6.1.3 #653, Rules i18n refonte #640, CSV hygiene #579/#581/#584, OWL staleness #634 Corrected (code=truth): - Magick.NET 14.13.1 -> 14.14.0 (verified in .csproj) - Test count 548 -> 578 pass / 1 known-fail #133 / 5 skip / 584 total (empirical `dotnet test` on Argumentum.AssetConverter.Tests, 2026-07-04, .NET 9). Previous counts in docs (548/549/570) were all stale No existing content regressed; all prior sections preserved. Co-Authored-By: Claude-Code --- CHANGELOG.md | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ccc64e0..cfd51fd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,22 @@ The entire pipeline now generates assets in **8 languages**: French, English, Ru - **SDDD methodology docs**: Investigation methodology, conversation grounding, and triple-grounding protocol - **37 investigation reports** (2025-2026): Complete regression history, git archaeology, and closure reports in `docs/investigations/` +### Added — Print Production (CMYK & Print&Play) + +The v0.9.0 release bundle is **print-ready**: 80 PDFs (10 document types × 8 languages), DeviceCMYK + SWOP OutputIntent, verified by the Ghostscript post-process (#632/#652). + +- **CMYK post-process** (#632): Standalone Ghostscript pass converts the final PDFs to DeviceCMYK and embeds the SWOP OutputIntent (ICC profile auto-extracted via Magick.NET). Resolves the per-image CMYK oxymore — `DocumentCardSet.cs` converts to CMYK but writes PNG, which cannot carry CMYK (Magick re-encodes to RGB); the authoritative CMYK path is therefore the GS post-process on the final PDF, not per-image conversion. Entry-point `--pdf-cmyk` (#652) runs the pass standalone on an existing bundle (`Mode=PdfCmykPostProcess` alone, `ForceReleaseParams`) +- **Bundle v3** (regenerated 2026-07-03): 80 PDFs (10 types × 8 languages), 6.18 GB RGB → **5.30 GB CMYK**, PNG-300-lossless source. 80/80 converted DeviceCMYK + OutputIntent SWOP (proof: `TarotCards_fr` = DeviceCMYK 195 / DeviceRGB 0 / OutputIntent 3 / ICC SWOP 2) +- **Print&Play Standard + Light** (#645/#648-650): The digital edition is entirely free. **Light** = cards flagged in the `print_and_play` column (+ Virtues families overview subset). **Standard** = all cards. Expanded the bundle from 64 → 80 PDFs (+2 document types). Virtues Light subset broadened to depth ≤ 2 (24 cards) +- **GS timeout hardening** (#670): Raised per-PDF Ghostscript timeout 180s → 900s (23 PDFs initially timed out at 180s on dense A0) + +### Added — OWL Ontology (Bilingual EN/FR) + +- **Fallacies OWL** (`docs/ontology/argumentum.owl`, 5.07 MB): SKOS + AIF, 1408 fallacies, bilingual literals (EN 5558 + FR 4861), 2816 `prefLabel`, 1408 `broader` (full hierarchy). Freshly regenerated 2026-07-02 (#634 — previous commit `d206e59c` was ~3 months stale) +- **Virtues OWL** (#592/#499 Phase 2, `docs/ontology/argumentum_virtues.owl`, 842 KB): 223 Virtues, 223 `aif:goodTenorOf` assertions, 7 families, bilingual literals (FR 884 + EN 641). Relational prod-write Phase 1 (#499, 66 → 78 columns, 12 additive) +- **Scope note (honest)**: the OWL generator is bilingual (FR canonical + EN secondary) — it does **not** carry the 6 other release languages (RU/PT/ES/AR/FA/ZH). The 8-language claim applies to CSV/PDF/SVG, **not** to OWL +- #133 (OWL publication) remains open; the OWLSharp `rdf:type`/`skos:inScheme` round-trip bug is worked around by scoping readers on surviving annotations + ### Fixed — Pipeline Recovery (Oct 2025 — Jun 2026) Complete restoration of the generation pipeline from the April 2024 Golden Master state: @@ -47,6 +63,19 @@ Complete restoration of the generation pipeline from the April 2024 Golden Maste - **SVG generation**: Replaced XSLT-based SVGs with FreeMind Batik SVGs across all 8 languages (FR/EN/RU/PT + ES/AR/FA/ZH, PR #565), automated FreePlane GUI via `SendKeys.SendWait` - **Mémo Back cards**: Language-invariant control-break grouping (#449), localized taxonomy labels for all 8 languages (#446), cyrillic font fallbacks + vertical grid auto-fit for RU (#452) +### Fixed — Pipeline Stability (Jun — Jul 2026) + +Late-cycle hardening of the harvest and rendering pipeline, post-recovery: + +- **Harvest deadlock** (#651): Root-caused a flat 0-CPU freeze (no crash) — the `page.Console` handler logged 5 synchronous lines per message (File I/O + lock + AnsiConsole non-thread-safe) on the Playwright event-dispatch thread, drowning the transport under CardPen's console flood. Fix = minimal capture (`error` only) drained on the main thread. The "Fallacies freeze" was a false-positive of watcher-v1 (parent .NET CPU only; Chromium was rendering at 1.25 cores) +- **Serial retry for failed harvest sets** (#613/#676, Option C): Failed CardSet harvests are now retried serially with backoff (`HarvestSetRetryAttempts`, `HarvestSetRetryBackoffSeconds`) after the parallel drain — additive, gated, does not touch `ParallelismOptimizer`. `RetryAsync` contract pinned by 8 unit tests (#678) +- **Logger Spectre markup** (#630/#655): Fixed Spectre.Console escape asymmetry in `Logger.cs` + made the `[HARVEST-FAILURE]` path non-throwing (it previously short-circuited the #614 resilience path on set failure) +- **CMYK oxymore resolved** (#632): The per-image `ConvertToCmyk` in `DocumentCardSet.cs` was effectively a no-op for PNG output (PNG cannot carry CMYK; Magick re-encodes to RGB on write). Authoritative CMYK now applied via Ghostscript post-process on the final PDF — see *Print Production* above +- **Scenarii "Johnny Johnny" duplication** (#653, 6.1.3): Fixed across 6 languages (corrects #644) +- **Rules i18n refonte** (#640): Eliminated 23 HIGH "English Channel" mistranslations (homonyme "Manche" round→geography) via gpt-5.5 rewrite — 0 HIGH residual +- **Taxonomy CSV hygiene** (#579/#581/#584): Repaired systemic `%C3→A13` encoding corruption in JSON templates (Fallacies, Memo, 4 live Fallacies templates) +- **OWL staleness** (#634): Regenerated the stale Fallacies OWL (previous commit `d206e59c` dated 2026-03-28, ~3 months stale) — was a release blocker + ### Fixed — Data Quality - **Fallacies FR audit**: Cell-by-cell review of all 7 family roots — selective revert of bloated/MT-contaminated descriptions (135+ cells audited, ~30 reverts) @@ -61,14 +90,14 @@ Complete restoration of the generation pipeline from the April 2024 Golden Maste ### Changed - **DNN platform**: Upgraded 2sxc 15→21.07 with Razor14 migration + IRenderService fix (#418) -- **Dependencies**: System.Linq.Dynamic.Core 1.3.12→1.7.2 (security), Spectre.Console→0.50.0, QuestPDF pinned to 2022.12.12 (MIT free license), Magick.NET-Q16-AnyCPU 14.13.1 (dependabot-tracked), SkiaSharp.NativeAssets.Win32 2.88.6 +- **Dependencies**: System.Linq.Dynamic.Core 1.3.12→1.7.2 (security), Spectre.Console→0.50.0, QuestPDF pinned to 2022.12.12 (MIT free license), Magick.NET-Q16-AnyCPU 14.14.0 (dependabot-tracked), SkiaSharp.NativeAssets.Win32 2.88.6 - **Build artifacts**: Stopped tracking 968 MB of regenerable build outputs (#415 Phase 1) - **Mémo Back taxonomy**: Grouping selector now language-invariant (CSS class-based, not text-based) ### Test Coverage -- **548 tests pass**, 5 skips (GUI/infrastructure), 1 known-fail (OWLSharp `rdf:type`/`inScheme` round-trip, pre-existing, tracked #133 — does not affect generated assets) -- Coverage includes: CsvDiffEngine, SyncSafetyChecker, DiffReport, CsvToGrid, MindMapHtmlWrapper, FallaciesLocalizationTests, TaxonomyValidationTests, Memo_Back localization, Playwright visual tests +- **578 tests pass** (`dotnet test` on `Argumentum.AssetConverter.Tests`, 2026-07-04, .NET 9 — 584 total), 5 skips (GUI/infrastructure), 1 known-fail (OWLSharp `rdf:type`/`inScheme` round-trip, pre-existing, tracked #133 — does not affect generated assets) +- Coverage includes: CsvDiffEngine, SyncSafetyChecker, DiffReport, CsvToGrid, MindMapHtmlWrapper, FallaciesLocalizationTests, TaxonomyValidationTests, Memo_Back localization, HarvestManager `RetryAsync` contract (#678), Playwright visual tests ### Migration Notes