feat(cli): Symfony tools: namespace + rename MCP tool focus_config → focus_tools#81
Merged
Conversation
- Replace `focus filter` with `focus config tools hide/show/pin/unpin/list/clear` - New config.ts with full tools.hidden + tools.alwaysLoad management - Add --pin=<patterns> arg to `focus start` for per-launch alwaysLoad - MCP: rename focus_filter → focus_config with tools.* action namespace - README updated to reflect new command surface Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- isHiddenTool now checks `focus_config` (not `focus_tools`) for immunity - Dispatcher handles `focus_config` (not `focus_tools`) tool calls - Remove src/commands/filter.ts (superseded by config.ts) - Update changeset to reflect final feature scope - Remove dead `runTools` function from focus.ts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All references to the MCP tool and immunity check now consistently use focus_config — source, tests, and docs aligned. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add tools:hide/show/pin/unpin/list/clear canonical commands - Add catalog:list/add/remove canonical aliases - Legacy filter hide/show/list/clear kept as permanent aliases (no deprecation) - MCP tool focus_config → focus_tools (actions: hide/show/pin/unpin/list/clear) - focus_tools is immune to hidden lists (deadlock protection) - 10 new tests for focus_tools MCP tool actions + immunity Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
51591b3 to
b98f06a
Compare
This was referenced Apr 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
tools:namespace commands (Symfony Console naming style):focus tools:hide <pattern>— hide a tool/glob from MCP clientsfocus tools:show <pattern>— unhidefocus tools:pin <pattern>— mark as_meta.anthropic/alwaysLoad: truefocus tools:unpin <pattern>— remove from alwaysLoadfocus tools:list— show hidden + alwaysLoad listsfocus tools:clear— reset both listsfilter hide,filter show,filter list,filter clearcatalog:namespace aliases added:catalog:list,catalog:add,catalog:remove(alongside existingcatalog list/add/remove)focus_config→focus_tools(PR just merged, not yet released — clean rename with no breaking change)hide,show,pin,unpin,list,clear(instead oftools.hideetc.)focus_toolsis immune to hidden lists (deadlock protection)focus_toolsMCP tool: all actions, error cases, bench mode immunityArchitecture note
The config logic (
tools.hidden/tools.alwaysLoadmanagement) currently lives incli/src/commands/config.ts. A follow-up PR will migrate this to@focus-mcp/coreonce core PR #51 (feat/tool-config) is merged and published as core@1.3.0.TODO follow-up (out of scope for this PR)
doctor.ts(420 lines) has domain logic in CLI — candidate for extraction to coreconfig.tslogic →@focus-mcp/coreafter core@1.3.0 published (tracked in feat(core): add tool-config module for tool visibility management core#51)Depends on
focus-mcp/corePR fix(cli): unify center.lock parser + --force catalog remove + schema version (1.4.0) #51 (feat/tool-config) — addsisToolHidden,shouldAlwaysLoadetc. to core. This CLI PR can be merged independently (uses local config.ts for now), but should ideally follow after core@1.3.0 is published.Test plan
tools:hide,tools:show,tools:pin,tools:unpin,tools:list,tools:cleardispatch correctlyfilter hide/show/list/clear(legacy aliases) still workcatalog:list/add/removedispatch correctlyfocus_toolsMCP tool: all 6 actions tested (hide/show/pin/unpin/list/clear)focus_toolsimmune to--hide=focus_*focus_toolsaccessible in bench mode🤖 Generated with Claude Code