docs: refresh claude code sources for 2.1.227 - #278
Conversation
Record the upstream move from Claude Code 2.1.224 to 2.1.226 after the deterministic freshness check detected drift. Add exact official references for permissions, memory, remote control, and the 2.1.225 release so material claims have claim-level support. Keep the hands-on field run pending and refresh the unchanged 27-star repository signal. Verified with source structure and live freshness checks across 22 sources, Astro diagnostics and production build, 12-route publication regression, JSON/Python/shell validation, 45 cc tests, and 175 lore tests. Rendered QA covered the Claude Code guide and changes page at 375 pixels plus the desktop guide shell; the mobile evidence disclosure opened with all seven entries, no horizontal overflow, and no console warnings or errors. Local Playwright accessibility remains unavailable under the macOS Mach port sandbox; required Linux CI retains that gate.
📝 WalkthroughWalkthroughUpdated Claude Code documentation and source metadata for package 2.1.226, verified on 2026-08-10. Added references for changelog, permissions, memory, and remote control. Recorded trust behavior, verification findings, and the repository star count. ChangesClaude Code verification
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c63c58772d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| ### claude code source refresh | ||
|
|
||
| - verified package 2.1.226 against the current official changelog. |
There was a problem hiding this comment.
Cite the source that establishes package 2.1.226
The read current package versions step in .github/workflows/freshness-check.yml obtains 2.1.226 from npm, but this page labels the number source-verified through anthropic-changelog, whose registered URL points specifically to the 2.1.225 section. Readers therefore cannot verify the 2.1.226 package claim from the recorded evidence; add the official package registry as a source or distinguish the package observation from the 2.1.225 changelog review.
AGENTS.md reference: AGENTS.md:L8-L9
Useful? React with 👍 / 👎.
| label: memory and remote control | ||
| section: memory-and-session-continuity | ||
| sourceId: anthropic-memory |
There was a problem hiding this comment.
Split remote-control evidence from the memory source
EvidenceRail.astro turns the sole sourceId into this entry's link, so the combined “memory and remote control” item always opens the memory documentation and never the newly registered remote-control source. On both desktop and mobile rails, a reader inspecting the remote-control claims is sent to evidence for a different feature; split this into separate entries or narrow the label to memory.
AGENTS.md reference: AGENTS.md:L21-L23
Useful? React with 👍 / 👎.
Advance the source review after package 2.1.227 shipped while the pull request was waiting. The release contains reliability, action-runner, terminal UI, and performance fixes; it does not change the guide's operating recommendation, so only the verified version and review dates move. Refresh the unchanged 27-star repository signal on the same date. Verified with the live 22-source freshness check, Astro diagnostics, production build, 12-route publication regression, and diff whitespace validation. The existing hands-on Claude Code field run remains pending.
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/changes.md`:
- Line 41: Add a direct, reproducible source to the change entry describing the
confirmed 27-star count, using the repository URL defined by the existing
repository source configuration and preserving the verification date/context.
Include either an inline link or a corresponding registry record alongside the
entry.
In `@docs/claude-code/README.md`:
- Line 106: Update the workspace trust description in the claude agents
documentation to state that it controls whether project-provided allow rules and
additional directories apply, while preserving the existing distinction from
permission and sandbox policies.
- Around line 94-100: Update the plugin and desktop sections near the referenced
claims to either add direct official citations supporting each listed capability
and resource effect, or narrow the wording to match the existing documentation.
Clearly label any remaining conclusions about storage, update paths, duplicated
dependencies, builds, watchers, browser instances, or model requests as
inference.
In `@docs/sources.json`:
- Around line 36-50: Separate the existing anthropic-changelog registry entry
for version 2.1.225 from the 2.1.226 source: retain the 2.1.225 record for the
workspace trust prompt and SendMessage claims, add a distinct 2.1.226 record
pointing to `#2-1-226`, and update all 2.1.226 evidence references to use the new
record so EvidenceRail.astro links to the correct changelog section.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 8e04cb67-6790-4ddc-a230-10e93e5dfa19
📒 Files selected for processing (4)
docs/changes.mddocs/claude-code/README.mddocs/sources.jsonsrc/repository.ts
|
|
||
| ### repository signal | ||
|
|
||
| - confirmed the published 27-star count against the renamed github repository. |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
Add a direct source for the repository signal.
Line 41 claims that the star count was confirmed against the renamed GitHub repository, but this entry has no repository link or source ID. src/repository.ts Line 2 stores the URL, while this page lists only Codex and Claude sources. Add an inline repository link or a registry record so readers can reproduce the check. This follows the PR objective to refresh the repository signal with a reproducible verification date.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/changes.md` at line 41, Add a direct, reproducible source to the change
entry describing the confirmed 27-star count, using the repository URL defined
by the existing repository source configuration and preserving the verification
date/context. Include either an inline link or a corresponding registry record
alongside the entry.
| third-party plugins run with meaningful local access. review their hooks, commands, mcp servers, storage, and update path before installation. | ||
|
|
||
| ## desktop and context-switch cost | ||
|
|
||
| claude code desktop combines chats, diffs, previews, files, plans, tasks, terminals, and subagent views. this can reduce the attention cost of moving among a terminal, browser, editor, and pull-request page. | ||
| claude code desktop combines chats, diffs, previews, files, plans, tasks, terminals, and subagent views. this can reduce the attention cost of moving among a terminal, browser, editor, and pull-request page. [desktop documentation](https://code.claude.com/docs/en/desktop) | ||
|
|
||
| the desktop benefit is supervision. compute use can still grow as local sessions duplicate worktrees, dependencies, build processes, file watchers, browser instances, and model requests. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- target excerpt ---'
sed -n '70,115p' docs/claude-code/README.md
printf '%s\n' '--- nearby references ---'
rg -n -C 3 'plugin|worktree|background|desktop|watcher|browser|model request|local access|resource' docs/claude-code/README.md docs/sources.json
printf '%s\n' '--- repository validation configuration ---'
rg -n -i 'markdown|markdownlint|link.?check|lychee|remark|vale' .github package.json Makefile* pyproject.toml 2>/dev/null || trueRepository: anipotts/coding-agent-tips
Length of output: 13571
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- evidence metadata ---'
sed -n '1,45p' docs/claude-code/README.md
printf '%s\n' '--- validation workflow ---'
sed -n '120,150p' .github/workflows/validate.yml
printf '%s\n' '--- source entries relevant to the claims ---'
sed -n '1,95p' docs/sources.json
printf '%s\n' '--- official plugin and desktop pages (relevant terms) ---'
for url in \
'https://code.claude.com/docs/en/plugins' \
'https://code.claude.com/docs/en/desktop'
do
echo "URL: $url"
curl -L --max-time 20 -sS "$url" |
tr '\n' ' ' |
sed 's/<[^>]*>/ /g; s/&/\&/g; s/"/"/g; s/ */ /g' |
grep -o -i -E '.{0,180}(hook|command|mcp|lsp|executable|storage|update|worktree|background|browser|session|task).{0,260}' |
head -n 20 || true
doneRepository: anipotts/coding-agent-tips
Length of output: 22891
🌐 Web query:
site:code.claude.com/docs/en/plugins Claude Code plugins hooks commands MCP servers executables storage updates
💡 Result:
Claude Code is designed to be extensible through a plugin system that allows users to add custom functionality, including skills, agents, hooks, MCP servers, LSP servers, and background monitors [1][2]. Plugin Architecture and Structure Plugins are self-contained directories that must follow a specific structure to be recognized by Claude Code [1][2]. The root of the plugin directory serves as the base, and specific subdirectories or files are used to define components [1]: -.claude-plugin/: Contains the plugin.json manifest (optional if defaults are used) [1]. - skills/: Contains skills, defined as /SKILL.md directories [1]. - commands/: Houses legacy skills as flat Markdown files [1]. - agents/: Contains custom agent definitions [1]. - hooks/: Includes event handlers defined in hooks.json [1]. -.mcp.json: Defines MCP server configurations [1]. -.lsp.json: Used for LSP server configurations [1]. - monitors/: Contains background monitor configurations in monitors.json [1]. - bin/: Contains executables that are added to the Bash tool's PATH while the plugin is enabled, allowing them to be run within the terminal environment [1]. - settings.json: Contains default settings applied when the plugin is enabled [1]. Key Features - MCP Servers: Plugins can bundle Model Context Protocol (MCP) servers to connect Claude Code with external tools and services [2]. Servers configured via.mcp.json appear as standard MCP tools [2]. - Hooks: Hooks allow for event-driven automation within Claude Code, using a hooks.json file to define handlers for various system events [1][2]. - Executables: The bin/ directory allows plugin developers to ship binary or script executables that are automatically exposed to the Claude Code environment [1]. - Updates and Reloading: Changes to plugins (such as adding or modifying components) can be reflected in an active session by running the /reload command, which reloads plugins and skills [1]. It is important to note that developers should avoid placing plugin components like hooks/ or skills/ inside the.claude-plugin/ directory; these directories must exist at the plugin root level [1]. All plugin-provided MCP servers and tools use scoped names to ensure there are no naming collisions between plugins or built-in tools [2].
Citations:
🌐 Web query:
site:code.claude.com/docs/en/desktop Claude Code desktop parallel sessions worktrees background tasks browser model requests
💡 Result:
The Claude Code desktop application supports parallel sessions, Git worktrees, and background task management as core features of its integrated environment [1][2]. Parallel Sessions and Git Worktrees The desktop app allows you to run multiple sessions simultaneously [1][2]. Each session acts as an independent conversation with its own chat history, project folder, and code changes [2]. For Git repositories, the application utilizes Git worktrees to provide each session with an isolated copy of the project, ensuring that work in one session does not interfere with others until changes are committed [2]. Worktrees are stored in /.claude/worktrees/ by default, a location that can be configured in the application settings [2]. Background Tasks Background work, such as subagents, background shell commands, and dynamic workflows, can be monitored through the dedicated Tasks pane [2]. You can also schedule recurring tasks within the desktop environment [3]. Scheduled tasks can be configured to run in isolated Git worktrees, similar to standard parallel sessions, to maintain clean project states [3]. These tasks can be executed on your local machine or in the cloud, depending on your configuration and requirements [3]. Browser and Model Requests While the provided documentation focuses on the app's capability to run sessions, monitor background tasks, and integrate with development tools (such as GitHub, Slack, and Linear) [1], the application supports configurable model selection for sessions [1] and tasks [3]. Regarding "browser model requests," the application features live app preview capabilities and can handle various tasks autonomously, though it functions primarily as a desktop-integrated environment rather than a general-purpose browser for external web requests [1][2]. Note that certain advanced features like computer use (screen/app control) are subject to platform-specific support (e.g., currently unavailable in the Linux beta) [4]. Top Results: [1] https://code.claude.com/docs/en/desktop-quickstart [3] https://code.claude.com/docs/en/desktop-scheduled-tasks [2] https://code.claude.com/docs/en/desktop [5] https://code.claude.com/docs/en/desktop-wsl [4] https://code.claude.com/docs/en/desktop-linux
Citations:
- 1: https://code.claude.com/docs/en/desktop-quickstart
- 2: https://code.claude.com/docs/en/desktop
- 3: https://code.claude.com/docs/en/desktop-scheduled-tasks
- 4: https://code.claude.com/docs/en/desktop-linux
- 5: https://code.claude.com/docs/en/desktop-wsl
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- validation workflow: link and markdown jobs ---'
sed -n '1,65p' .github/workflows/validate.yml
sed -n '131,160p' .github/workflows/validate.yml
printf '%s\n' '--- links in target document ---'
rg -n '\[[^]]+\]\([^)]*\)' docs/claude-code/README.md
printf '%s\n' '--- configured link-check exclusions ---'
cat .github/lychee.tomlRepository: anipotts/coding-agent-tips
Length of output: 6575
Add nearby evidence for the new operational claims.
The plugin documentation supports hooks, commands, MCP/LSP servers, and executables, but not the full storage or update path scope. The desktop documentation supports parallel sessions, worktrees, and background tasks, but not all listed resource-growth effects.
Add direct official citations, or narrow the claims and mark unsupported effects as inference.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/claude-code/README.md` around lines 94 - 100, Update the plugin and
desktop sections near the referenced claims to either add direct official
citations supporting each listed capability and resource effect, or narrow the
wording to match the existing documentation. Clearly label any remaining
conclusions about storage, update paths, duplicated dependencies, builds,
watchers, browser instances, or model requests as inference.
Source: MCP tools
| permission mode, sandboxing, hooks, managed policy, and operating-system access are separate layers. | ||
| permission mode, sandboxing, hooks, managed policy, and operating-system access are separate layers. [permissions reference](https://code.claude.com/docs/en/permissions) | ||
|
|
||
| claude code 2.1.225 added a workspace trust prompt when `claude agents` starts in an untrusted directory. workspace trust controls whether the project can load; permission and sandbox policy still control what a running session may do. [2.1.225 release notes](https://code.claude.com/docs/en/changelog#2-1-225) |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- target file ---'
sed -n '88,114p' docs/claude-code/README.md
printf '%s\n' '--- related references and validation configuration ---'
rg -n -C 3 'workspace trust|project.allow|additional directories|permissions|sandbox|2\.1\.225|markdown|markdownlint|link' \
docs/claude-code/README.md docs/sources.json package.json .github 2>/dev/null || true
printf '%s\n' '--- repository documentation tooling ---'
git ls-files | rg '(^|/)(package\.json|\.markdownlint[^/]*|vale[^/]*|lychee[^/]*|remark[^/]*|docs/.*)' | head -120Repository: anipotts/coding-agent-tips
Length of output: 14650
🌐 Web query:
site:code.claude.com/docs/en/permissions "workspace trust" "additional directories" allow rules
💡 Result:
The concept of workspace trust and the configuration of additional directories or allow rules as described pertains specifically to Claude Code, rather than the core VS Code workspace trust feature [1]. In Claude Code, permissions.allow rules and permissions.additionalDirectories defined in a project's.claude/settings.json file grant specific capabilities, but these are only applied after you accept a workspace trust dialog for that directory [1]. This dialog allows you to review the requested allow rules and additional directories before granting trust [1]. Key behavioral details for Claude Code workspace trust include: - Trust is keyed to the git repository root or the directory from which the tool was started [1]. - Trusting a parent directory does not automatically apply allow rules for nested projects [1]. -.claude/settings.local.json files are generally excluded from workspace trust checks unless they are committed to git or otherwise supplied by the repository [1]. - If a workspace has not yet triggered a trust dialog because a parent directory was previously trusted, Claude Code will prompt with the dialog upon the next interactive session start [1].
Citations:
🏁 Script executed:
#!/bin/bash
set -eu
for url in \
'https://code.claude.com/docs/en/permissions' \
'https://code.claude.com/docs/en/changelog#2-1-225'
do
printf '\n--- %s ---\n' "$url"
curl -L --max-time 20 -sS "$url" |
tr '\r\n' ' ' |
sed 's/<[^>]*>/ /g; s/[[:space:]]\+/ /g' |
grep -o -i -E '.{0,300}(workspace trust|trust dialog|additional director|allow rules|untrusted directory|claude agents).{0,500}' |
head -20 || true
doneRepository: anipotts/coding-agent-tips
Length of output: 32034
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- markdown lint scope and config ---'
cat .markdownlint.jsonc
sed -n '131,155p' .github/workflows/validate.ymlRepository: anipotts/coding-agent-tips
Length of output: 2626
Describe workspace trust as a capability gate. Replace “workspace trust controls whether the project can load” with “workspace trust controls whether project-provided allow rules and additional directories apply.”
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/claude-code/README.md` at line 106, Update the workspace trust
description in the claude agents documentation to state that it controls whether
project-provided allow rules and additional directories apply, while preserving
the existing distinction from permission and sandbox policies.
Source: MCP tools
| "id": "anthropic-changelog", | ||
| "product": "claude-code", | ||
| "layer": "harness", | ||
| "status": "core", | ||
| "url": "https://code.claude.com/docs/en/changelog#2-1-225", | ||
| "last_checked": "2026-08-10", | ||
| "evidence": "source-verified", | ||
| "watch": { | ||
| "kind": "terms", | ||
| "terms": [ | ||
| "workspace trust prompt", | ||
| "SendMessage", | ||
| "Remote Control" | ||
| ] | ||
| } |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -e
printf '%s\n' '--- candidate files ---'
git ls-files | rg '(^|/)(sources\.json|README\.md|EvidenceRail\.astro)$|claude-code'
printf '%s\n' '--- source records around anthropic-changelog ---'
python3 - <<'PY'
import json
from pathlib import Path
p = Path("docs/sources.json")
try:
data = json.loads(p.read_text())
except Exception as e:
print("JSON_ERROR:", repr(e))
raise SystemExit(0)
print("JSON_VALID:", type(data).__name__)
records = data if isinstance(data, list) else data.get("sources", [])
print("RECORD_COUNT:", len(records) if isinstance(records, list) else "not-a-list")
for i, rec in enumerate(records if isinstance(records, list) else []):
if rec.get("id") == "anthropic-changelog" or "claude" in str(rec).lower():
print(f"RECORD_INDEX:{i}")
print(json.dumps(rec, indent=2))
PY
printf '%s\n' '--- README references ---'
rg -n -C 5 '2\.1\.226|source refresh|sourceId|anthropic-changelog|workspace trust|SendMessage|Remote Control' docs/claude-code/README.md || true
printf '%s\n' '--- EvidenceRail references ---'
rg -n -C 8 'sourceId|sources\.json|url|Evidence' src/components/EvidenceRail.astro || true
printf '%s\n' '--- all anthropic-changelog/sourceId references ---'
rg -n -C 3 'anthropic-changelog|claude code 2\.1\.226 source refresh|2\.1\.226' docs src || trueRepository: anipotts/coding-agent-tips
Length of output: 12925
🏁 Script executed:
#!/bin/bash
set -e
python3 - <<'PY'
from urllib.request import Request, urlopen
from urllib.parse import urlparse
import re
url = "https://code.claude.com/docs/en/changelog"
req = Request(url, headers={"User-Agent": "Mozilla/5.0"})
try:
with urlopen(req, timeout=20) as r:
body = r.read().decode("utf-8", "replace")
print("HTTP_STATUS:", getattr(r, "status", "unknown"))
print("FINAL_URL:", r.geturl())
print("BODY_LENGTH:", len(body))
except Exception as e:
print("FETCH_ERROR:", repr(e))
raise SystemExit(0)
for term in ("2.1.226", "2.1.225", "workspace trust", "SendMessage", "Remote Control"):
print(f"{term!r}: {len(re.findall(re.escape(term), body, flags=re.I))} matches")
# Print compact context around version occurrences, with tags stripped.
plain = re.sub(r"<script\b[^>]*>.*?</script>|<style\b[^>]*>.*?</style>", " ", body, flags=re.I|re.S)
plain = re.sub(r"<[^>]+>", " ", plain)
plain = re.sub(r"\s+", " ", plain)
for version in ("2.1.226", "2.1.225"):
print(f"--- CONTEXT {version} ---")
for m in list(re.finditer(re.escape(version), plain, flags=re.I))[:5]:
print(plain[max(0, m.start()-180):m.end()+420])
PY
printf '%s\n' '--- exact source schema and all changelog uses ---'
sed -n '1,75p' docs/sources.json
rg -n -C 2 'sourceId: anthropic-changelog|2\.1\.225 release notes|2\.1\.226 (source refresh|review|against)' docsRepository: anipotts/coding-agent-tips
Length of output: 5839
🏁 Script executed:
#!/bin/bash
set -e
tmp=$(mktemp)
trap 'rm -f "$tmp"' EXIT
curl -k -L --fail --silent --show-error \
-A 'Mozilla/5.0' \
'https://code.claude.com/docs/en/changelog' >"$tmp"
printf 'FETCHED_BYTES: '
wc -c <"$tmp"
python3 - "$tmp" <<'PY'
import re, sys
from html import unescape
body = open(sys.argv[1], encoding="utf-8", errors="replace").read()
for version in ("2.1.226", "2.1.225"):
patterns = [
rf'id=["\']2-1-226["\']',
rf'id=["\']2-1-225["\']',
rf'>[^<]*{re.escape(version)}[^<]*<',
rf'#{version.replace(".", "-")}',
]
hits = []
for pat in patterns:
hits.extend(re.finditer(pat, body, re.I))
print(f"{version}_MATCHES:", len(hits))
for m in hits[:5]:
print(" ", unescape(re.sub(r"\s+", " ", body[max(0,m.start()-100):m.end()+250])))
text = unescape(re.sub(r"<[^>]+>", " ", body))
text = re.sub(r"\s+", " ", text)
for term in ("workspace trust", "SendMessage", "Remote Control"):
print(f"{term!r}_MATCHES:", len(re.findall(re.escape(term), text, re.I)))
PY
printf '%s\n' '--- version-like headings and anchors ---'
rg -o -i '.{0,100}(2[.-]1[.-](226|225)|id="2-1-(226|225)").{0,180}' "$tmp" | head -40 || trueRepository: anipotts/coding-agent-tips
Length of output: 35433
Separate the 2.1.225 and 2.1.226 changelog sources.
The official changelog has separate #2-1-225 and #2-1-226 sections. Keep a 2.1.225 record for the workspace trust and SendMessage claims. Add a 2.1.226 record and update the 2.1.226 evidence entries to use it. EvidenceRail.astro links each entry directly to the registry URL, so the current 2.1.226 label opens the 2.1.225 section.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/sources.json` around lines 36 - 50, Separate the existing
anthropic-changelog registry entry for version 2.1.225 from the 2.1.226 source:
retain the 2.1.225 record for the workspace trust prompt and SendMessage claims,
add a distinct 2.1.226 record pointing to `#2-1-226`, and update all 2.1.226
evidence references to use the new record so EvidenceRail.astro links to the
correct changelog section.
Source: MCP tools
rationale
the deterministic freshness check found Claude Code package drift from 2.1.224 to 2.1.227. the 2.1.225 release changes workspace trust for
claude agentsand cross-machine Remote Control messaging, so the guide needs more than a version-only registry edit. the 2.1.227 reliability release changes the verified package boundary without changing the operating recommendation.evidence and editorial decisions
primary evidence: Claude Code 2.1.225 changelog, Claude Code 2.1.227 changelog, permissions, memory, and Remote Control.
verification
local Playwright accessibility remains constrained by the macOS browser sandbox. the required Linux site check retains the accessibility gate.
rollout
merge with a signed squash commit after the required site, handbook, markdown, and compatibility checks pass. verify the deployed Claude Code guide and changes page at the custom domain.