# ForgeFlow 0.6.0 ForgeFlow 0.6.0 is a product-level reliability release for Git recovery, SSH / Unraid deployment truth, DockerMan integration, source updating and high-contrast ITWorx branding. ## Git operations that recover themselves - Every mutating Git action is serialized per repository. - A Git lock error triggers a conservative stale-lock scan, a short grace period for very recent locks, safe removal and automatic retry when ForgeFlow can prove that no matching process is active. - The scanner resolves the actual Git directory and covers `HEAD.lock`, `index.lock`, ref locks and worktree locks while skipping Git object/LFS storage. - The Git tools page now provides repository-specific troubleshooting instead of generic terminal advice. - Available automated actions are selected from the actual branch state: fetch, fast-forward, push, origin repair and divergence recovery. - Divergence recovery creates a `forgeflow/backup--` safety branch before resetting the current branch to upstream. ## Deployment truth instead of stuck spinners - SSH / Unraid operations are reconciled with the live Git SHA, container state and health. - Startup deployment reconciliation converts an interrupted but successful deployment to `success` and refreshes repository cards immediately. - Stale operations are marked failed instead of remaining indefinitely in `running`. - Deployment cards provide **Reconcile**, **Open Web UI** and **Repair DockerMan integration** actions. - Background completion broadcasts update the renderer and trigger repository refresh. - A successful remote Compose run is marked terminal before the secondary Unraid inspection, so a slow refresh can no longer leave the UI stuck in deployment mode. - Startup and manual refresh reconcile every configured environment and suppress a new Deploy action when the exact healthy SHA is already live. - The Deployments page can repair all running containers that are missing DockerMan WebUI/icon metadata in one controlled batch. ## DockerMan integration - ForgeFlow applies `net.unraid.docker.managed=dockerman`, `net.unraid.docker.webui`, `net.unraid.docker.icon` and `net.unraid.docker.shell` through a controlled Compose override. - WebUI labels use Unraid's `[IP]` and `[PORT:]` placeholders. - Internal Compose project, service and image identities are lowercase-safe while the visible container name can remain `Portfolio`. - The built-in high-contrast ITWorx mark is the default DockerMan icon for new or migrated SSH profiles. - A user can instead select a local PNG, use an HTTP(S) PNG URL or disable the icon. - Built-in/uploaded PNGs are copied persistently to DockerMan's image storage under `/boot/config/plugins/dockerMan/images`. - ForgeFlow writes a persistent `templates-user/my-.xml` fallback so WebUI and icon metadata remain available when label caching is unreliable. - Known DockerMan icon caches and the volatile metadata cache are invalidated after container recreation so changes can be re-read. ## SSH and server-side safety - Unraid-to-Gitea access remains part of preflight before any deployment starts. - SFTP directory creation now distinguishes existing directories from permission and path errors instead of treating every generic SFTP failure as success. - Repository Compose files receive the same metadata and exact-SHA controls as generated Compose files. - Tracked server-side modifications continue to block deployment and rollback. ## Source updater and publication - The PowerShell update helper starts directly with `param(`, without a UTF-8 BOM or stray leading character. - ForgeFlow waits for a structured `started` marker before closing the running application. - Update application performs backup, exact archive checksum validation, source replacement, lockfile-based `npm ci` when available and the complete quality gate. - Success, restart failure and rollback status are persisted and shown on the next launch. - Automatic restart launches the installed Electron executable directly, avoiding the unreliable detached `npm start` handoff. - The publishing script runs the quality gate, mirrors a clean source tree and verifies that Gitea reports the exact pushed release commit. ## Branding - The title bar, setup flow, desktop icon and installer artwork use the newly supplied higher-contrast ITWorx.tech logo. - The cloud/check mark was recropped to remove wordmark fragments and remain legible at small icon sizes. ## Verification The release includes real Git integration coverage for large selections, staged deletions, failed pushes, `HEAD.lock`, object-store exclusion and backup-before-reset divergence recovery. It also covers DockerMan labels and XML fallback, built-in icon upload, cache invalidation, operation reconciliation, viewport-safe dialogs and updater lifecycle behavior.