Files
lda-wf/.superpowers/sdd/python-workflow-client/task-6-report.md
T

2.1 KiB
Raw Blame History

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.py with immutable Deployment and DeploymentValidation snapshots plus strict artifact deployment selection.
  • Added src/wf_client/runs.py with immutable Run and bounded TracePage snapshots, resume/refresh lifecycle methods, and core interrupt/trace reconstruction.
  • Added tests/wf_client/test_deployments.py and tests/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 -q30 passed.
  • uv run pytest tests/wf_client -q28 passed.
  • uv run ruff check src/wf_client tests/wf_client/test_deployments.py tests/wf_client/test_runs.pypassed.
  • uv run basedpyright --level error src/wf_client tests/wf_client/test_deployments.py tests/wf_client/test_runs.py0 errors.

Caveats

  • .wf_mcp_store/ and test-artifacts/ remain untracked generated directories and were intentionally not staged.
  • Trace limits follow the existing server bound of 1100 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.