docs: record legacy config migration path

This commit is contained in:
lda
2026-06-05 01:56:51 +07:00 Verified
parent f0346c6735
commit f0aef8c469
3 changed files with 28 additions and 3 deletions
+11
View File
@@ -191,6 +191,17 @@ implementation state.
import-direction guard. The durable fix is not a permanent split launcher;
it is making `wf_config` wide enough that the RPC server can compose from
neutral config while MCP-specific adapters stay selected by source kind.
- Legacy config migration: add a converter from old `wf_mcp.config.json`
(`store_root`, `connections[]`) into the wider `wf_config` shape
(`server.store`, `server.sources[]`). `server.store` is already a
discriminated union (`kind: "filesystem"` today, future SQL/store backends
later), so the conversion should map old `store_root` to
`server.store.root` without inventing a parallel store field. Old MCP HTTP
metadata values such as `http`, `streamable-http`, `streamable_http`, and
`sse` should normalize into the neutral HTTP source transport while
preserving enough metadata for MCP/FastMCP compatibility. `sse` is legacy
protocol shape, but keep conversion support because FastMCP deployments may
still use it.
- Manual product smoke: run `wf-rpc-server --mcp-config ...`, point
`wf --url ...` at it, and capture real CLI/server UX gaps before adding
more architecture.
@@ -398,13 +398,23 @@ Next implementation slices should be:
transport-only. After `wf_config` can describe MCP sources, `wf-rpc-server
--config ...` should compose MCP-backed sources from neutral config and the
`--mcp-config` path can become deprecated/legacy.
3. Manual product smoke with the real CLI/server commands. Record UX/runtime
3. Legacy MCP config migration. Provide an explicit converter from old
`wf_mcp.config.json` into `WorkflowConfigFile`: `store_root` maps to
`server.store` (`StoreConfig` is already a discriminated union; currently
only `kind: "filesystem"` exists), and each legacy connection maps to a
`kind: "mcp"` source. Preserve `source_config_ownership` as the neutral
`ownership` field. Normalize old HTTP-like transport metadata
(`http`, `streamable-http`, `streamable_http`, `sse`) into the neutral HTTP
MCP source transport while preserving compatibility metadata where needed.
`sse` remains legacy/deprecated, but conversion support is intentional
because FastMCP can still expose it.
4. Manual product smoke with the real CLI/server commands. Record UX/runtime
gaps before broadening architecture.
4. Source registry apply/reload semantics. Registry mutation currently updates
5. Source registry apply/reload semantics. Registry mutation currently updates
desired persisted state; the next explicit decision is whether changes apply
only after restart, through an explicit reload/apply operation, or through
automatic live reconciliation. Prefer explicit reload/apply for v1.
5. Persisted resume across server restart. Rebuild the MCP-backed RPC server
6. Persisted resume across server restart. Rebuild the MCP-backed RPC server
from the same stores and prove interrupted runs resume from the stored
checkpoint and pinned dependency environment.
+4
View File
@@ -43,6 +43,10 @@ Prefer neutral workflow config for new MCP-backed servers:
```
`--mcp-config` is still accepted for legacy broker config files.
Future migration support should let users convert that legacy shape into the
neutral config above. The old `store_root` field maps to
`server.store: {"kind": "filesystem", "root": ...}`; old `connections[]` map to
`server.sources[]` entries with `kind: "mcp"`.
Start a JSON-RPC server backed by MCP broker config and MCP-capable sources: