feat: add snapshot-based none VCS mode
This commit is contained in:
@@ -77,12 +77,13 @@ agent-workflow decide --run <run-id> --input decision.json
|
||||
Start a new workflow run. Requires a clean working tree.
|
||||
|
||||
```bash
|
||||
agent-workflow start --plan <plan.json|-> --executor <reasonix|claude|agy> [--vcs <git|svn>] [--max-cycles <n>]
|
||||
agent-workflow start --plan <plan.json|-> --executor <reasonix|claude|agy> [--vcs <git|svn|none>] [--max-cycles <n>]
|
||||
```
|
||||
|
||||
- `--vcs` - Explicitly specify VCS kind (`git` or `svn`). If omitted, auto-detects from the working directory.
|
||||
- `--vcs` - Explicitly specify VCS kind (`git`, `svn`, or `none`). If omitted, auto-detects from the working directory. If neither Git nor SVN is detected, it automatically falls back to `none` (snapshot mode).
|
||||
- Git and SVN working copies are automatically detected when `--vcs` is not provided.
|
||||
- SVN working copies must be in a clean, consistent state (no mixed revisions, switched paths, externals, or conflicts).
|
||||
- None (snapshot) mode skips clean checks, capturing the directory state of the working directory and storing it in the run directory.
|
||||
|
||||
### `agent-workflow review`
|
||||
|
||||
@@ -201,7 +202,7 @@ Create `agent-workflow.json` in your repository root:
|
||||
}
|
||||
```
|
||||
|
||||
- `defaultVcs` - Default VCS kind: `"auto"` (detect), `"git"`, or `"svn"`. Default is `"auto"`.
|
||||
- `defaultVcs` - Default VCS kind: `"auto"` (detect), `"git"`, `"svn"`, or `"none"`. Default is `"auto"`.
|
||||
|
||||
## Environment Variables
|
||||
|
||||
@@ -239,9 +240,17 @@ SVN working copies are supported with strict validation:
|
||||
- **Rejects**: Switched paths, externals, conflicts, incomplete states, locked files
|
||||
- **Baseline**: Repository URL, UUID, and working revision
|
||||
- **Diff**: Tracks modifications, additions (including unversioned), deletions, and property changes
|
||||
- Use `svn update` to synchronize revisions before starting a workflow
|
||||
- The workflow never runs `svn commit`, `svn switch`, or `svn update`
|
||||
|
||||
### None (Snapshot Mode)
|
||||
Used for directories without any version control system.
|
||||
- **Trigger**: Runs automatically when no Git or SVN repository is found, or when forced using `--vcs none` (or config `defaultVcs: "none"`).
|
||||
- **Clean Checks**: Skips standard VCS cleanliness checks.
|
||||
- **Baseline**: Captures and writes metadata, file paths, size/content hashes, text contents, and symlink targets into `baseline-snapshot.json` in the workflow run directory.
|
||||
- **Diff**: Generates clean unified diffs by comparing active file systems with the captured baseline.
|
||||
- **Ignores**: Automatically honors POSIX relative rules in `.gitignore` and `.agent-workflowignore`. Directories like `.git` and `.svn` are always ignored. Only files outside the ignore boundaries are checked against scope gates.
|
||||
- **Safety constraints**: Dynamic executor safety prompts are adapted so that executors do not attempt to run `git status` or `svn status`.
|
||||
|
||||
## Convergence Limits
|
||||
|
||||
The workflow stops with `needs_human` when:
|
||||
|
||||
Reference in New Issue
Block a user