Compare commits

...

6 Commits

Author SHA1 Message Date
Claude
1e1f4306d1 Remove TypeScript check script, keep only GritQL plugin
The simpler GritQL approach is sufficient for catching direct
<Box> inside <Text> nesting mistakes.
2025-12-19 17:34:03 +00:00
Claude
d5912a011d Add lint tooling to prevent <Box> inside <Text> violations
Add two lint mechanisms to catch the Ink error "<Box> can't be nested
inside <Text> component" at build/lint time rather than runtime:

1. Biome GritQL plugin (no-box-in-text.grit) - for Biome v2+ users
2. Build-time check script (check-box-in-text.ts) - standalone AST check

These help prevent the runtime error that occurs when Box components
are incorrectly nested inside Text components in Ink applications.
2025-12-19 04:43:37 +00:00
GitHub Actions
52115592ba chore: Update CHANGELOG.md 2025-12-19 00:59:25 +00:00
Franklin Volcic
5d2df70860 Merge pull request #14527 from anthropics/fvolcic/code-review-updates
Improve code review inline comments
2025-12-18 13:52:59 -08:00
Franklin Volcic
b8a2ffb38f Require committable suggestions to be complete
Suggestions must include all necessary changes. If a fix requires
additional work elsewhere (e.g., renaming a variable requires updating
usages), use the Claude Code prompt format instead of a partial suggestion.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 13:30:25 -08:00
Franklin Volcic
9fd556d947 Skip summary comment when posting inline comments
Only post a summary comment when no issues are found. When issues
exist, post inline comments directly without a redundant summary block.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 13:24:03 -08:00
3 changed files with 45 additions and 37 deletions

View File

@@ -1,5 +1,17 @@
# Changelog
## 2.0.73
- Added clickable `[Image #N]` links that open attached images in the default viewer
- Added alt-y yank-pop to cycle through kill ring history after ctrl-y yank
- Added search filtering to the plugin discover screen (type to filter by name, description, or marketplace)
- Added support for custom session IDs when forking sessions with `--session-id` combined with `--resume` or `--continue` and `--fork-session`
- Fixed slow input history cycling and race condition that could overwrite text after message submission
- Improved `/theme` command to open theme picker directly
- Improved theme picker UI
- Improved search UX across resume session, permissions, and plugins screens with a unified SearchBox component
- [VSCode] Added tab icon badges showing pending permissions (blue) and unread completions (orange)
## 2.0.72
- Added Claude in Chrome (Beta) feature that works with the Chrome extension (https://claude.ai/chrome) to let you control your browser directly from Claude Code
@@ -28,7 +40,6 @@
- Added Enter key to accept and submit prompt suggestions immediately (tab still accepts for editing)
- Added wildcard syntax `mcp__server__*` for MCP tool permissions to allow or deny all tools from a server
- Added auto-update toggle for plugin marketplaces, allowing per-marketplace control over automatic updates
- Added `plan_mode_required` spawn parameter for teammates to require plan approval before implementing changes
- Added `current_usage` field to status line input, enabling accurate context window percentage calculations
- Fixed input being cleared when processing queued commands while the user was typing
- Fixed prompt suggestions replacing typed input when pressing Tab

View File

@@ -52,25 +52,22 @@ Note: Still review Claude generated PR's.
6. Filter out any issues that were not validated in step 5. This step will give us our list of high signal issues for our review.
7. Post summary comment FIRST using `gh pr comment` (if `--comment` argument is provided):
- Total number of issues found
- Brief one-line summary of each issue (no "Bug:" prefix)
- Or if no issues: "No issues found. Checked for bugs and CLAUDE.md compliance."
7. If issues were found, skip to step 8 to post inline comments directly.
When writing your comment, follow these guidelines:
a. Keep your output brief
b. Avoid emojis
c. Link and cite relevant code, files, and URLs for each issue
d. When citing CLAUDE.md violations, you MUST quote the exact text from CLAUDE.md that is being violated (e.g., CLAUDE.md says: "Use snake_case for variable names")
If NO issues were found, post a summary comment using `gh pr comment` (if `--comment` argument is provided):
"No issues found. Checked for bugs and CLAUDE.md compliance."
8. THEN post inline comments for each issue using `mcp__github_inline_comment__create_inline_comment`:
8. Post inline comments for each issue using `mcp__github_inline_comment__create_inline_comment`:
- `path`: the file path
- `line` (and `startLine` for ranges): select the buggy lines so the user sees them
- `body`: Brief description of the issue (no "Bug:" prefix). For small fixes (up to 5 lines changed), include a committable suggestion:
```suggestion
corrected code here
```
For larger fixes (6+ lines or structural changes), do NOT use suggestion blocks. Instead:
**Suggestions must be COMPLETE.** If a fix requires additional changes elsewhere (e.g., renaming a variable requires updating all usages), do NOT use a suggestion block. The author should be able to click "Commit suggestion" and have a working fix - no followup work required.
For larger fixes (6+ lines, structural changes, or changes spanning multiple locations), do NOT use suggestion blocks. Instead:
1. Describe what the issue is
2. Explain the suggested fix at a high level
3. Include a copyable prompt for Claude Code that the user can use to fix the issue, formatted as:
@@ -93,40 +90,18 @@ Notes:
- Use gh CLI to interact with GitHub (e.g., fetch pull requests, create comments). Do not use web fetch.
- Create a todo list before starting.
- You must cite and link each issue (e.g., if referring to a CLAUDE.md, include a link to it).
- For your final comment, follow the following format precisely (assuming for this example that you found 3 issues):
- You must cite and link each issue in inline comments (e.g., if referring to a CLAUDE.md, include a link to it).
- If no issues are found, post a comment with the following format:
---
## Code review
Found 3 issues:
1. <brief description of bug> (CLAUDE.md says: "<exact quote from CLAUDE.md>")
<link to file and line with full sha1 + line range for context, eg. https://github.com/anthropics/claude-code/blob/1d54823877c4de72b2316a64032a54afc404e619/README.md#L13-L17>
2. <brief description of bug> (some/other/CLAUDE.md says: "<exact quote from CLAUDE.md>")
<link to file and line with full sha1 + line range for context>
3. <brief description of bug> (bug due to <file and code snippet>)
<link to file and line with full sha1 + line range for context>
---
- Or, if you found no issues:
---
## Auto code review
No issues found. Checked for bugs and CLAUDE.md compliance.
---
- When linking to code, follow the following format precisely, otherwise the Markdown preview won't render correctly: https://github.com/anthropics/claude-code/blob/c21d3c10bc8e898b7ac1a2d745bdc9bc4e423afe/package.json#L10-L15
- When linking to code in inline comments, follow the following format precisely, otherwise the Markdown preview won't render correctly: https://github.com/anthropics/claude-code/blob/c21d3c10bc8e898b7ac1a2d745bdc9bc4e423afe/package.json#L10-L15
- Requires full git sha
- You must provide the full sha. Commands like `https://github.com/owner/repo/blob/$(git rev-parse HEAD)/foo/bar` will not work, since your comment will be directly rendered in Markdown.
- Repo name must match the repo you're code reviewing

View File

@@ -0,0 +1,22 @@
// Biome GritQL Plugin: Prevent <Box> from being nested inside <Text>
// This catches the Ink error: "<Box> can't be nested inside <Text> component"
language js;
// Match Text elements that contain Box children (direct nesting)
`<Text$_>$children</Text>` where {
$children <: contains `<Box$_>$_</Box>`,
register_diagnostic(
span = $children,
message = "<Box> can't be nested inside <Text> component. Use <Box> as a sibling or wrap <Text> inside <Box> instead."
)
}
// Also match self-closing Box inside Text
`<Text$_>$children</Text>` where {
$children <: contains `<Box$_ />`,
register_diagnostic(
span = $children,
message = "<Box> can't be nested inside <Text> component. Use <Box> as a sibling or wrap <Text> inside <Box> instead."
)
}