Introduce explicit repro-fix, inspect, cold-start, and review-eval modes across the MCP server, CLI, and host helpers, with canonical mode-to-tool mappings, narrowed schemas, and mode-specific tool descriptions on top of the existing workspace runtime. Reposition the docs, host onramps, and use-case recipes so named modes are the primary user-facing startup story while the generic no-mode workspace-core path remains the escape hatch, and update the shared smoke runner to validate repro-fix and cold-start through mode-backed servers. Validation: UV_OFFLINE=1 UV_CACHE_DIR=.uv-cache uv run pytest --no-cov tests/test_api.py tests/test_server.py tests/test_host_helpers.py tests/test_public_contract.py tests/test_cli.py tests/test_workspace_use_case_smokes.py; UV_OFFLINE=1 UV_CACHE_DIR=.uv-cache make check; UV_OFFLINE=1 UV_CACHE_DIR=.uv-cache make dist-check; real guest-backed make smoke-repro-fix-loop smoke-cold-start-validation outside the sandbox.
38 lines
1.1 KiB
Markdown
38 lines
1.1 KiB
Markdown
# Repro Plus Fix Loop
|
|
|
|
Recommended mode: `repro-fix`
|
|
|
|
Recommended startup:
|
|
|
|
```bash
|
|
pyro host connect codex --mode repro-fix
|
|
```
|
|
|
|
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.
|
|
|
|
If the mode feels too narrow for the job, fall back to the generic bare
|
|
`pyro mcp serve` path.
|
|
|
|
This is the main `repro-fix` story: model-native file ops, repeatable exec,
|
|
structured diff, explicit export, and reset-over-repair.
|