2.4 KiB
ForgeFlow 0.3.2 release notes
Automatic clone destinations
The normal Clone from Gitea action no longer opens a Windows folder picker for every repository. ForgeFlow now:
- uses the first configured project root as the default;
- derives a safe folder name from the repository clone URL;
- creates
<project-root>/<repository-name>; - clones into that folder;
- validates the resulting Git repository;
- saves the repository mapping;
- starts monitoring the working tree;
- opens the linked repository in ForgeFlow.
Example:
Default project root: C:\Users\your-name\Projects
Gitea repository: Jens/Portfolio
Automatic target: C:\Users\your-name\Projects\Portfolio
A separate Choose another location action remains available for exceptional cases. That choice selects a parent project root; ForgeFlow still creates the repository-named subfolder itself.
Existing-folder safety
The clone backend now inspects the automatic target before running Git:
- a missing target is created through
git clone; - an existing empty directory is accepted;
- an existing Git checkout with the same normalized origin is linked;
- a different Git repository is blocked;
- an ordinary non-empty directory is blocked;
- a file at the target path is blocked.
ForgeFlow never silently overwrites a conflicting folder and does not create a
duplicated Repository\Repository directory.
Security and consistency
The renderer no longer supplies a free-form remote URL or clone destination to the privileged Git operation. It sends the Gitea repository identity and a location mode. The main process then:
- resolves the current repository again from Gitea;
- selects the configured root or a native-dialog result;
- calculates the destination itself;
- performs conflict checks;
- clones or reuses the checkout;
- persists the mapping atomically.
Clone diagnostics contain repository identity, target, branch and commit state, but no Gitea token or authorization header.
Validation
Version 0.3.2 contains 45 passing automated tests. New coverage includes:
- HTTPS and SSH repository folder-name derivation;
- automatic target construction;
- missing and empty target handling;
- same-origin checkout reuse;
- different-repository rejection;
- non-empty ordinary-folder rejection;
- file-at-target rejection.
Existing Git, deployment, diagnostics, redaction, rollback and Windows doctor tests continue to pass.