2.1 KiB
Task 6 report: deployment and durable run objects
Status
Implemented and committed as 112e9656 (feat: add Python deployment and run objects).
Files
- Added
src/wf_client/deployments.pywith immutableDeploymentandDeploymentValidationsnapshots plus strict artifact deployment selection. - Added
src/wf_client/runs.pywith immutableRunand boundedTracePagesnapshots, resume/refresh lifecycle methods, and core interrupt/trace reconstruction. - Added
tests/wf_client/test_deployments.pyandtests/wf_client/test_runs.py. - Updated
WorkflowArtifact,App, public exports, codecs, and structured deployment exceptions.
Verification
uv run pytest tests/wf_client/test_deployments.py tests/wf_client/test_runs.py tests/wf_api/test_deployment_api.py tests/wf_api/test_run_api.py -q— 30 passed.uv run pytest tests/wf_client -q— 28 passed.uv run ruff check src/wf_client tests/wf_client/test_deployments.py tests/wf_client/test_runs.py— passed.uv run basedpyright --level error src/wf_client tests/wf_client/test_deployments.py tests/wf_client/test_runs.py— 0 errors.
Caveats
.wf_mcp_store/andtest-artifacts/remain untracked generated directories and were intentionally not staged.- Trace limits follow the existing server bound of 1–100 and are validated before issuing a trace request.
Review fix round 1
Identity checks now reject mismatched deployment/artifact/run ids at every
inspect, validate, start, refresh, and resume boundary. Nested interrupt route
references are converted to InvalidResponse with operation context, and run
decoding accepts truthful inspect/start/resume operation names.
Fixes committed in the follow-up review commit for this report.
Review fix round 2
The sole discovered deployment path now rechecks the inspected artifact identity, deployment creation acknowledgements and inspected ids are checked before validation, and run-start responses enforce deployment plus artifact identity. Missing-run errors preserve server text, including operation-aware start interrupt decoding.