Loading...
Loading...
SageForge is built on a few simple guardrails. Understand these and the whole app clicks into place.
Every task gets its own git worktree — a separate working copy on its own branch (agent/<task>-<slug>). The agent works there, never on your main checkout, and never in another agent's worktree. That's what makes running several agents at once safe instead of chaotic.
A task can declare allowed_files and blocked_files globs. When work comes back, SageForge re-scans the changed files (catching renames and untracked files too) and flags anything outside the allowed set or inside the blocked set. Out-of-scope changes can't be approved.
Approval is enforced in the backend, not just the UI. A task can only be approved when:
Reject always works and sends the task back to In Progress.
When an agent or a check command runs, SageForge captures its output to per-run logs and classifies failures. The overnight run queue lets you line up scoped tasks and run them sequentially or in bounded parallel (parallel rejects overlapping file scopes), then review the batch with a morning summary.
| Concern | SageForge | | :--- | :--- | | Where agents edit | Isolated worktree | | File blast radius | Scoped, enforced at diff-time | | Approval | Backend-enforced review gate | | Your data | Local SQLite + files, no cloud | | Commit / push / merge | Always you, never automatic |