oh noes
This commit is contained in:
@@ -404,6 +404,11 @@ config_reloaded
|
|||||||
- [ ] Do not delete compatibility modes until tests cover every important
|
- [ ] Do not delete compatibility modes until tests cover every important
|
||||||
surface.
|
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
|
## Manual Verification Checklist
|
||||||
|
|
||||||
- [ ] Codex can list upstream tools.
|
- [ ] 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.
|
||||||
@@ -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
|
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).
|
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
|
## Future Extraction
|
||||||
|
|
||||||
If this becomes multiple distributions, likely split points are:
|
If this becomes multiple distributions, likely split points are:
|
||||||
|
|||||||
Reference in New Issue
Block a user