Files
AgentHub/docs/claude-memory/claude-code-changelog-2-1-293.md
T
nntrivi2001 9c573f1e3c docs: snapshot of the project's Claude Code memory
Decisions, environment quirks and pitfalls learned while working on AgentHub
(docs/claude-memory/, indexed by MEMORY.md). Notes holding personal account
details are left out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 15:27:35 +07:00

51 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: claude-code-changelog-2-1-293
description: "Claude Code changelog 2.1.285–2.1.295 (to 2026-10-08) — items that touch AgentHub's hooks, plugins, resume, MCP, CLI, Workflow"
metadata:
node_type: memory
type: reference
originSessionId: f2f2cbeb-6ac1-4876-8b8a-f8dc6cd3a17b
modified: 2026-10-09T03:58:51.151Z
---
Source: https://code.claude.com/docs/en/changelog (re-read 2026-10-09). Installed on this box: 2.1.295 = latest (auto-updated). The local ~/.claude/cache/changelog.md is stale (stops at 2.1.139); always read the web page.
AgentHub-relevant changes:
- **2.1.295**:
- Hooks get `onFailure: "block"` for command/HTTP hooks: a hook that fails, times out or exits oddly BLOCKS the action. AgentHub's own hooks must keep the default (fail-open), per CLAUDE.md "Hooks: keep fail-safe and non-blocking". Never set it in plugin.json or the installer.
- **Program Status Protocol (OSC 7501)**: Claude Code reports working / waiting / done to the terminal. TESTED 2026-10-09: it cannot replace hooks and does not work through tmux; see [[osc7501-vs-hooks]].
- `claude -p` prints on stderr what it is waiting for when it stays open.
- Subagents preload at most 32 skills.
- claude.ai connectors default to MCP protocol 2026-07-28 (`MCP_PROTOCOL_NEGOTIATION=legacy` opts out).
- Fixes:
- Background sessions no longer inherit `FORCE_COLOR=3`.
- Subagents in a linked worktree no longer see the parent's git branch/status.
- An async SessionStart hook's context is no longer re-added on every resume.
- `CLAUDE_ENV_FILE` vars now survive `/resume` and `/branch`.
- `--tools`/`--restricted` now cover late-registered tools.
- An Edit is no longer treated as a full read when the file changed without its mtime advancing.
- Grep accepts `-l`/`-c`/`-r`.
- **2.1.294**: `prompt`/`agent` hooks written as instructions ("Block commands that…") no longer let through what they should block, and Stop/SubagentStop prompt hooks are judged better.
- **2.1.293**: `subagentStatusLine` payload gains `agentType`; mods' `classic.*` hooks no longer skipped during plugin-hooks-worker restart; `claude plugin test` gets `mock.session`.
- **2.1.292**: `claude plugin install --marketplace <source>` (adds marketplace + installs in one step — could simplify the manual install command); stdio MCP negotiates protocol 2026-07-28 by default (`MCP_PROTOCOL_NEGOTIATION=legacy` opts out — relevant to `agenthub mcp`); `/loop` wakeups survive process restart.
- **2.1.290**: `claude attach <name>` / `claude logs <name>` accept partial session names; plugin hook `tool.check` has `agentId`; permission rules re-applied after a PreToolUse hook rewrites input; `CLAUDE_CODE_DISABLE_ATTACHMENTS` no longer settable from repo `.claude/settings*.json`.
- **2.1.289**: `agent.spawn` for teammates, one agent id across plugin hook events, idle/waiting in `$.agent.list()`; fixed stale local-folder-marketplace plugin copies and mods not loading in first session after upgrade.
- **2.1.288**: resume/transcript-loss fixes; InstructionsLoaded hook now carries `agent_id`/`agent_type`; PreToolUse/PermissionRequest now BLOCK the call if matching fails or input isn't JSON-serializable; `claude project purge` → `claude purge` (old name still works).
- **2.1.287**: **Claude Mods** (plugins modifying deeper behavior, function hooks); OTel `user_prompt` gains `prompt_text` (mask like `prompt`); MCP `alwaysLoad: false` defers all that server's tools behind tool search; "N hooks ran" no longer double-counts internal callbacks; SessionStart from synced plugins runs in cloud sessions.
- **2.1.286**: `--bare` connects only CLI-named MCP servers, no system reminders, no background tasks; `/hooks` is one grouped list; plugin installs refuse npm sources that are git repos/folders.
- **2.1.285**: `claude --desktop`; `claude plugin configure <plugin>` (+ `--values-stdin`); `claude plugin install --config <server>.<key>=<value>`; managed `allowedProviders`; `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`.
Nothing in this range changes `--session-id`, `--worktree`, `/reload-plugins` or tmux behavior that AgentHub relies on (see [[update-never-kills-panes]]).
Useful for the user's own workflow (beyond AgentHub):
- Skill evals (`learned:writing-agent-context` → `claude plugin eval`): 2.1.292 makes a failed `expect` in a test-registered hook, or a refused stub answer, FAIL `claude plugin test` instead of passing silently, so a suite that was green before may now go red for a real reason.
- `claude purge` is the new name of `claude project purge`.
- `/loop` and scheduled tasks now survive resume, compaction and process restart (2.1.290/2.1.292).
- `claude --desktop` opens the current dir/session in the desktop app.
- Workflow tool (2.1.295):
- `scriptPath` is only accepted for a path the tool returned or a readable dir. The refusal now says to pass the script inline via `script`.
- Workflow scripts are persisted under ~/.claude/projects/<cwd-slug>/…; copy one into an added dir (not /tmp, see [[tmp-wiped-on-reboot]]) to resume it.
- "May have been stopped by TaskStop" on resume was a false notice and is fixed.
- Forked skills inside workflow subagents now return to the invoking agent.
- `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` caps unattended 429/529 retry waits.