Compare commits

..

1 Commits

Author SHA1 Message Date
Claude
4e52b7ac21 docs: Add bug report for VSCode extension installation regression
Documents the "1: 1" error that occurs when using /ide command
in Homespace environments. The error appears to be caused by
incorrect parsing of subprocess execution results where the
error field receives the exit code instead of the actual error
message from stderr.

Includes:
- Root cause analysis of the error pattern
- Timeline of when the regression was introduced
- Temporary workaround for affected users
- Required fix description

Slack: https://anthropic.slack.com/archives/C07VBSHV7EV/p1765922691961929
2025-12-16 22:19:08 +00:00
4 changed files with 117 additions and 86 deletions

View File

@@ -1,45 +1,11 @@
# 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
- Reduced terminal flickering
- Added scannable QR code to mobile app tip for quick app downloads
- Added loading indicator when resuming conversations for better feedback
- Fixed `/context` command not respecting custom system prompts in non-interactive mode
- Fixed order of consecutive Ctrl+K lines when pasting with Ctrl+Y
- Improved @ mention file suggestion speed (~3x faster in git repositories)
- Improved file suggestion performance in repos with `.ignore` or `.rgignore` files
- Improved settings validation errors to be more prominent
- Changed thinking toggle from Tab to Alt+T to avoid accidental triggers
## 2.0.71
- Added /config toggle to enable/disable prompt suggestions
- Added `/settings` as an alias for the `/config` command
- Fixed @ file reference suggestions incorrectly triggering when cursor is in the middle of a path
- Fixed MCP servers from `.mcp.json` not loading when using `--dangerously-skip-permissions`
- Fixed permission rules incorrectly rejecting valid bash commands containing shell glob patterns (e.g., `ls *.txt`, `for f in *.png`)
- Bedrock: Environment variable `ANTHROPIC_BEDROCK_BASE_URL` is now respected for token counting and inference profile listing
- New syntax highlighting engine for native build
## 2.0.70
- 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

@@ -0,0 +1,81 @@
# VSCode Extension Installation Regression: "1: 1" Error
**Reported**: 2025-12-16
**Status**: Under Investigation
**Slack Thread**: https://anthropic.slack.com/archives/C07VBSHV7EV/p1765922691961929?thread_ts=1765922103.768169&cid=C07VBSHV7EV
## Description
Users are unable to use the VSCode IDE integration when running Claude Code in a Homespace (containerized environment). The `/ide` command initially reports success, but a few seconds later an error appears.
### Error Message
```
IDE: ✘ Error installing VS Code extension: 1: 1
Please restart your IDE and try again.
```
## Steps to Reproduce
1. Run Claude Code in a Homespace environment
2. Execute `/ide` command
3. Observe initial success message
4. Wait a few seconds - error popup appears
5. Run `/status` to confirm the error
## Root Cause Analysis
### Error Pattern Analysis
The error message `1: 1` follows the pattern from the extension installation error handling:
```javascript
throw Error(`${result.code}: ${result.error} ${result.stderr}`)
```
For "1: 1" to appear, the values must be:
- `result.code` = 1 (exit code from VS Code CLI)
- `result.error` = "1" (incorrectly set to the exit code instead of error message)
- `result.stderr` = "" (empty)
### Regression Hypothesis
The async execution result object is incorrectly populating the `error` field with the numeric exit code instead of the actual error message from stderr. This appears to be a regression in subprocess output parsing.
### Timeline
- **Working**: Last week (user confirmed)
- **Broken**: Current version (2.0.59+)
- **Likely introduced**: Between versions 2.0.59-2.0.70
## Environment
- Running in Homespace (containerized environment)
- VSCode Remote development setup
## Temporary Workaround
If experiencing this issue, try:
1. Manually install the Claude Code extension in VS Code:
- Open VS Code Command Palette (Ctrl+Shift+P / Cmd+Shift+P)
- Type "Extensions: Install Extension"
- Search for "Claude Code" (by Anthropic)
- Install manually
2. After manual installation, restart your IDE and try `/ide` again
## Related Changes in CHANGELOG
Potentially relevant recent changes:
- 2.0.64: VSCode: Fixed extension not working on Windows ARM64
- 2.0.62: Fixed IDE diff tab not closing when rejecting file changes
- 2.0.61: Reverted VSCode support for multiple terminal clients
- 2.0.60: VSCode: Added support for multiple terminal clients
- 2.0.59: VS Code: Fixed .claude.json config file being read from incorrect location
## Fix Required
The fix needs to address how subprocess execution results are parsed, specifically ensuring that:
1. The `error` field contains the actual error message (from stderr), not the exit code
2. Proper error handling for when VS Code CLI fails in containerized environments

View File

@@ -1,5 +1,5 @@
---
allowed-tools: Bash(gh issue view:*), Bash(gh search:*), Bash(gh issue list:*), Bash(gh pr comment:*), Bash(gh pr diff:*), Bash(gh pr view:*), Bash(gh pr list:*), mcp__github_inline_comment__create_inline_comment
allowed-tools: Bash(gh issue view:*), Bash(gh search:*), Bash(gh issue list:*), Bash(gh pr comment:*), Bash(gh pr diff:*), Bash(gh pr view:*), Bash(gh pr list:*)
description: Code review a pull request
---
@@ -11,7 +11,7 @@ To do this, follow these steps precisely:
- The pull request is closed
- The pull request is a draft
- The pull request does not need code review (e.g. automated PR, trivial change that is obviously correct)
- Claude has already commented on this PR (check `gh pr view <PR> --comments` for comments left by claude)
- You have already submitted a code review on this pull request
If any condition is true, stop and do not proceed.
@@ -52,30 +52,14 @@ 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. If issues were found, skip to step 8 to post inline comments directly.
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. 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
```
**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:
```
Fix [file:line]: [brief description of issue and suggested fix]
```
**IMPORTANT: Only post ONE comment per unique issue. Do not post duplicate comments.**
7. Finally, output the review.
- If the `--comment` argument is provided, post the review as a comment on the pull request using `gh pr comment`
- Otherwise (default), output the review directly to the terminal for local viewing
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")
Use this list when evaluating issues in Steps 4 and 5 (these are false positives, do NOT flag):
@@ -90,18 +74,40 @@ 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 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:
- 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):
---
## 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 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
- 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
- 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

@@ -1,22 +0,0 @@
// 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."
)
}