refactor(11/12): update manifests, config, docs, and example projects#329
refactor(11/12): update manifests, config, docs, and example projects#329cameroncooke wants to merge 1 commit intorefactor/cli-daemon-mcp-boundariesfrom
Conversation
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.
Reviewed by Cursor Bugbot for commit 55a323e. Configure here.
| ); | ||
| MARKETING_VERSION = 1.0; | ||
| PRODUCT_BUNDLE_IDENTIFIER = io.sentry.MCPTest; | ||
| PRODUCT_BUNDLE_IDENTIFIER = io.sentry.calculatorapp; |
There was a problem hiding this comment.
macOS MCPTest reuses iOS Calculator bundle identifier
Medium Severity
The macOS MCPTest app's PRODUCT_BUNDLE_IDENTIFIER was updated to io.sentry.calculatorapp. This bundle ID is already in use by the iOS Calculator example app. Sharing the same bundle ID across two distinct example apps can lead to issues with app identification, automation, snapshot tests, and Keychain collisions.
Reviewed by Cursor Bugbot for commit 55a323e. Configure here.
| | `build_run_macos.ts` | 242 | ~30-40 lines (launch/bundleid/pid blocks) | | ||
| | Step tools (6 files) | ~705 total | ~50-80 lines (delegating to shared primitives) | | ||
|
|
||
| Total: ~260-350 lines of duplicated logic consolidated into ~100-150 lines of shared step primitives. |
There was a problem hiding this comment.
Internal research notes committed to repository
Low Severity
The local-research/ directory contains four internal investigation documents with git commit hashes, WIP notes, TODO-style remaining cleanup items, and developer-specific analysis. These read as personal working notes (e.g., "Investigation Log", "Phase 1 — Identifying the coupling", "Remaining Cleanup (technical debt)") rather than project documentation. The directory is not in .gitignore and isn't referenced by any project docs or the PR description.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 55a323e. Configure here.
b91063e to
e6d00fe
Compare
55a323e to
22247c9
Compare
| await mkdir(logDir, { recursive: true }); | ||
| await createWrapperScript(wrapperDir); | ||
|
|
||
| const child = spawn(command[0]!, command.slice(1), { |
There was a problem hiding this comment.
Bug: The script crashes if no arguments are provided after -- because it attempts to access command[0] on an empty array, which is undefined.
Severity: MEDIUM
Suggested Fix
Add a check to verify that the command array is not empty before accessing command[0]. If it is empty, print the usage information and exit gracefully instead of attempting to execute the spawn command.
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: scripts/capture-xcodebuild-wrapper.ts#L91
Potential issue: When the script is invoked with no arguments following '--' (e.g., `npm
run capture:xcodebuild --`), the `command` array becomes empty. The subsequent call to
`spawn(command[0]!, ...)` at line 91 attempts to access `undefined` because of the
non-null assertion `!`, causing a runtime crash instead of showing the intended usage
message.
Did we get this right? 👍 / 👎 to inform future reviews.
|
|
||
| const text = chunk.toString(); | ||
| stdoutChunks.push(text); | ||
| normalizedStdout += normalizeTerminalTranscript(text); |
There was a problem hiding this comment.
Bug: Processing streamed output in chunks can merge lines across chunk boundaries, breaking regex matching for benchmark milestones and resulting in incorrect metrics.
Severity: MEDIUM
Suggested Fix
Buffer the incoming data chunks and process the stream line-by-line instead of chunk-by-chunk. This ensures that normalizeTerminalTranscript and any subsequent pattern matching operate on complete lines, preventing milestone markers from being broken apart.
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: scripts/benchmark-simulator-test.ts#L140
Potential issue: When processing streamed output, the `normalizeTerminalTranscript`
function is called on each data chunk. This function joins lines without a trailing
newline. If a log line containing a benchmark milestone (e.g., `/🛠️\s*Compiling/`) is
split across two chunks, the last part of the line from the first chunk and the first
part from the next are concatenated. This breaks the pattern matching, leading to
incorrect metrics.
Did we get this right? 👍 / 👎 to inform future reviews.


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:
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 changesknip.json: Dead code analysis configuration for the new module structurevitest.config.ts: Minor updates for new test pathsvitest.flowdeck.config.ts+vitest.snapshot.config.ts: New vitest configs for flowdeck integration tests and snapshot tests respectivelyDocumentation
New developer documentation explaining the rendering pipeline architecture:
RENDERING_PIPELINE.md: Architecture overview for contributorsRENDERING_PIPELINE_REFACTOR.md: Migration guide and decision logQUERY_TOOL_FORMAT_SPEC.md: Specification for query tool output formattingFIXTURE_DESIGNS.md: Snapshot test fixture design documentationSTRUCTURED_XCODEBUILD_EVENTS_PLAN.md: Design document for the xcodebuild event modelARCHITECTURE.md,TESTING.md,MANIFEST_FORMAT.md,TOOL_DISCOVERY_LOGIC.mdExample projects
Minor updates to example projects to work with the updated tool interfaces. Updated test files and project configuration.
Other
AGENTS.md: Updated project rulestest-helpers.ts,vitest-executor-safety.setup.tscopy-build-assets.js(no longer needed), added benchmark and capture wrapper scriptsStack navigation
Test plan
npx vitest runpasses