# `3.1.0` Secondary Disk Tools Status: Done ## Goal Add stopped-workspace disk tools the vision explicitly places last, while keeping them secondary to the stable workspace identity. ## Public API Changes Shipped additions: - `pyro workspace stop WORKSPACE_ID` - `pyro workspace start WORKSPACE_ID` - `pyro workspace disk export WORKSPACE_ID --output HOST_PATH` - `pyro workspace disk list WORKSPACE_ID [PATH] [--recursive]` - `pyro workspace disk read WORKSPACE_ID PATH [--max-bytes N]` - matching Python SDK methods: - `stop_workspace` - `start_workspace` - `export_workspace_disk` - `list_workspace_disk` - `read_workspace_disk` - matching MCP tools: - `workspace_stop` - `workspace_start` - `workspace_disk_export` - `workspace_disk_list` - `workspace_disk_read` ## Implementation Boundaries - keep these tools scoped to stopped-workspace inspection, export, and offline workflows - do not replace shell, exec, services, diff, export, or reset as the main interaction model - prefer explicit stopped-workspace or offline semantics - require guest-backed workspaces for `workspace disk *` - keep disk export raw ext4 only in this milestone - scrub runtime-only guest paths such as `/run/pyro-secrets`, `/run/pyro-shells`, and `/run/pyro-services` before offline inspection or export ## Non-Goals - no drift into generic image tooling identity - no replacement of workspace-level host crossing - no disk import - no disk mutation - no create-from-disk workflow ## Acceptance Scenarios - inspect or export a stopped workspace disk for offline analysis - stop a workspace, inspect `/workspace` offline, export raw ext4, then start the same workspace again without resetting `/workspace` - verify secret-backed workspaces scrub runtime-only guest paths before stopped-disk inspection ## Required Repo Updates - docs that clearly mark disk tools as secondary - examples that show when disk tools are faster than a full boot - real smoke coverage for at least one offline inspection flow