Conversation
…-time Also renames describe-ui tool to snapshot-ui tool.
commit: |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| vi.mock('../../../../utils/tool-registry.ts', () => ({ | ||
| applyWorkflowSelection: vi.fn(), | ||
| getRegisteredWorkflows: vi.fn(), | ||
| })); |
There was a problem hiding this comment.
Vitest mocking violates testing rules
High Severity · Bugbot Rules
The manage_workflows.test.ts file uses vi.mock, vi.fn, and vi.mocked, which violates the project's testing rules. The rules explicitly ban Vitest mocking (vi.mock, vi.fn, vi.spyOn, .mock*) and require using createMockExecutor / createMockFileSystemExecutor instead. The test mocks applyWorkflowSelection and getRegisteredWorkflows from tool-registry.ts using the forbidden patterns.
Additional Locations (1)
There was a problem hiding this comment.
Internal mocking is fine, executors are for external dependency mocking
| } | ||
|
|
||
| export async function updateWorkflows(workflowNames?: string[]): Promise<void> { | ||
| await applyWorkflowSelection(workflowNames ?? []); |
There was a problem hiding this comment.
Unused exported updateWorkflows function
Low Severity
The updateWorkflows function is exported from tool-registry.ts but never called anywhere in the codebase. It's functionally identical to calling applyWorkflowSelection directly, which is what the manage_workflows tool and registerWorkflows function already do. This dead export adds confusion without providing value.
This PR reduces token usage exposed to LLMs by shortening tool descriptions and schema parameter descriptions. It also renames a small set of tools to reduce ambiguity and improve tool-calling accuracy.
Adds a new
workflow-discoveryworkflow with a singlemanage-workflowstool to enable or disable workflows (and their tools) at runtime, allowing agents to load capabilities progressively instead of up front.By default,
workflow-discoveryis only auto-included whenXCODEBUILDMCP_EXPERIMENTAL_WORKFLOW_DISCOVERY=true. It can also be explicitly enabled by listingworkflow-discoveryinXCODEBUILDMCP_ENABLED_WORKFLOWS. This gating exists because most clients don’t yet support MCPnotifications/tools/list_changed, which is required for agent harnesses to re-query the tool list after changes. The plan is to remove the flag once client support is widespread.Note
Introduces runtime workflow management and streamlines tool interfaces to reduce token footprint and improve tool-calling.
workflow-discoveryworkflow withmanage_workflows; auto-included only whenXCODEBUILDMCP_EXPERIMENTAL_WORKFLOW_DISCOVERY=trueui-automation; replacedescribe_uiwithsnapshot_ui; update generated loaders and docs.describe()strings across debugging, device, simulator, macOS, logging, discovery, scaffolding, and session-management toolsbundleId,platform,derivedDataPath,preferXcodebuild) from public schemasscripts/analysis/tools-schema-audit.tsandtools-clischema|auditcommand with--jsongenerated-pluginsWritten by Cursor Bugbot for commit a4cb731. This will update automatically on new commits. Configure here.