Skip to content

refactor(11/12): update manifests, config, docs, and example projects#329

Merged
cameroncooke merged 3 commits intomainfrom
refactor/manifests-config-docs
Apr 10, 2026
Merged

refactor(11/12): update manifests, config, docs, and example projects#329
cameroncooke merged 3 commits intomainfrom
refactor/manifests-config-docs

Conversation

@cameroncooke
Copy link
Copy Markdown
Collaborator

Summary

This is PR 11 of 12 in a stacked PR series that decouples the rendering pipeline from MCP transport. Depends on PR 10 (boundary rewiring).

Updates all configuration files, YAML manifests, documentation, and example projects to reflect the rendering pipeline refactor. No behavioral code changes -- this is metadata, documentation, and project configuration.

Manifest YAML updates (28 files)

All tool manifests updated to reflect the simplified handler contract. Changes are consistent across all manifests:

  • Removed output format configuration that is now handled by the render session
  • Updated parameter descriptions where they referenced the old rendering model

New resource manifests

Added manifests/resources/ directory with resource manifest definitions that were previously inline.

Configuration

  • package.json + package-lock.json: Dependency updates and script changes
  • knip.json: Dead code analysis configuration for the new module structure
  • vitest.config.ts: Minor updates for new test paths
  • vitest.flowdeck.config.ts + vitest.snapshot.config.ts: New vitest configs for flowdeck integration tests and snapshot tests respectively

Documentation

New developer documentation explaining the rendering pipeline architecture:

  • RENDERING_PIPELINE.md: Architecture overview for contributors
  • RENDERING_PIPELINE_REFACTOR.md: Migration guide and decision log
  • QUERY_TOOL_FORMAT_SPEC.md: Specification for query tool output formatting
  • FIXTURE_DESIGNS.md: Snapshot test fixture design documentation
  • STRUCTURED_XCODEBUILD_EVENTS_PLAN.md: Design document for the xcodebuild event model
  • Updated ARCHITECTURE.md, TESTING.md, MANIFEST_FORMAT.md, TOOL_DISCOVERY_LOGIC.md

Example projects

Minor updates to example projects to work with the updated tool interfaces. Updated test files and project configuration.

Other

  • AGENTS.md: Updated project rules
  • New test infrastructure: test-helpers.ts, vitest-executor-safety.setup.ts
  • Build scripts updated: removed copy-build-assets.js (no longer needed), added benchmark and capture wrapper scripts

Stack navigation

  • PR 1-10/12: All code changes
  • PR 11/12 (this PR): Manifests, config, docs, examples
  • PR 12/12: Snapshot test fixtures and benchmarks

Test plan

  • npx vitest run passes
  • Manifest validation passes for all YAML files
  • Documentation renders correctly in GitHub
  • Example projects build successfully

Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 55a323e. Configure here.

@cameroncooke cameroncooke force-pushed the refactor/cli-daemon-mcp-boundaries branch from b91063e to e6d00fe Compare April 8, 2026 21:29
@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch from 55a323e to 22247c9 Compare April 8, 2026 21:29
@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch from b6e35ad to 0497670 Compare April 9, 2026 09:33
@cameroncooke cameroncooke force-pushed the refactor/cli-daemon-mcp-boundaries branch from 18de083 to 8096037 Compare April 9, 2026 09:33
@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch from 0497670 to dc62323 Compare April 9, 2026 10:39
@cameroncooke cameroncooke force-pushed the refactor/cli-daemon-mcp-boundaries branch 2 times, most recently from a3c5515 to f79a1f8 Compare April 9, 2026 10:56
@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch from dc62323 to 3cf09d1 Compare April 9, 2026 10:56
@cameroncooke cameroncooke force-pushed the refactor/cli-daemon-mcp-boundaries branch from f79a1f8 to 7ba6db8 Compare April 9, 2026 11:22
@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch 2 times, most recently from 1bc80ad to 8dfeb16 Compare April 9, 2026 11:31
@cameroncooke cameroncooke force-pushed the refactor/cli-daemon-mcp-boundaries branch from 7ba6db8 to 34ec659 Compare April 9, 2026 11:31
@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch from 8dfeb16 to d9a8caa Compare April 9, 2026 11:48
@cameroncooke cameroncooke force-pushed the refactor/cli-daemon-mcp-boundaries branch from 34ec659 to b3c094d Compare April 9, 2026 11:48
@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch from d9a8caa to 6ea4df8 Compare April 9, 2026 12:03
@cameroncooke cameroncooke force-pushed the refactor/cli-daemon-mcp-boundaries branch from 13b58c1 to b1364d7 Compare April 9, 2026 14:43
@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch from 6ea4df8 to 86b945d Compare April 9, 2026 14:43
@cameroncooke cameroncooke force-pushed the refactor/cli-daemon-mcp-boundaries branch from b1364d7 to b0455f7 Compare April 9, 2026 15:15
@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch from 86b945d to 546ad1c Compare April 9, 2026 15:15
@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch from 546ad1c to 81d1e82 Compare April 9, 2026 15:40
@cameroncooke cameroncooke force-pushed the refactor/cli-daemon-mcp-boundaries branch from 2f31ed2 to 62a5be6 Compare April 9, 2026 20:53
Comment on lines +418 to +428
const waitForStop = this.waitForEvent('stopped', timeoutMs);

await this.request<{ threadId: number }, Record<string, never>>(
'pause',
{ threadId: thread.id },
{ timeoutMs },
);

await waitForStop;
this.executionState = { status: 'stopped', threadId: thread.id };
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: If the request('pause') call fails in pauseExecution, the abandoned waitForEvent promise can cause an unhandled rejection, crashing the process.
Severity: HIGH

Suggested Fix

Wrap the request and waitForEvent calls in a try...finally block. In the finally block, ensure the waitForEvent promise is either awaited with a catch or otherwise handled to prevent an unhandled rejection if the request call fails.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: src/utils/debugger/backends/dap-backend.ts#L416-L428

Potential issue: In the `pauseExecution` function, a call is made to
`this.request('pause', ...)`. If this request fails and throws an error, the `catch`
block will handle it, but the promise returned by `waitForEvent('stopped', ...)` is left
pending. This `waitForEvent` call has an internal timeout. When this timeout is
eventually reached, it will reject the promise. Since nothing is awaiting or handling
this rejection, it becomes an unhandled promise rejection, which can terminate the
Node.js process.

@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch from aa949ff to 3c0a6bb Compare April 10, 2026 07:36
@cameroncooke cameroncooke force-pushed the refactor/cli-daemon-mcp-boundaries branch from 62a5be6 to a089cf9 Compare April 10, 2026 07:36
Copy link
Copy Markdown
Collaborator Author

cameroncooke commented Apr 10, 2026

Merge activity

  • Apr 10, 12:18 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Apr 10, 12:33 PM UTC: Graphite rebased this pull request as part of a merge.
  • Apr 10, 12:33 PM UTC: @cameroncooke merged this pull request with Graphite.

@cameroncooke cameroncooke changed the base branch from refactor/cli-daemon-mcp-boundaries to graphite-base/329 April 10, 2026 12:30
@cameroncooke cameroncooke changed the base branch from graphite-base/329 to main April 10, 2026 12:31
Internal research notes that shouldn't be committed to the repository.
Changed from io.sentry.calculatorapp (which collides with the iOS
Calculator example) to io.sentry.MCPTest.macOS.
@cameroncooke cameroncooke force-pushed the refactor/manifests-config-docs branch from 3c0a6bb to ab9afb8 Compare April 10, 2026 12:32
@cameroncooke cameroncooke merged commit e18c96c into main Apr 10, 2026
11 of 12 checks passed
@cameroncooke cameroncooke deleted the refactor/manifests-config-docs branch April 10, 2026 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant