Files
ForgeFlow/CHANGELOG.md
T

15 KiB
Raw Permalink Blame History

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.