docs: sync to Claude Code v2.1.233 (#168)

* docs: sync to Claude Code v2.1.233

Bring the tutorial from the v2.1.220 baseline up to v2.1.233 (13 releases)
per update-plan-2026-08-15.md.

Corrections:
- Remove /ultraplan (removed in v2.1.222); point at plan mode instead
- Drop the 200-subagent-per-session cap and CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION
  (cap removed in v2.1.224)
- Note TaskCompleted/TaskCreated only fire when todo tools are enabled

Updates:
- /review documented as an alias of /code-review (v2.1.223)
- fork subagents default to interactive (v2.1.232)
- ultrareview v2.1.227 floor, --post/--no-post
- GitLab MR support for -w/--worktree and Agent View

New sections:
- Cross-session messaging (ListAgents, SendMessage, crossSessionInbound)
- Sandbox credential masking (v2.1.221, v2.1.224)
- Trust and permission scoping
- archive and command plugin sources, conditional plugin activation
- claude self-hosted-runner, 7 new env vars

Translations (vi/ja/zh/uk) mirrored where the corresponding pages exist.
Every modified file carries the 2.1.233 metadata footer; files already at
2.1.220 with no content change were left alone.

* docs: address review findings from the v2.1.233 sync

- Mirror the /review alias correction (v2.1.223) into vi/ja/uk/zh
  01-slash-commands: add the live alias row, drop the stale row from the
  deprecated table, and rewrite the history bullet. All four still called
  /review deprecated in favour of a code-review plugin while carrying a
  2.1.233 stamp.
- Rewrite the 10-cli CLAUDE_CODE_FORK_SUBAGENT row to agree with
  04-subagents: fork mode is on by default in interactive sessions on every
  build since v2.1.232; the variable enables it where it is off by default.
- Remove a stray blank line that split the 10-cli environment-variable
  table, leaving the seven new v2.1.221-v2.1.233 rows without a delimiter
  row and rendering them as literal pipe text.
- Add the todo-tools caveat to the TaskCompleted row alongside TaskCreated
  in claude_concepts_guide, uk/ja concepts guides, and the uk/vi/zh/ja
  CATALOGs.
- Fix the ja 07-plugins and 09-advanced-features footers, which paired a
  2.1.233 version stamp with an April 24 last-updated date.

* docs(subagents): correct the stale fork-subagent claim in ja pages (#171)

ja/10-cli and ja/04-subagents both stated that CLAUDE_CODE_FORK_SUBAGENT
only enables forked subagents on external builds (Bedrock, Vertex,
Foundry) with no effect on the Anthropic API. That was true at v2.1.117
but has been wrong since v2.1.232: fork mode is on by default in
interactive sessions on every build, first-party or not, and the variable
now turns it on where it is off by default (claude -p, the Agent SDK, or
Claude Code older than v2.1.232).

Both pages remain stamped 2.1.119 on purpose. Only the individual claim
was verified and corrected; bumping the page stamp would assert a
whole-page verification that has not been done. Do not bump these stamps
without a full resync of the pages.
This commit is contained in:
Luong NGUYEN
2026-08-17 12:44:44 +07:00
committed by GitHub
parent 4f3fa85d7e
commit deb7e5c710
42 changed files with 630 additions and 329 deletions
+92 -4
View File
@@ -517,6 +517,17 @@ Enterprise and advanced users can control marketplace behavior through settings:
| `blockedMarketplaces` | Admin-managed blocklist of marketplaces (supports `hostPattern` / `pathPattern` regex fields since v2.1.119) |
| `deniedPlugins` | Admin-managed blocklist to prevent specific plugins from being installed |
> **Friendlier aliases (v2.1.232)**: `additionalMarketplaces` is accepted as an alias for
> `extraKnownMarketplaces`, and `allowedMarketplaces` for `strictKnownMarketplaces`.
> **Changelog-sourced** — the v2.1.232 changelog announces them, but the official settings
> reference does not yet list either name. The canonical keys are safe to keep using.
> **Owner wildcards (v2.1.223+)**: a `"owner/*"` entry allows or blocks every marketplace
> repo under one GitHub owner. **Accepted only in `strictKnownMarketplaces` and
> `blockedMarketplaces`.** Everywhere else a `github` source appears — including
> `extraKnownMarketplaces` and `/plugin marketplace add` — the `repo` value must name a
> single repository.
> **Enforcement** (v2.1.117+): `blockedMarketplaces` and `strictKnownMarketplaces` are enforced on every plugin lifecycle event — install, update, refresh, and autoupdate — not just at first add. `strictKnownMarketplaces` is managed-only.
Example `blockedMarketplaces` with host/path regex (v2.1.119):
@@ -604,9 +615,56 @@ Plugins can be sourced from multiple locations:
| **Git subdirectory** | `{ "source": "git-subdir", "url": "...", "path": "..." }` | `{ "source": "git-subdir", "url": "https://github.com/org/monorepo.git", "path": "packages/plugin" }` |
| **npm** | `{ "source": "npm", "package": "..." }` | `{ "source": "npm", "package": "@acme/claude-plugin", "version": "^2.0" }` |
| **pip** | `{ "source": "pip", "package": "..." }` | `{ "source": "pip", "package": "claude-data-plugin", "version": ">=1.0" }` |
| **Archive** (v2.1.224+) | `{ "source": "archive", "url": "..." }` | `{ "source": "archive", "url": "https://cdn.example.com/lint-plugin-1.2.0.zip", "sha256": "…" }` |
| **Command** (v2.1.229+) | `{ "source": "command", "command": "..." }` | `{ "source": "command", "command": "acme-plugin-resolver --print-dir" }` |
GitHub and git sources support optional `ref` (branch/tag) and `sha` (commit hash) fields for version pinning.
#### `archive` source (v2.1.224+)
Install a plugin from a zip over HTTPS — no git clone, no npm install.
```json
{
"source": "archive",
"url": "https://cdn.example.com/lint-plugin-1.2.0.zip",
"sha256": "3b1f0c2e9a7d4f5b8c6e1a2d3f4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b"
}
```
| Field | Required | Notes |
|-------|----------|-------|
| `url` | Yes | **HTTPS only.** `http://`, loopback, link-local, and cloud-metadata hosts are rejected — and re-checked on **every redirect hop**, so a redirect cannot smuggle you onto a blocked host |
| `sha256` | No | 64 hex characters. On mismatch the install fails with `Plugin archive integrity check failed` |
Archives are capped at **256 MiB**. Pin `sha256` for anything you did not build yourself — without it, whoever controls the URL controls the code that runs in your session.
#### `command` source (v2.1.229+)
Let a locally installed tool decide where the plugin lives. Useful when an internal
package manager already knows how to fetch and lay out your plugins.
```json
{
"source": "command",
"command": "acme-plugin-resolver --print-dir",
"timeout": 60,
"mode": "copy"
}
```
The contract is strict: **the command must print exactly one line on stdout and exit with
code 0.** That line is the absolute path of a directory containing the complete plugin.
| Field | Required | Default | Notes |
|-------|----------|---------|-------|
| `command` | Yes | — | The command to run |
| `timeout` | No | `60` (seconds) | Maximum 600 |
| `mode` | No | `"copy"` | `"copy"` snapshots the directory; `"link"` symlinks it, so edits are live |
The command is re-resolved each session and the result is applied without a restart.
Organizations can block this source type entirely with `disableCommandPluginSources`.
Reserved marketplace names now include `first-party-plugins` and `healthcare` (v2.1.205) — these are held for official use and cannot be claimed by a custom marketplace.
### Distribution methods
@@ -622,6 +680,13 @@ Reserved marketplace names now include `first-party-plugins` and `healthcare` (v
/plugin marketplace add https://gitlab.com/org/marketplace-repo.git
```
Bare `gitlab.com` repo URLs — including nested subgroups — clone the same way `github.com`
URLs do (v2.1.232). **The scheme is mandatory**: since v2.1.196 a bare
`gitlab.example.com/team/plugins` is rejected as an invalid `owner/repo` shorthand, so use
the full `https://gitlab.com/company/plugins.git` form. v2.1.232 also added GitLab
token-family secret redaction and gave the `glab` CLI the same sandbox and credential-path
protection `gh` already had.
**Private repositories**: Supported via git credential helpers or environment tokens. Users must have read access to the repository.
**Official marketplace submission**: Submit plugins to the Anthropic-curated marketplace for broader distribution via [claude.ai/settings/plugins/submit](https://claude.ai/settings/plugins/submit) or [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit).
@@ -745,6 +810,17 @@ LSP servers were added to the details pane in v2.1.142. See also the marketplace
claude plugin install plugin-name@marketplace-name
```
**Does it take effect right away?** Since **v2.1.221**, usually yes — read the last line of
the install summary:
| Install summary says | What it means |
|---|---|
| `Plugin is now active.` | Claude Code activated the plugin as part of the install. Nothing more to do. |
| `Run /reload-plugins to activate.` | The plugin is installed but not live yet — either activating it would have invalidated the prompt cache, or the activation attempt failed. |
Before v2.1.221, no install took effect in the current session until you ran
`/reload-plugins` or restarted, so older guides describe that step as unconditional.
### Enable / Disable (with auto-detected scope)
```bash
/plugin enable plugin-name
@@ -791,7 +867,7 @@ Claude Code can automatically update marketplaces and their installed plugins at
When auto-update runs, Claude Code:
1. Refreshes marketplace catalog
2. Updates installed plugins to latest versions
3. Shows notification prompting `/reload-plugins`
3. Reports the outcome per plugin: `Plugin is now active.` when Claude Code activated it as part of the update, or `Run /reload-plugins to activate.` when it did not
### Environment Variables
@@ -889,6 +965,18 @@ Administrators can control plugin behavior across an organization using managed
| `strictKnownMarketplaces` | Restrict which marketplaces users are allowed to add (managed-only; enforced on every plugin lifecycle event since v2.1.117) |
| `blockedMarketplaces` | Blocklist of marketplaces; enforced on every plugin lifecycle event since v2.1.117; supports `hostPattern` / `pathPattern` regex fields since v2.1.119 |
| `allowedChannelPlugins` | Control which plugins are permitted per release channel |
| `disableCommandPluginSources` | Block the `command` plugin source type org-wide (v2.1.229+) |
> **Friendlier aliases (v2.1.232)**: `additionalMarketplaces` is accepted as an alias for
> `extraKnownMarketplaces`, and `allowedMarketplaces` for `strictKnownMarketplaces`.
> **Changelog-sourced** — the v2.1.232 changelog announces them, but the official settings
> reference does not yet list either name. The canonical keys are safe to keep using.
> **Owner wildcards (v2.1.223+)**: a `"owner/*"` entry allows or blocks every marketplace
> repo under one GitHub owner. **Accepted only in `strictKnownMarketplaces` and
> `blockedMarketplaces`.** Everywhere else a `github` source appears — including
> `extraKnownMarketplaces` and `/plugin marketplace add` — the `repo` value must name a
> single repository.
These settings can be applied at the organization level via managed configuration files and take precedence over user-level settings.
@@ -1134,13 +1222,13 @@ The following Claude Code features work together with plugins:
---
**Last Updated**: August 4, 2026
**Claude Code Version**: 2.1.220
**Last Updated**: August 15, 2026
**Claude Code Version**: 2.1.233
**Sources**:
- https://code.claude.com/docs/en/plugins
- https://code.claude.com/docs/en/changelog#2-1-172
- https://code.claude.com/docs/en/changelog
- https://code.claude.com/docs/en/slash-commands
- https://code.claude.com/docs/en/commands
- https://code.claude.com/docs/en/plugin-marketplaces
- https://github.com/anthropics/claude-code/releases/tag/v2.1.117
- https://github.com/anthropics/claude-code/releases/tag/v2.1.118