# Changelog ## [2.3.4] - 2026-08-27 ### Fixed - Shutdown plan review, inbound-drain and emergency-restore confirmations are now owned by the main window, preventing a modal decision from being hidden behind the application in RDP and multi-monitor sessions. - The shutdown status now changes from a generic preparation message to an explicit `ACTION REQUIRED` / paused state before the real inbound-drain decision. ### Changed - Dry-run and real execution are distinguished with prominent mode text, color and persistent status guidance; execution settings cannot be changed while an operation is active. - A shutdown Dry-run now displays an owned informational notice explaining that it changes no receive locations and therefore does not open the real drain decision dialog. - The prepared real-shutdown confirmation explicitly announces the second decision after the receive-location phase; closing the real checkpoint dialog is explicitly documented as a safe stop. ### Added - Regression coverage for checkpoint creation when later shutdown work exists without enabled receive locations, and for distinct Dry-run, prepared-plan and paused-checkpoint operator guidance. - A dedicated PROD root-cause analysis, validation runbook and plain-text handoff for shutdown-dialog visibility. ## [2.3.3] - 2026-08-27 ### Fixed - Snapshot, shutdown and restore rows no longer show every Send Port, Receive Location and Orchestration under `(Unknown Application)` when the BizTalk runtime WMI classes omit application ownership. ### Changed - Application ownership is now read from the official read-only ExplorerOM application hierarchy, while WMI remains authoritative for runtime state and mutations. - **Diagnose** reports visible Send Ports and the exact number with a resolved application association; incomplete catalog access remains a visible warning instead of being hidden. - ExplorerOM is loaded process-locally from the GAC or identity-checked BizTalk installation paths, preserving the portable build and WMI-free installer self-test. ### Added - Regression coverage for Send Port, Receive Port/Location and Orchestration mapping, case-insensitive lookup and rejection of ambiguous cross-application names. - A dedicated PROD root-cause analysis, validation runbook and plain-text handoff for the application-association fix. ## [2.3.2] - 2026-08-26 ### Added - A persisted, fail-closed operator drain checkpoint between the global receive-location phase and all later real shutdown phases. - Durable `Continue`, `Stop` or `Error` checkpoint evidence plus `NotExecuted` results for every protected downstream plan row. - Regression coverage for checkpoint ordering, continuation after an early receive-location failure, explicit operator stop, missing-handler fail-closed behavior and dry-run isolation. - A dedicated PROD runbook and plain-text handoff for drain verification and BizTalk application status semantics. ### Changed - Real shutdown now pauses with a default-No dialog that summarizes receive-location outcomes and asks the operator to verify Group Hub and enterprise monitoring before continuing. - A safe operator stop still attempts the partial-state snapshot and execution report and is shown as stopped rather than a completed shutdown. ### Security - The tool deliberately does not issue a broad application-level stop merely to change `Partially Started`; stronger BizTalk application stop modes can remove subscriptions, unenlist artifacts, undeploy policies or terminate running instances. ## [2.3.1] - 2026-08-26 ### Added - A real runtime-log write/read roundtrip to the WMI-free installer self-test and a durable startup verification record naming the active daily file. - Regression coverage for startup fallback, append-time failover without record loss and total storage failure diagnostics. - A dedicated PROD storage-validation runbook in Markdown and plain text. ### Changed - Runtime logging now verifies actual writes and uses the deterministic fallback order ProgramData, LocalAppData, executable-local `Logs`, then Temp. - **Log Folder** opens the currently verified path; fallback and total failure diagnostics include attempted paths and exceptions in the Operation Log grid. ### Fixed - Successful directory creation can no longer be mistaken for working file logging when the subsequent append is denied. - Runtime append failures are no longer swallowed silently; the failed record is retried on the next local candidate and a durable/visible warning is emitted. ## [2.3.0] - 2026-08-26 ### Added - Process-local, assembly-identity-checked resolution and preflight for ScheduledTask `scheduler:` receive locations, including automatic BizTalk/adapter directory and registry discovery plus an explicit configuration override. - Persistent Operation Log grid restoration from retained plain and GZip-compressed daily logs. - **Log Folder** action and a dedicated PROD validation/support runbook in Markdown and plain text. - Regression coverage for Scheduler plan metadata, assembly identity rejection, restart persistence, compression, 30-day retention and detailed exception diagnostics. ### Changed - Runtime logs now retain 30 calendar days and compress completed daily files instead of deleting everything older than five days. - Grid, result JSON and file logs now preserve exception type, HRESULT, inner exceptions, Fusion loader details and stack traces for support analysis. ### Fixed - ScheduledTask 7.0.2 receive locations can resolve `Microsoft.BizTalk.Scheduler.dll` from the installed BizTalk environment before WMI `Enable`/`Disable`, without requiring the management tool to mutate the GAC. ## [2.2.4] - 2026-08-24 ### Fixed - Permission, Windows Script Host, validation and rollback errors affecting the optional all-users desktop shortcut no longer abort installation, update or uninstallation. - Failure to capture or restore the optional desktop shortcut can no longer prevent restoration of mandatory registry, Start menu and uninstaller state. ### Changed - The all-users desktop shortcut is now opt-in and unchecked by default. - Optional desktop warnings are visible in the setup UI and durable log, while completion remains successful with an explicit warning result. ### Added - Failure-injection coverage proving that both an optional shortcut exception and a failing warning sink remain non-fatal. - Dedicated operator and maintainer documentation for the optional Windows-integration boundary. ## [2.2.3] - 2026-08-24 ### Fixed - A persistent Windows/EDR denial of the final staging-directory rename no longer aborts activation after an existing installation has already been atomically moved to its backup. - The SHA-256-verified copy fallback now covers both first installation and update activation, while refusing to overwrite an existing target or an update without a completed backup. ### Added - Regression coverage for successful update copy fallback and complete restoration of the previous version when the post-copy target self-test fails. - PROD incident analysis and a plain-text operator handoff for the observed 2.1.2 `SETUP-ACTIVATION` failure. ## [2.2.2] - 2026-08-19 ### Fixed - A failure in the optional GUI log sink can no longer escape step-level error handling or stop later independent shutdown/restore steps. ### Added - Failure-injection coverage for multiple consecutive unexpected exception types and a permanently failing log-display sink. ## [2.2.1] - 2026-08-19 ### Added - WMI-free **Validate State** preflight with snapshot metadata, server matching and artifact counts. - Direct **State...** file selection for a preserved recovery snapshot. - Automatic timestamped JSON/CSV/HTML target/actual diff after a real Emergency Restore. - Regression coverage proving that a `before.json` created by version 2.1.3 remains a valid Emergency Restore source. ### Changed - Emergency-recovery documentation now provides a dedicated operator runbook for the ACC restart and explicitly distinguishes dry-run evidence from real execution evidence. ## [2.2.0] - 2026-08-19 ### Added - State-aware **Emergency Restore** from an existing `before.json` without overwriting the recovery source. - Enterprise Single Sign-On (`ENTSSO`) startup as the first emergency-recovery prerequisite. - Durable per-step `shutdown-result.json`, `restore-result.json` and timestamped emergency result reports. - Regression coverage for the ACC `Microsoft.BizTalk.Scheduler` failure, best-effort continuation, already-satisfied states, emergency ordering and global cross-application ordering. ### Changed - Shutdown and restore continue with remaining independent steps after an isolated WMI or adapter failure and finish with an explicit operator-review result. - Runtime operations skip artifacts that already match the requested target state, making recovery from partial shutdowns idempotent. - Post-operation snapshots are attempted and diagnosed independently after partial execution failures. - Shutdown order is now global across all applications: receive locations, orchestrations, send ports, then host instances. - Restore order is now global across all applications: host instances, send ports, orchestrations, then receive locations. ### Fixed - An ACC shutdown no longer aborts every later step when `RV_PMP_Trigger_Schedule` fails validation because `Microsoft.BizTalk.Scheduler` or a dependency cannot be loaded. - A partial shutdown no longer prevents recovery evidence from being written after the first failed step. - Host-instance steps no longer treat the short name and FQDN of the same target server as different machines. ## [2.1.3] - 2026-08-11 ### Added - Bounded retry/backoff diagnostics for transient `Directory.Move` locks caused by the Windows loader, antivirus or endpoint protection. - A SHA-256-verified copy activation fallback limited to first-time installations with no existing active version. - Regression coverage for transient recovery, permanent new-install fallback and permanent update denial without mutation. - ACC incident analysis and an AI maintainer handoff document. ### Changed - Install, update, rollback and uninstall directory moves now use eight bounded attempts over at most 19.75 seconds. - Setup completion logs record the activation method and preservation state of both backup and staging directories. - Product and setup version advanced to 2.1.3. ## [2.1.2] - 2026-08-11 ### Added - Complete XML documentation for types and methods across application, setup, packager and regression projects, including parameters, generic type parameters and return values. - Focused German inline comments for non-obvious BizTalk ordering, WMI compatibility, persistence, security and installer transaction decisions. - XML documentation output in every Release project configuration for compiler-side validation. ### Changed - README, technical documentation and installation/build guidance now describe the source-documentation standard and generated XML developer artifacts. ## [2.1.1] - 2026-08-11 ### Added - Stable setup/uninstall phase codes, environment and file metadata, complete self-test output, exception chains with HRESULT/stacktrace, and per-step rollback diagnostics. - Installer-log fallback from ProgramData to Temp plus a setup button for opening diagnostic logs. - Post-write verification of shortcuts, uninstall executable and essential uninstall-registry values. - Regression coverage for pre-mutation rollback wording, diagnostic context, log fallback and UI-report isolation. ### Changed - Pre-mutation failures now explicitly report that no rollback was required; completed rollbacks are only reported as successful when every restoration step succeeded. - Self-test timeout handling is bounded after termination is requested and records kill/capture status. - Technical installer acceptance is explicitly separated from BizTalk WMI/environment validation. - Setup and uninstall preserve undeletable backup/quarantine data and record a successful completion with a cleanup warning. ## [2.1.0] - 2026-08-11 ### Added - Transactional Windows setup/updater with SHA-256 payload manifest, isolated staging, pre/post activation self-tests, rollback, shortcuts and uninstall registration. - Certutil-compatible installer ZIP as Base64 TXT plus separate ZIP SHA-256 file. - WMI-free application self-test and regression test project covering persistence, diffs, restore safety, CSV hardening and installer rollback. - UAC manifest and single-instance protection for the management application. ### Changed - Snapshot and plan JSON writes now replace files atomically and keep BOM-tolerant reads. - Snapshot diffs identify artifacts by application and name. - Restore planning rejects snapshots from a different target server. - Real shutdown/restore requires confirmation of the fully prepared and saved plan. - Runtime logs are written to `%ProgramData%\BizTalkPlatformManagementTool\Logs` with executable-directory fallback. - WMI query objects and WMI method output objects are disposed deterministically. - CSV exports neutralize formula-like cell prefixes. ## [Unreleased] - 2026-04-27 ### Changed - Projekt auf `BizTalkPlatformManagementTool` umbenannt. - Solution, Projektdatei, Namespace, Assemblyname und Standard-Ausgabepfad angepasst. - Dokumentation aktualisiert und `Installation.md` ergänzt. ## [1.3.0] - 2026-02-02 ### Added - HTML Report mit farblicher Kennzeichnung (grün/rot) - Farbige Statusausgabe auf STDOUT - Remote‑Server Parameter (-Server) und Ausgabeverzeichnis (-OutDir) - Verbesserte Diff‑Erkennung (neu/entfernt) ## [1.2.0] - 2026-02-02 ### Added - Remote‑fähige Snapshot‑Funktion, Logging (Konsole + Datei) ## [1.1.0] - 2026-02-02 ### Added - Textuelle Diff‑Ausgabe auf STDOUT + HTML Report ## [1.0.0] - 2026-02-02 ### Added - Grundfunktion: Snapshot & Diff (Receive Locations, Send Ports, Orchestrations)