Files
lda-wf/.superpowers/sdd/python-workflow-client/final-fix-report.md
T

3.1 KiB

Final fix recovery report

Scope

Audited the uncommitted patch on b377311a against the final review findings and the Python workflow-client design/plan. The generated .wf_mcp_store/ and test-artifacts/ directories were left untouched and unstaged.

Fixes completed

  • Opted the remaining draft-focused RPC client test into drafts=True; default server/storage composition remains draft-free.
  • Added the public HTTP port adapter used by App.from_http_jsonrpc(). HTTP, connection, malformed JSON, and malformed JSON-RPC response failures become WorkflowClientError subclasses; known workflow error codes map to stable subclasses and unknown codes remain inspectable ProtocolError values with code/message/data preserved.
  • Added strict identity validation for artifact inspection/save, capability calls, deployment lifecycle, run lifecycle, and bounded trace pages.
  • Made WorkflowArtifact, Deployment, and Run retain deep private copies and expose defensive copies for nested mutable values.
  • Narrowed workflow-plan reconstruction handling to Pydantic ValidationError.
  • Typed deployment drift policy with the existing wf_artifacts.DriftPolicy enum and removed unused internal client exports/protocol operations.
  • Hardened the underlying RPC client against valid JSON values that are not JSON-RPC objects, and removed frozen=True from RpcProtocolError so Python can attach exception traceback state.

Verification

Commands were run from the feature worktree.

Command Result
uv run pytest -q tests/wf_client tests/wf_transport_rpc_http 292 passed, 257 warnings
uv run pytest -q tests/wf_client tests/authoring/test_builder.py tests/authoring/test_subgraph.py tests/wf_api/test_artifact_api.py tests/wf_transport_rpc_http/test_client.py tests/wf_transport_rpc_http/test_app.py tests/wf_transport_rpc_http/test_openrpc_contract.py tests/wf_contract_manifest/test_generate.py tests/wf_contract_manifest/test_committed_manifest.py tests/wf_api/test_stores.py tests/wf_server/test_local_static_server.py tests/wf_mcp/test_mcp_workflow_server.py tests/wf_mcp/server/test_tools.py tests/wf_mcp/workflow_surface tests/wf_cli/test_context.py tests/wf_server/test_cli.py 429 passed, 201 warnings
uv run ruff check All checks passed
uv run ruff format --check 677 files already formatted
uv run basedpyright --level error 0 errors, 0 warnings, 0 notes
uv run python -m wf_contract_manifest check checked contracts/workflow-api.manifest.json
pnpm --dir web --filter @lda/workflow-rpc contract:check passed
pnpm --dir web --filter @lda/workflow-rpc test 151 passed, 3 skipped
git diff --check passed
uv run pytest -q 2644 passed, 1 skipped, 1 xfailed; 1 known baseline failure: tests/docs/test_big_doc_links.py::test_thesis_bundle_has_reproducible_agent_evaluation_assets (missing generated thesis figure PDFs)

The full-suite failure is the documented pre-existing missing-asset failure; no thesis assets were generated or added.