test: prove platform sources need no bindings

This commit is contained in:
lda
2026-06-13 18:56:57 +07:00 Verified
parent 227ef61e9d
commit 97b0f5b052
2 changed files with 38 additions and 5 deletions
+4 -5
View File
@@ -113,11 +113,10 @@ auth admin are implemented. The next work is polish, not new broad surfaces.
- Completed source provider docs: `docs/source_provider_guide.md` now covers
MCP HTTP, MCP stdio, Python sources, auth refs, OAuth refresh-token setup,
diagnostics, and the Google Drive MCP caveat.
- Next design work: distinguish platform capability sources from external
source providers with metadata/policy on `CapabilitySource`. `wf.*` sources
such as `wf.std`, `wf.admin`, `wf.recipes`, and future `wf.source` should be
process-provided platform sources, not account-bound source bindings.
- Next design work after platform source policy: add `wf.source` helper
- Completed platform source policy: `wf.*` process-provided sources are marked
as platform sources and no longer require self-bindings such as
`wf.std=wf.std` in deployments.
- Next design work: add `wf.source` helper
capabilities for source-bound refs. Resource/prompt refs should be inert
pass-by-value data using `logical_source`; only explicit source-aware nodes
should dereference them through runtime/platform context.
@@ -146,6 +146,40 @@ async def test_local_static_server_inspects_and_reads_bounded_trace(tmp_path) ->
assert len(trace["trace"]) == 1
async def test_local_static_wf_std_deployment_runs_without_source_binding(
tmp_path,
) -> None:
server = build_local_static_workflow_server(tmp_path / "store")
api = server.api
plan = _constant_plan()
artifact_result = await api.create_artifact_from_plan(
artifact_id="server_constant_no_binding",
version=1,
title="Server Constant No Binding",
plan=plan.model_copy(update={"name": "server_constant_no_binding"}),
outcomes=["ok"],
source_bindings={},
)
deployment_result = await api.save_deployment(
{
"id": "server_constant_no_binding.default",
"artifact_id": "server_constant_no_binding",
"artifact_version": 1,
"bindings": {},
}
)
run_result = await api.run_deployment(
deployment_id="server_constant_no_binding.default",
workflow_input={},
)
assert artifact_result["artifact_id"] == "server_constant_no_binding"
assert deployment_result["deployment_id"] == "server_constant_no_binding.default"
assert run_result["status"] == "completed"
assert run_result["output"]["result"] == "hello from server"
def test_local_static_server_has_no_source_registry_admin(tmp_path) -> None:
server = build_local_static_workflow_server(tmp_path / "store")