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.
56 lines
2.1 KiB
Markdown
56 lines
2.1 KiB
Markdown
# `4.1.0` Project-Aware Chat Startup
|
|
|
|
Status: Done
|
|
|
|
## Goal
|
|
|
|
Make "current repo to disposable sandbox" the default story for the narrowed
|
|
chat-host user, without requiring manual workspace seeding choreography first.
|
|
|
|
## Public API Changes
|
|
|
|
The chat entrypoint should gain one documented project-aware startup path:
|
|
|
|
- `pyro mcp serve` should accept an explicit local project source, such as the
|
|
current checkout
|
|
- the product path should optionally support a clean-clone source, such as a
|
|
repo URL, when the user is not starting from a local checkout
|
|
- the first useful chat turn should not depend on manually teaching
|
|
`workspace create ... --seed-path ...` before the host can do real work
|
|
|
|
Exact flag names can still change, but the product needs one obvious "use this
|
|
repo" path and one obvious "start from that repo" path.
|
|
|
|
## Implementation Boundaries
|
|
|
|
- keep host crossing explicit; do not silently mutate the user's checkout
|
|
- prefer local checkout seeding first, because that is the most natural daily
|
|
chat path
|
|
- preserve existing explicit sync, export, diff, and reset primitives rather
|
|
than inventing a hidden live-sync layer
|
|
- keep the startup story compatible with the existing `workspace-core` product
|
|
path
|
|
|
|
## Non-Goals
|
|
|
|
- no generic SCM integration platform
|
|
- no background multi-repo workspace manager
|
|
- no always-on bidirectional live sync between host checkout and guest
|
|
|
|
## Acceptance Scenarios
|
|
|
|
- from a repo root, a user can connect Claude Code, Codex, or OpenCode and the
|
|
first workspace starts from that repo without extra terminal choreography
|
|
- from outside a repo checkout, a user can still start from a documented clean
|
|
source such as a repo URL
|
|
- the README and install docs can teach a repo-aware chat flow before the
|
|
manual terminal workspace flow
|
|
|
|
## Required Repo Updates
|
|
|
|
- README, install docs, first-run docs, integrations docs, and public contract
|
|
updated to show the repo-aware chat startup path
|
|
- help text updated so the repo-aware startup path is visible from `pyro` and
|
|
`pyro mcp serve --help`
|
|
- at least one recipe and one real smoke scenario updated to validate the new
|
|
startup story
|