Add daily-loop prepare and readiness checks
Make the local chat-host loop explicit and cheap so users can warm the machine once instead of rediscovering environment and guest setup on every session. Add cache-backed daily-loop manifests plus the new `pyro prepare` flow, extend `pyro doctor --environment` with warm/cold/stale readiness reporting, and add `make smoke-daily-loop` to prove the warmed repro-fix reset path end to end. Also fix `python -m pyro_mcp.cli` to invoke `main()` so the new smoke and `dist-check` actually exercise the CLI module, and update the docs/roadmap to present `doctor -> prepare -> connect host -> reset` as the recommended daily path. Validation: `uv lock`, `UV_OFFLINE=1 UV_CACHE_DIR=.uv-cache make check`, `UV_OFFLINE=1 UV_CACHE_DIR=.uv-cache make dist-check`, and `UV_OFFLINE=1 UV_CACHE_DIR=.uv-cache make smoke-daily-loop`.
This commit is contained in:
parent
d0cf6d8f21
commit
663241d5d2
26 changed files with 1592 additions and 199 deletions
|
|
@ -15,6 +15,7 @@ from pyro_mcp.cli import _build_parser
|
|||
from pyro_mcp.contract import (
|
||||
PUBLIC_CLI_COMMANDS,
|
||||
PUBLIC_CLI_DEMO_SUBCOMMANDS,
|
||||
PUBLIC_CLI_DOCTOR_FLAGS,
|
||||
PUBLIC_CLI_ENV_SUBCOMMANDS,
|
||||
PUBLIC_CLI_HOST_CONNECT_FLAGS,
|
||||
PUBLIC_CLI_HOST_DOCTOR_FLAGS,
|
||||
|
|
@ -23,6 +24,7 @@ from pyro_mcp.contract import (
|
|||
PUBLIC_CLI_HOST_SUBCOMMANDS,
|
||||
PUBLIC_CLI_MCP_SERVE_FLAGS,
|
||||
PUBLIC_CLI_MCP_SUBCOMMANDS,
|
||||
PUBLIC_CLI_PREPARE_FLAGS,
|
||||
PUBLIC_CLI_RUN_FLAGS,
|
||||
PUBLIC_CLI_WORKSPACE_CREATE_FLAGS,
|
||||
PUBLIC_CLI_WORKSPACE_DIFF_FLAGS,
|
||||
|
|
@ -113,6 +115,9 @@ def test_public_cli_help_lists_commands_and_run_flags() -> None:
|
|||
env_help_text = _subparser_choice(parser, "env").format_help()
|
||||
for subcommand_name in PUBLIC_CLI_ENV_SUBCOMMANDS:
|
||||
assert subcommand_name in env_help_text
|
||||
prepare_help_text = _subparser_choice(parser, "prepare").format_help()
|
||||
for flag in PUBLIC_CLI_PREPARE_FLAGS:
|
||||
assert flag in prepare_help_text
|
||||
host_help_text = _subparser_choice(parser, "host").format_help()
|
||||
for subcommand_name in PUBLIC_CLI_HOST_SUBCOMMANDS:
|
||||
assert subcommand_name in host_help_text
|
||||
|
|
@ -136,6 +141,9 @@ def test_public_cli_help_lists_commands_and_run_flags() -> None:
|
|||
).format_help()
|
||||
for flag in PUBLIC_CLI_HOST_REPAIR_FLAGS:
|
||||
assert flag in host_repair_help_text
|
||||
doctor_help_text = _subparser_choice(parser, "doctor").format_help()
|
||||
for flag in PUBLIC_CLI_DOCTOR_FLAGS:
|
||||
assert flag in doctor_help_text
|
||||
mcp_help_text = _subparser_choice(parser, "mcp").format_help()
|
||||
for subcommand_name in PUBLIC_CLI_MCP_SUBCOMMANDS:
|
||||
assert subcommand_name in mcp_help_text
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue