Add workspace handoff shortcuts and file-backed inputs

Remove the remaining shell glue from the canonical CLI workspace flows so users can hand off IDs and host-authored text files directly.

Add --id-only on workspace create and shell open, plus --text-file and --patch-file for workspace file write and patch apply, while keeping the underlying SDK, MCP, and backend behavior unchanged.

Update the top walkthroughs, contract docs, roadmap status, and use-case smoke runner to use the new shortcuts, and verify the milestone with uv lock, make check, make dist-check, focused CLI tests, and a real guest-backed smoke for create, file write, patch apply, and shell open/read.
This commit is contained in:
Thales Maciel 2026-03-13 11:10:11 -03:00
parent 788fc4fad4
commit 7a0620fc0c
15 changed files with 466 additions and 79 deletions

View file

@ -478,6 +478,18 @@ def test_run_all_use_case_scenarios_with_fake_pyro(
fake_pyro = _FakePyro(tmp_path / "fake-pyro")
monkeypatch.setattr(smoke_module, "Pyro", lambda: fake_pyro)
monkeypatch.setattr(time_module, "sleep", lambda _seconds: None)
monkeypatch.setattr(
smoke_module,
"_run_pyro_cli",
lambda *args, cwd: (
fake_pyro.write_workspace_file(
args[3],
"message.txt",
text="fixed\n",
),
f"[workspace-patch] workspace_id={args[3]} total=1\n",
)[1],
)
smoke_module.run_workspace_use_case_scenario("all")
@ -493,6 +505,18 @@ def test_main_runs_selected_scenario(monkeypatch: pytest.MonkeyPatch, tmp_path:
fake_pyro = _FakePyro(tmp_path / "fake-pyro-main")
monkeypatch.setattr(smoke_module, "Pyro", lambda: fake_pyro)
monkeypatch.setattr(time_module, "sleep", lambda _seconds: None)
monkeypatch.setattr(
smoke_module,
"_run_pyro_cli",
lambda *args, cwd: (
fake_pyro.write_workspace_file(
args[3],
"message.txt",
text="fixed\n",
),
f"[workspace-patch] workspace_id={args[3]} total=1\n",
)[1],
)
monkeypatch.setattr(
"sys.argv",
[