How Workspaces Work
Every Shannon run creates a workspace — a directory inaudit-logs/ that contains all execution state, deliverables, and progress tracking.
Progress is Checkpointed
Each agent’s completion is saved as a git commit in the workspace, creating restore points.
Creating Named Workspaces
Use named workspaces for easier reference and resumability:Workspace Names
- Named: Easy to remember (e.g.,
q1-audit,prod-scan-2026) - Auto-generated: Unique but verbose (e.g.,
example-com_shannon-1771007534808)
Resume Behavior
When resuming a workspace, Shannon:- Validates URL match - Ensures the URL matches the original run (prevents cross-target contamination)
- Detects completed agents - Checks which agents have saved deliverables
- Restores git checkpoint - Resets workspace to last successful agent commit
- Skips completed agents - Jumps directly to the next incomplete agent
- Continues execution - Runs remaining agents from the checkpoint
Example Resume Flow
Initial Run Interrupted
- ✅ Pre-Recon (completed)
- ✅ Recon (completed)
- ✅ Vuln-Injection (completed)
- ❌ Vuln-XSS (interrupted)
- ⏸️ Remaining agents (not started)
Listing Workspaces
View all workspaces with their status and resumability:Workspace Status
Run is active or was interrupted. Can be resumed.
Run encountered an error. Can be resumed to retry failed agent.
completed
Run finished successfully. Cannot be resumed (all agents completed).
Workspace Structure
Each workspace directory contains:Key Files
session.json
Tracks workflow state, completed agents, cost, and duration. Used by resume logic.
workflow.log
Human-readable log of all workflow events. Tail with
./shannon logs ID=<workspace>.agents/
Individual agent logs with tool use, errors, and completion status.
deliverables/
Agent outputs copied from repo to workspace for self-contained audit trail.
Resume Validation
Shannon enforces strict validation when resuming:URL Match Required
Deliverable Existence
Shannon verifies that completed agents have valid deliverables before marking them as skippable. If a deliverable is missing or corrupted, the agent re-runs.Git Checkpoint Restore
Before resuming, Shannon:- Loads the last successful agent commit from workspace git history
- Resets the workspace to that commit
- Cleans up any incomplete deliverables from interrupted agents
- Continues from a clean state
Use Cases
Crash Recovery
System crash or container restart during long-running pentestAction: Resume with same workspace name
Rate Limit Recovery
Hit API rate limits mid-runAction: Wait for limit reset, then resume
Manual Stop
Stop run intentionally to adjust configurationAction: Update config, resume with same workspace
Iterative Testing
Test agents incrementally during developmentAction: Run one phase, stop, review, resume
Examples
Resume After Crash
Resume After Rate Limit
Resume Auto-Named Workspace
Configuration Changes on Resume
- Safe Changes
- Unsafe Changes
These configuration changes are safe when resuming:
- Pipeline settings -
retry_preset,max_concurrent_pipelines - Environment variables - API keys, model overrides
- Output directory - Change
OUTPUT=path
Monitoring Resume Progress
Track resumed runs the same way as new runs:- Real-Time Logs
- Temporal Web UI
- View Logs
Troubleshooting
URL mismatch error
URL mismatch error
Error:Cause: Trying to resume with a different URL than the original run.Solution: Use the original URL or create a new workspace for the new URL.
Workspace not found
Workspace not found
Error:Cause: Workspace directory doesn’t exist or was deleted.Solution: Check workspace name with
./shannon workspaces or start a new run.No agents to resume
No agents to resume
Error:Cause: All agents completed successfully (status:
completed).Solution: Workspace cannot be resumed. Start a new run if needed.Resume starts from beginning
Resume starts from beginning
Issue: Resume doesn’t skip completed agents.Cause: Deliverables missing or corrupted in workspace.Solution: Check
audit-logs/<workspace>/deliverables/ for expected files. If missing, agents re-run automatically.Git checkpoint restore failed
Git checkpoint restore failed
Error:Cause: Workspace git history is corrupted or missing.Solution: Start a new workspace. Resume relies on git commits for checkpointing.
Best Practices
Preserve Workspaces
Avoid
./shannon stop CLEAN=true unless you want to delete all workspaces. Use ./shannon stop to preserve data.Related Resources
Monitoring
Logs, Temporal UI, and workflow queries
Configuration
Adjust pipeline settings for rate limits