This commit is contained in:
lda
2026-05-16 18:23:15 +07:00 Verified
parent cfca2547d5
commit 8987aceb9d
3 changed files with 155 additions and 0 deletions
@@ -404,6 +404,11 @@ config_reloaded
- [ ] Do not delete compatibility modes until tests cover every important
surface.
> **Superseded on 2026-05-16:** the compatibility period is now considered long
> enough. The current plan is to retire the public broker/proxy mode split in
> [`2026-05-16-retire-legacy-mcp-modes.md`](2026-05-16-retire-legacy-mcp-modes.md)
> while keeping the useful internal implementation boundaries.
## Manual Verification Checklist
- [ ] Codex can list upstream tools.
@@ -0,0 +1,144 @@
# Retire Legacy MCP Modes Plan
> **Status:** current execution plan for the next cleanup pass.
## Goal
Make **unified mode** the only public MCP server mode exposed by `wf-mcp`.
`broker` mode and `proxy` mode were useful while the unified surface was being
built, but keeping all three as public launch modes now creates the wrong mental
model:
- broker mode suggests local workflow/admin tools are a separate product surface
- proxy mode suggests upstream projection is a separate product surface
- unified mode is already the real target: one server that exposes local
capabilities and proxied upstream capabilities together
The public product should have one server mode. The implementation may still
have multiple internal concern packages.
## Existing Documentation
This replaces the migration stance in
[`2026-05-12-unified-mcp-surface.md`](2026-05-12-unified-mcp-surface.md),
which said to keep broker/proxy as compatibility modes until coverage existed.
That compatibility period is now considered complete enough to end.
Related documents already cover adjacent plans:
- [`../../wf_mcp_architecture.md`](../../wf_mcp_architecture.md)
- concern boundaries and proxy mount lifecycle
- [`../../wf_mcp_capability_sources.md`](../../wf_mcp_capability_sources.md)
- source model, admin/workflow exposure, source inventory
- [`../../workflow_artifacts.md`](../../workflow_artifacts.md)
- artifacts, deployments, stable workflow control surface
- [`../../wf_mcp_proxy_reality_and_roadmap.md`](../../wf_mcp_proxy_reality_and_roadmap.md)
- what the proxy does well today and what should remain upstream-dependent
- [`../../mcp_protocol_proxy_inventory.md`](../../mcp_protocol_proxy_inventory.md)
- observed protocol behavior and relay gaps
No other major active plan was found to be undocumented while preparing this
pass.
## What Gets Retired
### Public CLI modes
Remove the public `serve --mode broker` and `serve --mode proxy` choices.
After this pass:
- `wf-mcp serve` runs the unified surface
- users no longer choose among three product modes
- docs should describe one server behavior, not a mode matrix
### Public framing
Stop presenting broker/proxy as user-facing alternatives in docs and help text.
Where historical explanation is useful, call them legacy migration surfaces.
### Compatibility-only tests and docs
Delete or rewrite tests whose only purpose is to prove the old public mode split.
Keep behavior tests for the underlying capabilities when those behaviors still
exist through unified mode.
## What Stays
### Internal concern packages
Do **not** flatten the codebase just because the public mode split disappears.
These packages still represent useful implementation boundaries:
- `wf_mcp.broker`
- `wf_mcp.transparent_proxy`
- `wf_mcp.server`
`transparent_proxy` is already partly a legacy package name, but the code inside
it still owns real proxy-mounting mechanics used by unified mode. Rename or
re-home that code only as a later cleanup if the package name becomes a real
source of confusion.
### Shared services
Keep the service/config/store/runtime objects that unified mode already uses.
This pass is about removing duplicate **entrypoints**, not rewriting the
underlying architecture.
### Stable local capability names
Keep the source model and namespaces:
- `wf.workflow.*`
- `wf.admin.*`
- `wf.std.*`
- `wf.mcp.*`
- `<connection_id>.*`
The cleanup should reduce surfaces, not churn the capability vocabulary.
## Expected Code Changes
1. Simplify CLI mode selection so `serve` has one public behavior.
2. Remove or privatize old broker/proxy server launch functions that only exist
for the retired public modes.
3. Collapse docs/help text that still describe three user-facing modes.
4. Keep implementation reuse through the existing unified server path.
5. Update tests so they assert unified behavior directly instead of branching on
legacy mode names.
## Non-Goals For This Pass
- No full rewrite of the proxy subsystem.
- No attempt to solve generic upstream notification relay.
- No safe unmount implementation for retired FastMCP providers.
- No renaming of every legacy internal package just to match the new public
shape.
- No workflow artifact redesign.
Those topics already have separate docs and should stay separate.
## Success Criteria
- `wf-mcp serve` has one public MCP server behavior.
- No public docs imply that broker/proxy are still supported product modes.
- Unified mode continues to expose:
- proxied upstream capabilities
- stable local workflow tools
- optional admin tools
- The test suite passes with the old public mode split removed.
- Remaining roadmap docs still point to the real unresolved work instead of
making the reader rediscover why unified mode exists.
## Follow-On Work After This Pass
Once the public surface is singular, the next useful cleanup is not more mode
work. It is easier-to-explain capability projection:
1. keep improving source inventory and admin visibility
2. continue documenting proxy relay limitations explicitly
3. build workflow-facing wrapper artifacts on top of stable sources
That keeps the system moving toward a clean platform without pretending the
proxy layer is already a perfect MCP relay.
+6
View File
@@ -101,6 +101,12 @@ The current practical proxy roadmap, including which FastMCP gaps are worth
working around locally and which should stay upstream-dependent for now, lives
in [`wf_mcp_proxy_reality_and_roadmap.md`](wf_mcp_proxy_reality_and_roadmap.md).
The public MCP mode split is now being retired. The current execution plan is
[`superpowers/plans/2026-05-16-retire-legacy-mcp-modes.md`](superpowers/plans/2026-05-16-retire-legacy-mcp-modes.md):
`broker` and `proxy` are legacy public launch surfaces, while unified behavior
is the intended product surface. Internal concern packages remain useful even
after the public mode choices disappear.
## Future Extraction
If this becomes multiple distributions, likely split points are: