Files
ForgeFlow/CHANGELOG.md
T

258 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
## 0.10.0 - 2026-07-28
- Added safe Gitea Server pull with repository-scoped read-only deploy keys and pinned SSH host fingerprints.
- Automatically discovers and links unique running repository workloads while filtering system containers and stale release folders.
- Reconciles live server SHA, Gitea SHA and runtime health, including deployments changed outside ForgeFlow.
- Preserves adopted Compose and DockerMan identity and avoids duplicate repository links.
- Expanded Git Validator with editor, line-ending, dependency-lock and Gitea Actions checks plus reviewable fixes.
- Refined the dark deployment workspace with clearer workload identity, focused inventory and motion-safe illustration.
- Added live connection/deployment audit scripts and kept automatic cleanup of older packaged artifacts.
## 0.9.5 - 2026-07-28
- Added a mandatory remote write-access preflight before every Direct copy deployment and again immediately before upload.
- The preflight reports the exact failing path, SSH user, owner, group and mode instead of allowing a partial copy or Docker activation.
- Added an in-app **Check / fix write access** action on every SSH / Unraid deployment and directly beside failed permission checks.
- The repair is restricted to the linked project source and `.forgeflow` state, assigns the Unraid `users` group where available, preserves executable bits and excludes configured runtime data.
- Explicit permission repair now also normalizes SMB/manual-copy access even when the SSH account is root and could already write.
- Direct copy is fail-closed: candidate Compose configuration and images are validated before live files change; no implicit `down`, `--remove-orphans` or `--force-recreate` is used.
- A failed activation restores the prior source and image tags, attempts to restore the previous runtime and retains rollback evidence for diagnosis.
- Removed orphan deletion from the legacy server deployment helper as well.
## 0.9.4 - 2026-07-28
- Fixed imported deployments failing with `service has neither an image nor a build context` because a stale labels-only metadata overlay introduced a phantom service.
- Existing workloads now activate strictly from their real Compose files; ForgeFlow metadata is stored outside the active Compose model.
- Redeploy always uses `--force-recreate` and verifies every service returned by `docker compose config --services`.
- A deployment is rejected when the container ID did not change or when the previous hinted container remains running beside a duplicate workload.
- Deployment SHA is promoted only after recreation and runtime checks complete.
## 0.9.3 - 2026-07-28
- removed every server-to-repository authentication check and all server-side Git deployment branches from SSH/Unraid deploy and rollback;
- forcibly migrated legacy SSH/Unraid profiles to direct local bundle copy, except explicit monitor-only profiles;
- discovered Compose YAML definitions directly from configured Unraid appdata roots even when Docker inspection fails;
- merged YAML definitions with runtime containers, stopped containers and DockerMan templates;
- automatically linked unique high-confidence Compose folder/project matches and added one-click linking for remaining strong matches with all fields prefilled;
- made inventory failure handling compatible with strict Bash execution, pruned large runtime folders during YAML discovery and normalized user-share/cache/disk appdata paths.
## 0.9.0 - 2026-07-27
- replaced Git-checkout-only discovery with a complete Unraid workload inventory, including stopped, Compose, DockerMan and standalone containers;
- added persistent manual workload linking with repository, deployment mode, Compose project, files and service identity;
- made checksum-verified exact-commit push bundles the default for new SSH/Unraid profiles, so Unraid no longer needs a Gitea key;
- separated desktop-to-Unraid authentication, Docker/Compose capabilities and optional Unraid-to-Gitea access in diagnostics;
- preserved adopted DockerMan templates and disabled aggressive recreate/orphan flags by default;
- promoted deployment state only after Compose validation and service verification, with atomic manifests, rollback restoration and live lock ownership;
- retained server-side Git and monitor-only modes for explicit use cases;
- corrected release publication so source, installer, portable executable and SHA-256 sidecars are published together, with a recovery publisher for source-only Gitea releases.
## 0.8.9 - 2026-07-26
- added a per-repository Git Validator with a weighted assurance score and evidence-backed checks;
- validates Gitea branch governance, repository identity, upstream tracking, effective author identity, safe synchronization defaults, README and gitignore hygiene, tracked secret-shaped files and oversized files;
- provides audited one-click repairs for origin alignment and repository-local safety configuration;
- offers confirmed repairs for default-branch protection and a reviewable uncommitted `.gitignore`;
- introduced a premium, theme-aware and container-responsive Validator workspace with safe-fix batching.
## 0.8.8 - 2026-07-26
- fixed binary update downloads on Gitea servers that require release-scoped attachment routes;
- sends both the immutable release ID and attachment ID when downloading update assets;
- preserves strict same-origin token handling and SHA-256 verification.
## 0.8.7 - 2026-07-26
- automatically inventories running workloads across configured Unraid servers;
- links server Git checkouts to Gitea repositories through exact normalized origins and strong container evidence;
- supports image-only discovery through OCI and ForgeFlow repository/commit labels;
- adopts uniquely matched workloads into Deployments without requiring a prior ForgeFlow release operation;
- verifies every SSH deployment refresh against the current full Gitea branch SHA;
- treats matching commits as in order only while the container is running and healthy, and rejects ambiguous matches.
## 0.8.6 - 2026-07-26
- added contextual animated code maps to unused diff-canvas space;
- made illustrations respond to file type, diff size and pointer depth without obscuring code;
- enriched changed-file rows with clearer state chips, active hierarchy and premium interaction feedback;
- added responsive and reduced-motion safeguards for focused, accessible workspaces.
## 0.8.5 - 2026-07-26
- fixed packaged update downloads when Gitea reports an asset URL with a different public origin;
- downloads release assets by immutable Gitea asset ID on the configured trusted origin;
- retains strict token isolation and never follows authenticated downloads to another host.
## 0.8.4 - 2026-07-26
- added interactive animated release-flow illustrations to high-value project surfaces;
- introduced cursor-responsive depth, travelling deployment signals and living status nodes;
- added compact repository illustration watermarks without reducing usable header space;
- made every illustration theme-aware, responsive, semantic and reduced-motion safe.
## 0.8.3 - 2026-07-26
- enriched light mode with layered color, depth and stronger navigation hierarchy;
- made every deployment visually identifiable by container, repository, environment and stable accent color;
- added live-versus-Gitea commit proof directly to deployment cards;
- reconciled stale failed operations against healthy live Unraid and current Gitea truth.
## 0.8.2 - 2026-07-26
- enabled checksum-verified binary auto-update for installed and portable Windows builds;
- added an external binary updater that waits for ForgeFlow to close, applies the verified release and restarts the application;
- added reproducible SHA-256 sidecars and authenticated Gitea release publishing;
- made packaged update checks fail clearly when a matching published release asset is incomplete.
## 0.8.1 - 2026-07-26
- introduced a refined premium visual system with clearer hierarchy, richer depth, responsive density and reduced-motion support;
- added a live open pull-request overview per repository instead of only pull-request creation;
- added a safe installed-connection self-test for DPAPI, Gitea identity, repository access and Actions access;
- verified the existing dedicated Unraid Ed25519 key and strict host fingerprint against the configured server;
- expanded compact-window visual acceptance at 1120 × 720 and the dashboard check at 1440 × 900.
## 0.8.0 - 2026-07-25
- Added partial-hunk staging, conflict guidance, protected-branch awareness and Gitea pull requests.
- Added configurable editor/terminal integration, tray, notifications and login startup.
- Added deployment policies, release notes, append-only audit export and encrypted configuration backup/restore.
- Added a guarded end-to-end environment acceptance harness.
## 0.7.0
- Added server-authoritative adoption of existing Unraid/Compose deployments.
- Added Docker, Compose, Git and DockerMan discovery with provenance and complete runtime metadata.
- Added a general one-click troubleshooter for common Git and deployment failures.
- Added safe abort recovery for interrupted Git operations and protected divergence repair.
- Fixed Unraid WebUI placeholder validation, serialized config saves, malformed config recovery and CRLF manifest verification.
## 0.6.1
- Fixed Windows PowerShell 5.1 updater status replacement and STARTED handshake.
- Added helper-log diagnostics and update-request identity validation.
## 0.6.0
- Added complete repository troubleshooting for stale `HEAD.lock`, `index.lock`, ref locks and diverged branches.
- Added safe one-click fetch, fast-forward, push and backup-then-reset synchronization repairs.
- Reconciled interrupted SSH deployments from live Unraid state at startup and on demand.
- Added DockerMan WebUI, icon and shell metadata plus a persistent XML template fallback for repository and generated Compose deployments.
- Added a built-in high-contrast ITWorx icon, local PNG upload, DockerMan image storage and metadata/icon-cache invalidation.
- Enforced lowercase internal Compose identities while preserving visible names such as `Portfolio`.
- Hardened source updater startup, status reporting, rollback and restart behavior.
- Completed successful SSH operations before post-deployment reconciliation to prevent stale deployment mode.
- Added startup server-truth refresh, batch DockerMan repair and healthy-live-SHA deploy suppression.
- Added lockfile-aware updater installs and direct Electron restart.
- Expanded automated coverage to Git lock, divergence, DockerMan, deployment reconciliation and updater regressions.
## 0.5.4
- Added exact Unraid-to-Gitea clone preflight.
- Made SSH deployments background operations with automatic polling.
- Preserved configured Compose casing such as Portfolio.
- Guaranteed failed remote operations become terminal failed records.
## 0.5.3
- Confirmed updater handoff before application exit.
- Persistent lifecycle state and startup result notification.
- Reliable success/rollback restart tracking.
## 0.5.2
- Made release verification and built-in update validation independent of Windows Bash shims.
- Added portable structural safety validation for the Unraid deployment script.
- Kept GNU Bash syntax validation on Linux and other non-Windows systems.
## 0.5.1
- Fixed Windows publication quality gate by validating Bash syntax through standard input.
- Added regression coverage for path-independent shell validation.
## 0.5.0
- Viewport-safe scrollable dialogs with persistent actions.
- NUL-delimited Git pathspec transport for large selections.
- Per-repository mutation serialization and stale lock repair.
- Bulk normalization of legacy Gitea origins.
- Expanded regression coverage.
- Correctly stage deleted and renamed paths.
- Preserve and surface local commits when push fails.
- Always refresh the actual Git state after operation errors.
- Add end-to-end Git regression coverage for deletion and push recovery.
## 0.4.3
- Removed the platform-dependent Unraid inspection integration test that mixed Windows temporary paths with remote Linux semantics.
- Added deterministic SSH inspection contract coverage.
- Released as one complete clean source archive.
## 0.4.2
- Replaced nested SSH Bash quoting with a single-line base64 transport.
- Fixed Windows Git Bash inspection failures caused by multiline quote parsing.
- Made temporary test cleanup resilient to short-lived Windows directory locks.
- Corrected remote status-file base64 invocation.
- Added Windows-focused regression coverage and a recovery updater from 0.4.0/0.4.1.
## 0.4.1
- Fixed Windows `bash -n` verification for ForgeFlow paths such as `C:\Projects\ForgeFlow`.
- Bash now receives a relative POSIX script path with the project root supplied through `cwd`.
- Added cross-platform regression tests, including a project root containing spaces.
## 0.4.0
- Made the changed-file panel independently scrollable for large working trees.
- Added explicit commit-message readiness and clarified that commit actions stage selected files automatically.
- Integrated the supplied ITWorx.tech logo into the title bar, setup and desktop icons.
- Added a private-Gitea source updater pinned to an exact update-branch commit.
- Added secure SSH / Unraid server profiles with host-key pinning.
- Added exact-SHA deployment to Git-backed `/mnt/user/appdata/<project>` folders.
- Added existing deployment inspection, tracked-change blocking, origin alignment and nested-Git warnings.
- Added repository Compose adoption and basic generated Compose for simple Dockerfile applications.
- Added exact previous-SHA rollback with repeat health verification.
- Added the LumaOps server-versus-Gitea migration audit.
- Expanded the automated suite to 59 passing tests.
## 0.3.2
- Clone from Gitea now uses the first configured project root automatically.
- Repository-named target folders are created without reopening the folder picker.
- Added an explicit Choose another location action for exceptional clones.
- Existing matching checkouts are linked instead of cloned again.
- Different repositories, non-empty ordinary folders and file conflicts are blocked.
- Clone identity and destination are resolved again in the privileged backend.
- Added a Windows source-update script and upgrade guide.
- Expanded the automated suite from 39 to 45 passing tests.
## 0.3.1
- Fixed the Windows environment doctor failing with `spawn npm ENOENT` after a successful npm installation.
- Added safe npm invocation through `npm_execpath` with a `cmd.exe` fallback.
- Added Windows and cross-platform regression tests for npm discovery.
- Removed the duplicated hard-coded doctor version.
## 0.1.0 — Functional MVP foundation
- Reworked the Stitch static screens into one coherent desktop application.
- Added secure Electron main/preload/renderer architecture.
- Added real Gitea connection and repository loading.
- Added bounded local Git repository discovery and remote matching.
- Added real Git status, diff, staging, commit, push, fetch and fast-forward pull.
- Added deployment profiles and exact-SHA Gitea Actions dispatch.
- Added deployment confirmation, operation history and healthcheck foundation.
- Added dark/light themes, onboarding and browser demo.
- Added unit tests and a real temporary Git remote integration test.
- Added safe workflow and server deployment examples.
## 0.4.5
- Fixed commit/push after manually staging a deleted file.
- Already staged deletions and renames are no longer re-added as missing pathspecs.
- Added a real bare-remote regression test for `silent-zebra-glow.zip`.