mirror of
https://github.com/anthropics/claude-code.git
synced 2026-08-13 02:12:26 -06:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 26a1334ef3 | |||
| cd4956871a | |||
| a772bd6091 |
@@ -1,5 +1,34 @@
|
||||
# Changelog
|
||||
|
||||
## 2.1.63
|
||||
|
||||
- Added `/simplify` and `/batch` bundled slash commands
|
||||
- Fixed local slash command output like /cost appearing as user-sent messages instead of system messages in the UI
|
||||
- Project configs & auto memory now shared across git worktrees of the same repository
|
||||
- Added `ENABLE_CLAUDEAI_MCP_SERVERS=false` env var to opt out from making claude.ai MCP servers available
|
||||
- Improved `/model` command to show the currently active model in the slash command menu
|
||||
- Added HTTP hooks, which can POST JSON to a URL and receive JSON instead of running a shell command
|
||||
- Fixed listener leak in bridge polling loop
|
||||
- Fixed listener leak in MCP OAuth flow cleanup
|
||||
- Added manual URL paste fallback during MCP OAuth authentication. If the automatic localhost redirect doesn't work, you can paste the callback URL to complete authentication.
|
||||
- Fixed memory leak when navigating hooks configuration menu
|
||||
- Fixed listener leak in interactive permission handler during auto-approvals
|
||||
- Fixed file count cache ignoring glob ignore patterns
|
||||
- Fixed memory leak in bash command prefix cache
|
||||
- Fixed MCP tool/resource cache leak on server reconnect
|
||||
- Fixed IDE host IP detection cache incorrectly sharing results across ports
|
||||
- Fixed WebSocket listener leak on transport reconnect
|
||||
- Fixed memory leak in git root detection cache that could cause unbounded growth in long-running sessions
|
||||
- Fixed memory leak in JSON parsing cache that grew unbounded over long sessions
|
||||
- VSCode: Fixed remote sessions not appearing in conversation history
|
||||
- Fixed a race condition in the REPL bridge where new messages could arrive at the server interleaved with historical messages during the initial connection flush, causing message ordering issues.
|
||||
- Fixed memory leak where long-running teammates retained all messages in AppState even after conversation compaction
|
||||
- Fixed a memory leak where MCP server fetch caches were not cleared on disconnect, causing growing memory usage with servers that reconnect frequently
|
||||
- Improved memory usage in long sessions with subagents by stripping heavy progress message payloads during context compaction
|
||||
- Added "Always copy full response" option to the `/copy` picker. When selected, future `/copy` commands will skip the code block picker and copy the full response directly.
|
||||
- VSCode: Added session rename and remove actions to the sessions list
|
||||
- Fixed `/clear` not resetting cached skills, which could cause stale skill content to persist in the new conversation
|
||||
|
||||
## 2.1.62
|
||||
|
||||
- Fixed prompt suggestion cache regression that reduced cache hit rates
|
||||
|
||||
+23
-12
@@ -11,6 +11,15 @@ set -euo pipefail
|
||||
# ./scripts/gh.sh search issues "search query" --limit 10
|
||||
# ./scripts/gh.sh label list --limit 100
|
||||
|
||||
export GH_HOST=github.com
|
||||
|
||||
REPO="${GH_REPO:-${GITHUB_REPOSITORY:-}}"
|
||||
if [[ -z "$REPO" || "$REPO" == */*/* || "$REPO" != */* ]]; then
|
||||
echo "Error: GH_REPO or GITHUB_REPOSITORY must be set to owner/repo format (e.g., GITHUB_REPOSITORY=anthropics/claude-code)" >&2
|
||||
exit 1
|
||||
fi
|
||||
export GH_REPO="$REPO"
|
||||
|
||||
ALLOWED_FLAGS=(--comments --state --limit --label)
|
||||
FLAGS_WITH_VALUES=(--state --limit --label)
|
||||
|
||||
@@ -21,6 +30,7 @@ case "$CMD" in
|
||||
"issue view"|"issue list"|"search issues"|"label list")
|
||||
;;
|
||||
*)
|
||||
echo "Error: only 'issue view', 'issue list', 'search issues', 'label list' are allowed (e.g., ./scripts/gh.sh issue view 123)" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -45,6 +55,7 @@ for arg in "$@"; do
|
||||
fi
|
||||
done
|
||||
if [[ "$matched" == false ]]; then
|
||||
echo "Error: only --comments, --state, --limit, --label flags are allowed (e.g., ./scripts/gh.sh issue list --state open --limit 20)" >&2
|
||||
exit 1
|
||||
fi
|
||||
FLAGS+=("$arg")
|
||||
@@ -62,24 +73,24 @@ for arg in "$@"; do
|
||||
fi
|
||||
done
|
||||
|
||||
REPO="${GH_REPO:-${GITHUB_REPOSITORY:-}}"
|
||||
|
||||
if [[ "$CMD" == "search issues" ]]; then
|
||||
if [[ -z "$REPO" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
QUERY="${POSITIONAL[0]:-}"
|
||||
QUERY_LOWER=$(echo "$QUERY" | tr '[:upper:]' '[:lower:]')
|
||||
if [[ "$QUERY_LOWER" == *"repo:"* || "$QUERY_LOWER" == *"org:"* || "$QUERY_LOWER" == *"user:"* ]]; then
|
||||
echo "Error: search query must not contain repo:, org:, or user: qualifiers (e.g., ./scripts/gh.sh search issues \"bug report\" --limit 10)" >&2
|
||||
exit 1
|
||||
fi
|
||||
gh "$SUB1" "$SUB2" "$QUERY" --repo "$REPO" "${FLAGS[@]}"
|
||||
elif [[ "$CMD" == "issue view" ]]; then
|
||||
if [[ ${#POSITIONAL[@]} -ne 1 ]] || ! [[ "${POSITIONAL[0]}" =~ ^[0-9]+$ ]]; then
|
||||
echo "Error: issue view requires exactly one numeric issue number (e.g., ./scripts/gh.sh issue view 123)" >&2
|
||||
exit 1
|
||||
fi
|
||||
gh "$SUB1" "$SUB2" "${POSITIONAL[0]}" "${FLAGS[@]}"
|
||||
else
|
||||
# Reject URLs in positional args to prevent cross-repo access
|
||||
for pos in "${POSITIONAL[@]}"; do
|
||||
if [[ "$pos" == http://* || "$pos" == https://* ]]; then
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
gh "$SUB1" "$SUB2" "${POSITIONAL[@]}" "${FLAGS[@]}"
|
||||
if [[ ${#POSITIONAL[@]} -ne 0 ]]; then
|
||||
echo "Error: issue list and label list do not accept positional arguments (e.g., ./scripts/gh.sh issue list --state open, ./scripts/gh.sh label list --limit 100)" >&2
|
||||
exit 1
|
||||
fi
|
||||
gh "$SUB1" "$SUB2" "${FLAGS[@]}"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user