release: Claude Code v2.1.98 (28 patches)

This commit is contained in:
delta-cloud-208e
2026-04-10 00:00:43 +00:00
parent 69f1c9e200
commit f4f9d1c253
7 changed files with 16977 additions and 6 deletions

View File

@@ -259,9 +259,9 @@ cd unlimitedcoding
<!-- MANUAL_VERSION:START -->
| Platform | Command |
|----------|---------|
| Linux / macOS | `sudo bash claude/releases/v2.1.97/install.sh` |
| Windows CMD | `claude\releases\v2.1.97\install.bat` |
| Windows PowerShell | `powershell -ExecutionPolicy Bypass -File claude\releases\v2.1.97\install.ps1` |
| Linux / macOS | `sudo bash claude/releases/v2.1.98/install.sh` |
| Windows CMD | `claude\releases\v2.1.98\install.bat` |
| Windows PowerShell | `powershell -ExecutionPolicy Bypass -File claude\releases\v2.1.98\install.ps1` |
<!-- MANUAL_VERSION:END -->
## Update

View File

@@ -3,7 +3,7 @@
🌐 [English](README.md) | [Русский](README_ru.md) | [中文](README_zh.md) | [Español](README_es.md)
<!-- VERSION_BADGE:START -->
Patched Claude Code CLI for use with custom API endpoints. Latest: **v2.1.97** (28 patches).
Patched Claude Code CLI for use with custom API endpoints. Latest: **v2.1.98** (28 patches).
<!-- VERSION_BADGE:END -->
## Install

View File

@@ -22,6 +22,6 @@
"timeout_ms": 3000000,
"theme": "dark",
"complete_onboarding": true,
"target_version": "2.1.97",
"target_version": "2.1.98",
"effort_level": "high"
}

View File

@@ -1,6 +1,12 @@
{
"latest": "2.1.97",
"latest": "2.1.98",
"releases": [
{
"version": "2.1.98",
"date": "2026-04-10",
"patches": 28,
"status": "partial"
},
{
"version": "2.1.97",
"date": "2026-04-09",

View File

@@ -0,0 +1,59 @@
## 2.1.98
- Added interactive Google Vertex AI setup wizard accessible from the login screen when selecting "3rd-party platform", guiding you through GCP authentication, project and region configuration, credential verification, and model pinning
- Added `CLAUDE_CODE_PERFORCE_MODE` env var: when set, Edit/Write/NotebookEdit fail on read-only files with a `p4 edit` hint instead of silently overwriting them
- Added Monitor tool for streaming events from background scripts
- Added subprocess sandboxing with PID namespace isolation on Linux when `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` is set, and `CLAUDE_CODE_SCRIPT_CAPS` env var to limit per-session script invocations
- Added `--exclude-dynamic-system-prompt-sections` flag to print mode for improved cross-user prompt caching
- Added `workspace.git_worktree` to the status line JSON input, set whenever the current directory is inside a linked git worktree
- Added W3C `TRACEPARENT` env var to Bash tool subprocesses when OTEL tracing is enabled, so child-process spans correctly parent to Claude Code's trace tree
- LSP: Claude Code now identifies itself to language servers via `clientInfo` in the initialize request
- Fixed a Bash tool permission bypass where a backslash-escaped flag could be auto-allowed as read-only and lead to arbitrary code execution
- Fixed compound Bash commands bypassing forced permission prompts for safety checks and explicit ask rules in auto and bypass-permissions modes
- Fixed read-only commands with env-var prefixes not prompting unless the var is known-safe (`LANG`, `TZ`, `NO_COLOR`, etc.)
- Fixed redirects to `/dev/tcp/...` or `/dev/udp/...` not prompting instead of auto-allowing
- Fixed stalled streaming responses timing out instead of falling back to non-streaming mode
- Fixed 429 retries burning all attempts in ~13s when the server returns a small `Retry-After` — exponential backoff now applies as a minimum
- Fixed MCP OAuth `oauth.authServerMetadataUrl` config override not being honored on token refresh after restart, affecting ADFS and similar IdPs
- Fixed capital letters being dropped to lowercase on xterm and VS Code integrated terminal when the kitty keyboard protocol is active
- Fixed macOS text replacements deleting the trigger word instead of inserting the substitution
- Fixed `--dangerously-skip-permissions` being silently downgraded to accept-edits mode after approving a write to a protected path via Bash
- Fixed managed-settings allow rules remaining active after an admin removed them, until process restart
- Fixed `permissions.additionalDirectories` changes not applying mid-session — removed directories lose access immediately and added ones work without restart
- Fixed removing a directory from `additionalDirectories` revoking access to the same directory passed via `--add-dir`
- Fixed `Bash(cmd:*)` and `Bash(git commit *)` wildcard permission rules failing to match commands with extra spaces or tabs
- Fixed `Bash(...)` deny rules being downgraded to a prompt for piped commands that mix `cd` with other segments
- Fixed false Bash permission prompts for `cut -d /`, `paste -d /`, `column -s /`, `awk '{print $1}' file`, and filenames containing `%`
- Fixed permission rules with names matching JavaScript prototype properties (e.g. `toString`) causing `settings.json` to be silently ignored
- Fixed agent team members not inheriting the leader's permission mode when using `--dangerously-skip-permissions`
- Fixed a crash in fullscreen mode when hovering over MCP tool results
- Fixed copying wrapped URLs in fullscreen mode inserting spaces at line breaks
- Fixed file-edit diffs disappearing from the UI on `--resume` when the edited file was larger than 10KB
- Fixed several `/resume` picker issues: `--resume <name>` opening uneditable, filter reload wiping search state, empty list swallowing arrow keys, cross-project staleness, and transient task-status text replacing conversation summaries
- Fixed `/export` not honoring absolute paths and `~`, and silently rewriting user-supplied extensions to `.txt`
- Fixed `/effort max` being denied for unknown or future model IDs
- Fixed slash command picker breaking when a plugin's frontmatter `name` is a YAML boolean keyword
- Fixed rate-limit upsell text being hidden after message remounts
- Fixed MCP tools with `_meta["anthropic/maxResultSizeChars"]` not bypassing the token-based persist layer
- Fixed voice mode leaking dozens of space characters into the input when re-holding the push-to-talk key while the previous transcript is still processing
- Fixed `DISABLE_AUTOUPDATER` not fully suppressing the npm registry version check and symlink modification on npm-based installs
- Fixed a memory leak where Remote Control permission handler entries were retained for the lifetime of the session
- Fixed background subagents that fail with an error not reporting partial progress to the parent agent
- Fixed prompt-type Stop/SubagentStop hooks failing on long sessions, and hook evaluator API errors showing "JSON validation failed" instead of the real message
- Fixed feedback survey rendering when dismissed
- Fixed Bash `grep -f FILE` / `rg -f FILE` not prompting when reading a pattern file outside the working directory
- Fixed stale subagent worktree cleanup removing worktrees that contain untracked files
- Fixed `sandbox.network.allowMachLookup` not taking effect on macOS
- Improved `/resume` filter hint labels and added project/worktree/branch names in the filter indicator
- Improved footer indicators (Focus, notifications) to stay on the mode-indicator row instead of wrapping at narrow terminal widths
- Improved `/agents` with a tabbed layout: a Running tab shows live subagents, and the Library tab adds Run agent and View running instance actions
- Improved `/reload-plugins` to pick up plugin-provided skills without requiring a restart
- Improved Accept Edits mode to auto-approve filesystem commands prefixed with safe env vars or process wrappers
- Improved Vim mode: `j`/`k` in NORMAL mode now navigate history and select the footer pill at the input boundary
- Improved hook errors in the transcript to include the first line of stderr for self-diagnosis without `--debug`
- Improved OTEL tracing: interaction spans now correctly wrap full turns under concurrent SDK calls, and headless turns end spans per-turn
- Improved transcript entries to carry final token usage instead of streaming placeholders
- Updated the `/claude-api` skill to cover Managed Agents alongside Claude API
- [VSCode] Fixed false-positive "requires git-bash" error on Windows when `CLAUDE_CODE_GIT_BASH_PATH` is set or Git is installed at a default location
- Fixed `CLAUDE_CODE_MAX_CONTEXT_TOKENS` to honor `DISABLE_COMPACT` when it is set.
- Dropped `/compact` hints when `DISABLE_COMPACT` is set.

16870
claude/releases/v2.1.98/cli.js Executable file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,36 @@
#!/bin/bash
# Claude Code Patcher — standalone installer for v2.1.98
# Usage: sudo bash install.sh [--all] [--skip-cli]
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
CLI_JS="$SCRIPT_DIR/cli.js"
PATCHER="$SCRIPT_DIR/claude_code_patcher.py"
CONFIG="$SCRIPT_DIR/patcher.config.json"
TARGET="/usr/lib/node_modules/@anthropic-ai/claude-code/cli.js"
[ ! -f "$TARGET" ] && TARGET="/usr/local/lib/node_modules/@anthropic-ai/claude-code/cli.js"
[ ! -f "$TARGET" ] && TARGET="/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js"
if [ ! -f "$TARGET" ]; then
echo "ERROR: Claude Code cli.js not found. Install Claude Code first."
exit 1
fi
# Install patched cli.js
if [ "$1" != "--skip-cli" ]; then
echo "Installing patched cli.js..."
BACKUP="$TARGET.bak.$(date +%Y%m%d%H%M%S)"
cp "$TARGET" "$BACKUP"
cp "$CLI_JS" "$TARGET"
node --check "$TARGET" || { cp "$BACKUP" "$TARGET"; echo "SYNTAX ERROR, rolled back"; exit 1; }
echo "Installed. Backup: $BACKUP"
fi
# Apply user settings
if [ -f "$PATCHER" ] && [ -f "$CONFIG" ]; then
echo "Applying user settings..."
python3 "$PATCHER" --config "$CONFIG" --all --skip-cli-patch --skip-update
fi
echo "Done. Run 'claude --version' to verify."