Make repo-root chat startup native by letting MCP servers carry a default project source for workspace creation. When a chat host starts from a Git checkout, workspace_create can now omit seed_path and inherit the server startup source; explicit --project-path and clean-clone --repo-url/--repo-ref paths are supported as fallbacks. Add project startup resolution and materialization, surface origin_kind/origin_ref in workspace_seed, update chat-host docs and the repro/fix smoke to use project-aware workspace creation, and switch dist-check to uv run pyro so verification stays stable after uv reinstalls. Validated with uv lock, focused startup/server/CLI pytest coverage, UV_CACHE_DIR=.uv-cache make check, UV_CACHE_DIR=.uv-cache make dist-check, and real guest-backed smokes for both explicit project_path and bare repo-root auto-detection.
29 lines
951 B
Markdown
29 lines
951 B
Markdown
# Repro Plus Fix Loop
|
|
|
|
Recommended profile: `workspace-core`
|
|
|
|
Smoke target:
|
|
|
|
```bash
|
|
make smoke-repro-fix-loop
|
|
```
|
|
|
|
Use this flow when the agent has to reproduce a bug, patch files without shell
|
|
quoting tricks, rerun the failing command, diff the result, export the fix, and
|
|
reset back to baseline.
|
|
|
|
Chat-host recipe:
|
|
|
|
1. Start the server from the repo root with bare `pyro mcp serve`, or use
|
|
`--project-path` if the host does not preserve cwd.
|
|
2. Create one workspace from that project-aware server without manually passing
|
|
`seed_path`.
|
|
3. Run the failing command.
|
|
4. Inspect the broken file with structured file reads.
|
|
5. Apply the fix with `workspace_patch_apply`.
|
|
6. Rerun the failing command in the same workspace.
|
|
7. Diff and export the changed result.
|
|
8. Reset to baseline and delete the workspace.
|
|
|
|
This is the main `workspace-core` story: model-native file ops, repeatable exec,
|
|
structured diff, explicit export, and reset-over-repair.
|