pyro-mcp/docs/roadmap/task-workspace-ga/2.6.0-structured-export-and-baseline-diff.md
Thales Maciel 84a7e18d4d Add workspace export and baseline diff
Complete the 2.6.0 workspace milestone by adding explicit host-out export and immutable-baseline diff across the CLI, Python SDK, and MCP server.

Capture a baseline archive at workspace creation, export live /workspace paths through the guest agent, and compute structured whole-workspace diffs on the host without affecting command logs or shell state. The docs, roadmap, bundled guest agent, and workspace example now reflect the new create -> sync -> diff -> export workflow.

Validation: uv lock, UV_CACHE_DIR=.uv-cache make check, UV_CACHE_DIR=.uv-cache make dist-check, and a real guest-backed Firecracker smoke covering workspace create, sync push, diff, export, and delete.
2026-03-12 03:15:45 -03:00

49 lines
1.3 KiB
Markdown

# `2.6.0` Structured Export And Baseline Diff
Status: Done
## Goal
Complete the next explicit host-crossing step by letting a workspace export
files back to the host and diff itself against its immutable create-time
baseline.
## Public API Changes
- CLI:
- `pyro workspace export WORKSPACE_ID PATH --output HOST_PATH`
- `pyro workspace diff WORKSPACE_ID`
- SDK:
- `export_workspace`
- `diff_workspace`
- MCP:
- `workspace_export`
- `workspace_diff`
## Implementation Boundaries
- Capture a baseline snapshot at `workspace create`.
- `workspace diff` compares current `/workspace` against that baseline.
- `workspace export` exports files or directories only from paths under
`/workspace`.
- Keep output structured:
- unified patch text for text files
- summary entries for binary or type changes
## Non-Goals
- no named snapshots yet
- no reset yet
- no export outside `/workspace`
## Acceptance Scenarios
- seed workspace, mutate files, diff against baseline, export a file to host
- sync push content after create, then confirm diff reports the synced changes
- unchanged workspace returns an empty diff summary cleanly
## Required Repo Updates
- docs that distinguish seed, sync push, diff, and export
- example showing reproduce -> mutate -> diff -> export
- real Firecracker smoke for diff and export