Skip to content

Conversation

@nearestnabors
Copy link
Contributor

@nearestnabors nearestnabors commented Jan 21, 2026

Summary

  • Fix "copilot-studio"copilot_studio in _meta.tsx to match the expected directory naming convention

Test plan

  • Verify the MCP clients navigation renders correctly
  • Verify the Copilot Studio page is accessible

🤖 Generated with Claude Code


Note

Introduces automated validation to prevent broken sidebar/navigation entries from _meta.tsx files.

  • New scripts/check-meta-keys.ts: parses meta objects, ignores special keys/external links, suggests similar names, and exits non-zero on invalid keys
  • Integrates validator in .husky/pre-commit (runs pnpm check-meta --staged-only when _meta.tsx changes and blocks commits on failures)
  • Adds check-meta npm script in package.json
  • Regenerates public/llms.txt (updated SHA and Copilot Studio doc link)

Written by Cursor Bugbot for commit ba0d97e. This will update automatically on new commits. Configure here.

Change "copilot-studio" to "copilot_studio" to match the expected
directory naming convention.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@vercel
Copy link

vercel bot commented Jan 21, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
docs Ready Ready Preview, Comment Jan 21, 2026 1:32am

Request Review

cursor[bot]

This comment was marked as outdated.

Changed copilot_studio to copilot-studio to match the key used in mcp-client-grid.tsx. This fixes the card rendering issue where the Copilot Studio card was not displaying in the MCP clients grid.
@cursor
Copy link

cursor bot commented Jan 21, 2026

Bugbot Autofix resolved the bug found in the latest run.

  • ✅ Fixed: Key mismatch breaks Copilot Studio card rendering
    • Changed the meta key from copilot_studio to copilot-studio to match the key used in mcp-client-grid.tsx, restoring card rendering.

nearestnabors and others added 3 commits January 21, 2026 01:24
- Add scripts/check-meta-keys.ts to validate that _meta.tsx keys match
  sibling directories or page files
- Add pnpm check-meta script command
- Add pre-commit hook to validate staged _meta.tsx files
- Skips special keys (*, index, ---), external links (href), and separators
- Remove orphaned copilot_studio key (directory doesn't exist)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move page from guides/tool-calling/mcp-clients/ to get-started/mcp-clients/
- Add copilot-studio entry to _meta.tsx

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@nearestnabors nearestnabors merged commit bdb8de6 into main Jan 21, 2026
8 checks passed
Copy link

@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 3 potential issues.

Bugbot Autofix is ON. A Cloud Agent has been kicked off to fix the reported issues.

return errors;
}

const content = readFileSync(filePath, "utf-8");
Copy link

Choose a reason for hiding this comment

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

Pre-commit validates working directory, not staged content

Medium Severity

When --staged-only mode is used by the pre-commit hook, validateMetaFile reads file content using readFileSync(filePath) which reads from the working directory rather than the git staging area. If a user edits a _meta.tsx file after staging (or uses partial staging), the hook validates the working directory version instead of what's actually being committed. This could allow invalid meta keys to be committed if the working directory version is valid but the staged version is not.

Fix in Cursor Fix in Web

state.collectingKey = false;
}
state.index += 1;
return true;
Copy link

Choose a reason for hiding this comment

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

Parser drops quote characters inside quoted strings

Low Severity

The handleStringBoundary function incorrectly handles quote characters that appear inside a string of the opposite quote type. When parsing a double-quoted key containing an apostrophe (e.g., "what's-new"), encountering the ' causes the function to return true without adding the character to currentKey, since neither the "entering string" nor "exiting string" branch matches. This drops the character, causing the key to be parsed as whats-new instead of what's-new, leading to false validation failures.

Fix in Cursor Fix in Web


handleKeyParsing(content, char, state);
state.index += 1;
}
Copy link

Choose a reason for hiding this comment

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

Parser extracts keys from JavaScript comments

Low Severity

The parseNextChar function handles strings, template literals, and braces, but has no logic to skip JavaScript comments (// or /* */). If a _meta.tsx file contains a commented-out key like // "old-key": "Title", the parser will still extract "old-key" and attempt to validate it against the filesystem. This causes false positive validation failures for files with commented code, producing confusing error messages about keys that aren't actually in use.

Fix in Cursor Fix in Web

@cursor
Copy link

cursor bot commented Jan 21, 2026

Bugbot Autofix resolved all 3 bugs found in the check-meta-keys script.

  • ✅ Fixed: Pre-commit validates working directory, not staged content
    • Modified validateMetaFile to read from git staging area using 'git show :0:' when in staged-only mode.
  • ✅ Fixed: Parser drops quote characters inside quoted strings
    • Fixed handleStringBoundary to only return true when entering/exiting strings, allowing opposite-type quotes to be processed as content.
  • ✅ Fixed: Parser extracts keys from JavaScript comments
    • Added comment detection and skipping logic in parseNextChar with skipLineComment and skipBlockComment helper functions.

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.

4 participants