Skip to content

Comments

fix(doctor): Improve representativeness and non-redacted opt-in#238

Merged
cameroncooke merged 4 commits intomainfrom
fix/doctor-redaction-mode
Feb 23, 2026
Merged

fix(doctor): Improve representativeness and non-redacted opt-in#238
cameroncooke merged 4 commits intomainfrom
fix/doctor-redaction-mode

Conversation

@cameroncooke
Copy link
Collaborator

Improve doctor output so it reflects current XcodeBuildMCP architecture and is safer to share by default.

This replaces legacy plugin-focused reporting with manifest-backed tool inventory/workflow information, adds default redaction for sensitive values and project-identifying paths, and introduces explicit opt-in non-redacted output for users who need full diagnostics (nonRedacted for MCP doctor and --non-redacted for the CLI doctor).

I also aligned dependency checks with current behavior by avoiding side-effecting xcodemake checks during diagnostics, added capability-level checks used by active workflows, and updated generated tool docs plus troubleshooting/bridge docs to match the new doctor behavior.

Included in this PR is the investigation report that documents the representativeness gaps, root causes, and rationale for these changes.

Align doctor output with current manifest and workflow architecture by
removing legacy plugin reporting and replacing it with manifest-backed
tool inventory summaries.

Add default PII/path redaction to doctor output and introduce explicit
opt-in non-redacted mode for both MCP doctor and the doctor CLI via
nonRedacted/--non-redacted.

Make dependency probing safer and more accurate by avoiding side effects
in xcodemake checks and adding capability-level checks used by current
tooling paths.

Update generated tool docs and troubleshooting/bridge docs to reflect
the new doctor behavior and options.

Co-Authored-By: Claude <noreply@anthropic.com>
@pkg-pr-new
Copy link

pkg-pr-new bot commented Feb 22, 2026

Open in StackBlitz

npm i https://pkg.pr.new/getsentry/XcodeBuildMCP/xcodebuildmcp@238

commit: 69914da

Replace the extension-boundary regex with an explicit trailing-character
check so CodeQL does not interpret the sequence as a backspace escape.

Behavior is unchanged: project names are still redacted when they appear
before known Xcode file extensions.

Co-Authored-By: Claude <noreply@anthropic.com>
@cameroncooke cameroncooke marked this pull request as ready for review February 22, 2026 20:11
Include xcodeToolsBridge in the doctorInfo payload before rendering so
bridgePath, lastError, and unavailable reasons pass through the same
sanitizeValue redaction path as the rest of the doctor report.

This closes a gap where bridge diagnostics were interpolated directly
into output and could bypass default redaction.

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
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 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

Treat  as a valid delimiter when redacting project-name path components
so PATH entries like /Users/me/SecretProject:/usr/bin do not leak the
project directory name in default redacted doctor output.

This preserves existing behavior for nested paths while covering the
PATH root-component case reported in review.

Co-Authored-By: Claude <noreply@anthropic.com>
@cameroncooke cameroncooke merged commit 940dd98 into main Feb 23, 2026
10 checks passed
@cameroncooke cameroncooke deleted the fix/doctor-redaction-mode branch February 23, 2026 11:02
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