62 lines
4.8 KiB
Markdown
62 lines
4.8 KiB
Markdown
# 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-<branch>-<timestamp>` 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:<host-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-<container>.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.
|