oh-my-customcode 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli/index.js +40 -14
- package/dist/index.js +40 -14
- package/package.json +1 -1
- package/templates/.claude/hooks/scripts/claude-md-reinject.sh +7 -1
- package/templates/.claude/hooks/scripts/session-reflection.sh +60 -15
- package/templates/.claude/hooks/scripts/stuck-detector.sh +110 -14
- package/templates/.claude/rules/MAY-optimization.md +1 -1
- package/templates/.claude/rules/MUST-agent-design.md +5 -4
- package/templates/.claude/rules/SHOULD-memory-integration.md +1 -1
- package/templates/.claude/rules/SHOULD-verification-ladder.md +9 -0
- package/templates/.claude/skills/pipeline/workflows/auto-dev.yaml +3 -1
- package/templates/guides/claude-code/15-version-compatibility.md +397 -0
- package/templates/guides/external-tools/ecc-absorption-decisions.md +1 -1
- package/templates/guides/multi-model-routing/README.md +2 -1
- package/templates/guides/multi-provider-exec/README.md +1 -1
- package/templates/manifest.json +1 -1
- package/templates/workflows/auto-dev.yaml +3 -1
|
@@ -1919,6 +1919,396 @@ Opus 4.8에서 thinking blocks가 수정되어 API 오류가 발생하던 버그
|
|
|
1919
1919
|
|
|
1920
1920
|
---
|
|
1921
1921
|
|
|
1922
|
+
## v2.1.290 (2026-10-05)
|
|
1923
|
+
|
|
1924
|
+
> Issue: #1845 — Claude Code v2.1.290 compatibility documentation
|
|
1925
|
+
> Scope-ceiling check (R017): 조사 시점(2026-10-13)의 최신 릴리즈는 2.1.296입니다(`claude --version`=2.1.296, `npm view @anthropic-ai/claude-code version`=2.1.296). 2.1.291~2.1.296 절에서 "2.1.290"과 "Revert"를 검색한 결과, 이 릴리즈 항목을 되돌리는 문장 1건과 이 릴리즈가 들여온 회귀를 고친 문장 1건이 관측됐습니다. 2.1.293 절: "Reverted the 2.1.290 fix for cloud sessions staying asleep after a container restart lost a pending `/loop` wakeup or scheduled task; Claude is no longer told, and the session stays asleep" — 아래 클라우드 세션 항목에 반영했습니다. 2.1.291 절: "Fixed a regression in 2.1.290 where cloud sessions could drop answers to permission prompts" — 2.1.290이 들여온 클라우드 세션 회귀를 고친 수정이며, 이 릴리즈 항목을 되돌리거나 좁히는 문장은 아닙니다. 이 저장소가 클라우드 세션을 쓰는지는 관측하지 않았습니다(2.1.291 절과 같은 [가설]). 2.1.293 절의 다른 "Reverted" 항목은 2.1.281 변경에 대한 것이며 이 릴리즈와 무관합니다. 2.1.295 절의 "Fixed a background session's `/loop` stopping without notice when its next wakeup came due while the session's process was down; the session now says so and Claude is told"와 "Fixed a stopped scheduled task coming back on resume after a rewind, and a scheduled task being lost on resume after Esc or a rewind following a compaction"은 같은 `/loop`·예약 작업 영역의 후속 수정이며(뒤 문장은 아래 compaction 뒤 예약 작업 복귀 항목의 후속), 둘 다 롤백이 아닙니다. 릴리즈 게시 시각은 2026-10-05T23:33:17Z입니다(`gh release view v2.1.290 -R anthropics/claude-code --json publishedAt`).
|
|
1926
|
+
|
|
1927
|
+
### 에이전트 · teammate · worktree
|
|
1928
|
+
|
|
1929
|
+
- CHANGELOG 원문: "Changed an in-process teammate's `agent_id` in Agent results to its agent ID (its `name@team` address stays in `teammate_id`); TeammateIdle hooks no longer fire from its subagents or forks"
|
|
1930
|
+
(290) 인프로세스 teammate의 Agent 반환 결과에서 `agent_id`는 agent ID가 되고 `name@team` 주소는 `teammate_id`에 남으며, 그 teammate의 서브에이전트나 fork에서는 TeammateIdle 훅이 더 이상 발화하지 않습니다. 관측한 범위에서 `.claude/settings.json:355`의 TeammateIdle 훅은 stdin에서 `.teammate_id`를 읽으므로(`.claude/settings.json:360`) 주소 필드가 유지되는 한 읽는 필드는 그대로입니다. 이 변경은 Agent 반환 결과에 대한 서술이며 훅 stdin의 필드 변경이라는 근거는 원문에 없습니다 [가설 — 훅 stdin의 `teammate_id` 값 형식 불변 여부는 실제 teammate 세션 미실측]. R018은 `TeamCreate` 부재로 dormant이므로(`.claude/rules/MUST-agent-teams.md:22`, `:36`) 정책 변경은 없습니다.
|
|
1931
|
+
- CHANGELOG 원문: "Fixed background subagents losing write and Bash access in their worktree after the main session enters or exits a different worktree"
|
|
1932
|
+
(290) 메인 세션이 다른 worktree에 들어가거나 나온 뒤 백그라운드 서브에이전트가 자기 worktree의 write·Bash 접근을 잃던 결함이 수정되었습니다. 관측한 범위(`git grep -n '^isolation:' -- '.claude/agents/*.md'`)에서 에이전트 frontmatter의 `isolation:` 값은 `sec-codeql-expert`의 `sandbox`(`.claude/agents/sec-codeql-expert.md:8`) 1건이며 `isolation: worktree` 에이전트는 없습니다. frontmatter 밖의 worktree 경로, 즉 메인 세션이 `EnterWorktree`를 쓰는 `omcustom-auto-improve`(`.claude/skills/omcustom-auto-improve/SKILL.md:59`)와 호출 단위 `isolation: "worktree"` 위임(R009 `.claude/rules/MUST-parallel-execution.md:208`의 v2.1.273 노트)은 이번에 실행 검증하지 않았습니다. 따라서 그 경로의 백그라운드 서브에이전트에 대한 영향은 [가설 — 메인 세션의 worktree 전환과 백그라운드 서브에이전트 실행이 겹치는지로 판정]입니다. 이 수정은 플랫폼의 접근 복원이며 프로젝트의 도구 허용 범위를 넓히는 근거가 아닙니다.
|
|
1933
|
+
- CHANGELOG 원문: "Fixed resumed subagents and teammates losing their earlier thinking and prompt cache after receiving a message mid-run"
|
|
1934
|
+
(290) 재개된 서브에이전트와 teammate가 실행 중 메시지를 받은 뒤 이전 thinking과 prompt cache를 잃던 결함이 수정되었습니다. 원문의 발생 조건은 "after receiving a message mid-run"(실행 중 메시지 수신)입니다. 멈춘 위임을 `SendMessage`로 재개하는 R020 절차(`.claude/rules/MUST-completion-verification.md:120`)가 이 조건에 해당하는지는 [가설 — 재개 메시지가 원문의 실행 중 수신으로 처리되는지 미실측]이며, 효과 크기도 [가설 — 재개 전후 prompt_cache 필드를 R012 상태줄로 실측하면 판정]입니다.
|
|
1935
|
+
- CHANGELOG 원문: "Fixed background agents failing with "Agent stalled" and Workflow tool subagents restarting from their prompt when a Mac woke from sleep"
|
|
1936
|
+
(290) Mac이 절전에서 깨어날 때 백그라운드 에이전트가 "Agent stalled"로 실패하고 Workflow 도구의 서브에이전트가 프롬프트부터 다시 시작되던 결함이 수정되었습니다. 이 저장소의 개발 환경은 macOS(Darwin)이므로 `/fsd` 장기 루프의 절전 후 중단 진단 시 이 축을 확인 대상에 포함합니다. R018의 정체 멤버 재할당 규칙(`.claude/rules/MUST-agent-teams.md:349`의 "Reassign (>2min)", `:568`의 "~2분간 진행이 없으면") 문안은 바뀌지 않습니다.
|
|
1937
|
+
|
|
1938
|
+
### 예약 작업 · 백그라운드 세션 (/loop)
|
|
1939
|
+
|
|
1940
|
+
- CHANGELOG 원문: "Fixed scheduled tasks (`/loop` with an interval, reminders) silently not coming back on resume once the conversation was compacted; covers compactions made from this version on"
|
|
1941
|
+
(290) 대화가 compact된 뒤 resume하면 `/loop` 간격 작업과 reminder가 조용히 돌아오지 않던 결함이 수정되었으며, 적용 범위는 이 버전부터 수행한 compaction입니다. 과거에 compact된 세션까지 복구된다고 확장하지 않습니다. 원문의 대상은 간격을 둔 `/loop`와 reminder이며, `/fsd`의 `/loop`는 간격 없이 모델이 주기를 정하는 self-paced 루프입니다(`.claude/skills/fsd/SKILL.md:16`, `:39` "self-paced loop (model decides cadence)"; `:162`는 스킬 호출이 필수가 아니라고 명시). CHANGELOG는 self-paced 루프를 따로 부르기도 하므로(2.1.295 "a self-paced `/loop`") 이 수정이 `/fsd`의 루프에도 적용되는지는 [가설 — self-paced `/loop` 세션을 compact한 뒤 resume해 루프가 돌아오는지 실측하면 판정]입니다.
|
|
1942
|
+
- CHANGELOG 원문: "Fixed scheduled tasks set in the foreground never firing after a ← or `/background` hand-off, and recurring ones firing an extra run on every resume, respawn or fork"
|
|
1943
|
+
(290) foreground에서 설정한 예약 작업이 ← 또는 `/background` hand-off 뒤 발화하지 않던 결함과, 반복 작업이 resume·respawn·fork마다 추가로 한 번 더 실행되던 결함이 수정되었습니다. `.claude/settings.json`에는 예약 관련 설정이 없습니다(`command grep -c -E 'ScheduleWakeup|CronCreate' .claude/settings.json` 결과 0). 관측한 범위(`git grep -n -E 'CronCreate|ScheduleWakeup|/schedule' -- '.claude/skills/*/SKILL.md'`와 `/fsd`의 `/loop` 줄)에서 플랫폼 예약 기능을 언급하는 스킬 경로는 두 가지입니다. 하나는 `/fsd`의 선택적 `/loop`·ScheduleWakeup 호출(`.claude/skills/fsd/SKILL.md:16`, `:162`)이고, 다른 하나는 `claude-native` 스킬의 예약 실행 안내(`.claude/skills/claude-native/SKILL.md:232` "### Scheduled (CronCreate)", `:237`의 `/schedule "daily at 9am: /claude-native"`, `:240` "Or via CronCreate MCP tool for programmatic scheduling.")입니다. `/schedule`은 `.claude/skills/claude-native/SKILL.md:234`("Can be set up as a scheduled remote agent using `/schedule`")가 말하는 scheduled remote agent를 만드는 경로이고, 2026-10-13 Claude Code 2.1.296 세션의 스킬 목록에서 `schedule` 스킬 설명도 이를 "scheduled cloud agents (routines)"로 소개합니다. 따라서 이 항목의 세션 예약 작업과 다를 수 있습니다 [가설 — `/schedule` routine이 세션 예약 작업 경로를 거치는지는 미관측]. `:240`의 CronCreate 경로는 `/schedule`과 별개로 CronCreate 도구로 예약을 만드는 안내이며, 이것이 이 항목의 세션 예약 작업에 해당하는지도 [가설 — 미관측]입니다. 두 스킬 경로의 실제 사용도 관측하지 않았습니다. `omcustom-loop`는 예약 기능을 언급하지 않습니다(`command grep -c -E '/loop|ScheduleWakeup|CronCreate' .claude/skills/omcustom-loop/SKILL.md` 결과 0). 이 스킬은 SubagentStop 훅을 이용한 자동 이어가기를 설명하며 현재 배선은 v2.1.294 절에 정리했습니다. 따라서 프로젝트 변경은 필요하지 않습니다.
|
|
1944
|
+
- CHANGELOG 원문: "Fixed `/loop` and other recurring session-only scheduled tasks running an extra time after a sandboxed Bash command on Linux or after `.claude/scheduled_tasks.json` was deleted"
|
|
1945
|
+
(290) Linux의 sandboxed Bash 명령 뒤, 또는 `.claude/scheduled_tasks.json`이 삭제된 뒤 `/loop` 등 세션 한정 반복 작업이 한 번 더 실행되던 결함이 수정되었습니다. 첫 조건에 대해서는 관측한 범위에서 `.claude/settings.json`에 `sandbox` 키가 없고(`jq 'has("sandbox")'`=false) 개발 환경이 macOS이므로 직접 영향 조건이 관측되지 않았습니다. 둘째 조건인 `.claude/scheduled_tasks.json` 삭제에 대해서는, 이 파일이 현재 없고(`ls` 결과 "No such file or directory") gitignore 대상이며(`git check-ignore -v .claude/scheduled_tasks.json` → `.gitignore:40:.claude/*`), 이 가이드·미러를 제외한 추적 파일 중 이 파일 이름을 언급하는 곳은 R009 v2.1.273 노트(`.claude/rules/MUST-parallel-execution.md:208`)와 그 `templates/` 미러·위키 사본이어서(`git grep -n scheduled_tasks`), 파일 이름 검색 범위에서는 이 파일을 직접 지우는 경로가 관측되지 않았습니다. 다만 디렉터리 단위 경로는 이 파일을 지울 수 있습니다. 기존 설치에서 `omcustom init`은 `install({ backup: exists })`를 호출하고(`src/cli/init.ts:205`), 백업 단계가 `.claude/`를 `.claude-backup-` 접두의 타임스탬프 폴더로 `rename`하며(`src/core/installer.ts:197`, `:933`, `:919`~`:925`; `src/core/layout.ts:28`, `:32`), 복원 대상 기본값은 `settings.json`·`settings.local.json`과 `agent-memory`·`agent-memory-local`입니다(`src/core/file-preservation.ts:25`, `:30`). R001이 승인을 요구하는 `git clean -fdx`도 gitignore 대상인 이 파일을 지웁니다.
|
|
1946
|
+
- CHANGELOG 원문: "Changed background sessions waiting on a scheduled wakeup (`/loop`): they are now left running through updates and low memory, where being restarted or shut down could silently lose the wakeup"
|
|
1947
|
+
(290) `/loop` 예약 wakeup을 기다리는 백그라운드 세션은 업데이트와 메모리 부족 상황에서도 재시작·종료되지 않고 유지되므로, 이전에 wakeup이 조용히 사라질 수 있던 경로가 줄어듭니다. R013의 메모리 압박 노트(v2.1.238/274)와 관련된 영역이지만 그 임계값 계산을 바꾸지 않습니다.
|
|
1948
|
+
- CHANGELOG 원문: "Fixed sessions moved to the background while idle reopening as "no saved transcript" after a restart or idle cleanup; they now resume their conversation"
|
|
1949
|
+
(290) idle 상태에서 백그라운드로 옮겨진 세션이 재시작이나 idle cleanup 뒤 "no saved transcript"로 열리던 결함이 수정되어 이제 대화를 재개합니다. 이 저장소의 재개 절차(R011 세션 메모리)는 바뀌지 않으며, 실제 재개 동작은 이번 정적 검토에서 실행 검증하지 않았습니다.
|
|
1950
|
+
- CHANGELOG 원문: "Fixed cloud sessions staying asleep after a container restart lost a pending `/loop` wakeup or scheduled task; Claude is now told and can schedule it again"
|
|
1951
|
+
(290) 클라우드 세션에서 컨테이너 재시작으로 `/loop` wakeup이나 예약 작업이 사라진 뒤 세션이 계속 잠든 채로 남던 결함에 대한 수정입니다. 단, 2.1.293 절의 "Reverted the 2.1.290 fix for cloud sessions staying asleep after a container restart lost a pending `/loop` wakeup or scheduled task; Claude is no longer told, and the session stays asleep"가 이 수정을 되돌렸으므로 현재 최신 버전(2.1.296)에서는 이 항목이 유효하지 않습니다. 이 저장소가 클라우드 세션을 쓰는지는 관측되지 않았습니다. 관측한 범위(`git grep -n -E 'container restart|staying asleep' -- .claude/rules guides CLAUDE.md`, 이 가이드·미러 제외)에서 이 수정에 기대는 룰·가이드 문장은 찾지 못했습니다(유일한 일치인 `.claude/rules/MUST-completion-verification.md:567`은 2.1.275의 권한 프롬프트 항목입니다).
|
|
1952
|
+
|
|
1953
|
+
### 훅 · 플러그인
|
|
1954
|
+
|
|
1955
|
+
- CHANGELOG 원문: "Fixed Claude replying in an endless loop when a plugin's async Stop hook passes an unquoted script path under a folder with a space, such as Application Support"
|
|
1956
|
+
(290) 플러그인의 async Stop 훅이 공백이 든 폴더(예: Application Support) 아래의 인용되지 않은 스크립트 경로를 넘길 때 Claude가 무한 루프로 응답하던 결함이 수정되었습니다. 이 결함은 플러그인 훅에 관한 것이며, 이 저장소는 플러그인 매니페스트(`.claude-plugin/`)를 두지 않아(`git ls-files` 0건, `find -maxdepth 4 -name .claude-plugin` 0건) 플러그인 훅을 배포하지 않습니다. 참고로 프로젝트 `.claude/settings.json`의 훅 핸들러 64개(`command` 63·`prompt` 1) 중 `async: true`는 0건이며, `bash `로 시작하는 훅 명령 44개는 전부 `bash "${CLAUDE_PROJECT_DIR:-.}/..."` 형태로 경로를 따옴표로 감쌉니다(`jq '[.hooks[][]?.hooks[]? | select(.async==true)] | length' .claude/settings.json`=0, 같은 jq에서 `.command`가 `bash "${CLAUDE_PROJECT_DIR:-.}/`로 시작하는 항목 수=44; 같은 형태의 `statusLine` 명령은 훅이 아니므로 제외). 사용자가 설치한 플러그인의 훅은 저장소에서 관측할 수 없습니다.
|
|
1957
|
+
- CHANGELOG 원문: "Fixed some permission rules and safety checks not being applied to a tool call after a PreToolUse hook rewrote its input"
|
|
1958
|
+
(290) PreToolUse 훅이 도구 호출의 입력을 다시 쓴 뒤 일부 권한 규칙과 안전 검사가 그 호출에 적용되지 않던 결함이 수정되었습니다. 관측한 범위에서 `updatedInput`·`permissionDecision`은 `.claude/hooks`와 `.claude/settings.json`의 인라인 훅 어디에도 없으므로(`git grep -n -E 'updatedInput|permissionDecision' -- .claude/hooks` 0건, `command grep -c -E 'updatedInput|permissionDecision' .claude/settings.json` 0) 이 저장소 훅은 입력을 다시 쓰지 않으며 영향 조건이 관측되지 않았습니다.
|
|
1959
|
+
- CHANGELOG 원문: "Fixed sandboxed Bash commands on Linux running `ConfigChange` hooks and reloading settings mid-command when `.claude/settings.json` or `.claude/settings.local.json` does not exist"
|
|
1960
|
+
(290) `.claude/settings.json` 또는 `.claude/settings.local.json`이 없을 때 Linux의 sandboxed Bash 명령이 명령 도중 `ConfigChange` 훅을 실행하고 설정을 다시 읽던 결함이 수정되었습니다. 관측한 범위에서 `.claude/settings.json`에 `ConfigChange` 훅이 없고(`jq '.hooks|has("ConfigChange")'`=false) 두 설정 파일이 모두 존재하며(`ls`) `sandbox` 키도 없어(`jq 'has("sandbox")'`=false) 영향 조건이 관측되지 않았습니다.
|
|
1961
|
+
- CHANGELOG 원문: "Added `agentId` to the `tool.check` event of plugin hooks, so a hook can tell a subagent's permission check from the main session's"
|
|
1962
|
+
(290) 플러그인 훅의 `tool.check` 이벤트에 `agentId`가 추가되어, 훅이 서브에이전트의 권한 검사와 메인 세션의 검사를 구분할 수 있습니다. 이 항목은 플러그인(mod) 훅 표면이며, `r007-r008-drift-advisor.sh`가 읽는 것은 프로젝트 `settings.json` 훅 stdin의 `agent_id`입니다(`.claude/hooks/scripts/r007-r008-drift-advisor.sh:152`). 두 표면은 서로 다르므로 이 스크립트의 payload 계약을 바꾸지 않으며 코드 변경은 제안하지 않습니다.
|
|
1963
|
+
|
|
1964
|
+
### 권한 · Bash · 설정
|
|
1965
|
+
|
|
1966
|
+
- CHANGELOG 원문: "Fixed Bash permission checks auto-approving some read-only commands (such as `rg` or `git grep`) whose arguments the shell would still expand as wildcards; these now prompt for approval"
|
|
1967
|
+
(290) 셸이 인자를 여전히 와일드카드로 확장하는 일부 읽기 전용 명령(예: `rg`, `git grep`)을 Bash 권한 검사가 자동 승인하던 결함이 수정되어 이제 승인을 묻습니다. R005·R002가 전수조사 표준으로 지정한 `git grep`(`.claude/rules/MAY-optimization.md:87`)과 직접 관련됩니다. 다만 `.claude/settings.json`의 allow 규칙에 `Bash(git:*)`가 있어 규칙 일치로 허용될 가능성이 있으나, 규칙 일치와 읽기 전용 자동 승인 분류의 우선 관계는 관측되지 않았습니다 [가설 — 와일드카드 인자를 가진 `git grep` 실행 시 프롬프트 여부를 실측하면 판정]. 와일드카드 인자 사용 시 승인 프롬프트가 늘 수 있으며, 무인 실행의 유효 permission mode 확인(R010 Self-Check)은 그대로 필요합니다.
|
|
1968
|
+
- CHANGELOG 원문: "Fixed Bash permission checks auto-approving certain commands whose variable names zsh reads differently from bash; these now prompt for approval"
|
|
1969
|
+
(290) zsh가 bash와 다르게 해석하는 변수 이름을 가진 일부 명령을 Bash 권한 검사가 자동 승인하던 결함이 수정되어 이제 승인을 묻습니다. 이 저장소의 셸은 zsh이며 R005가 zsh 변수 분할 차이를 다루지만(`.claude/rules/MAY-optimization.md:43`), 이 수정은 그 문장의 내용을 바꾸지 않습니다.
|
|
1970
|
+
- CHANGELOG 원문: "Changed `CLAUDE_CODE_DISABLE_ATTACHMENTS` so a repository's `.claude/settings.json` or `.claude/settings.local.json` can no longer set it; shell, user and managed settings still can"
|
|
1971
|
+
(290) 저장소의 `.claude/settings.json`·`.claude/settings.local.json`은 더 이상 `CLAUDE_CODE_DISABLE_ATTACHMENTS`를 설정할 수 없고 셸·사용자·managed 설정은 계속 설정할 수 있습니다. 관측한 범위에서 이 가이드와 미러를 제외한 추적 파일 전체에서 이 키는 0건이고(`git grep -n CLAUDE_CODE_DISABLE_ATTACHMENTS -- . ':!guides/claude-code/15-version-compatibility.md' ':!templates/guides/claude-code/15-version-compatibility.md'`), gitignore 대상인 `.claude/settings.local.json`도 `command grep -c` 결과 0건이므로 영향이 없습니다.
|
|
1972
|
+
- CHANGELOG 원문: "Fixed automatic compaction giving up with "Prompt is too long" when a Mac went to sleep while it was running"
|
|
1973
|
+
(290) Mac이 절전 상태가 되었을 때 자동 compaction이 "Prompt is too long"으로 포기하던 결함이 수정되었습니다. R013의 v2.1.269/273 노트(같은 오류 계열의 compaction 정지 결함)와 같은 방향의 수정이며 R013 임계값은 바뀌지 않습니다.
|
|
1974
|
+
|
|
1975
|
+
### 스킬 · MCP · 도구
|
|
1976
|
+
|
|
1977
|
+
- CHANGELOG 원문: "Fixed skills not being found when asked for by the name in SKILL.md when their folder has a different name (for example a non-English name): the skill listing now shows both names"
|
|
1978
|
+
(290) 폴더 이름이 SKILL.md의 `name`과 다를 때(예: 비영어 이름) `name`으로 요청한 스킬을 찾지 못하던 결함이 수정되었고, 스킬 목록은 이제 두 이름을 함께 표시합니다. 관측한 범위(python3로 `.claude/skills/*/SKILL.md`의 `name:`과 폴더 이름을 비교)에서 114개 중 22개의 `name`이 폴더 이름과 다릅니다. 그중 20개는 `name: omcustom:<폴더명>` 형태이고(예: `.claude/skills/create-agent/SKILL.md:2`, `.claude/skills/fsd/SKILL.md:2`), 2개는 폴더 이름의 `omcustom-` 접두를 `omcustom:`로 바꾼 형태입니다(`omcustom-auto-improve` → `omcustom:auto-improve`, `omcustom-web` → `omcustom:web`). 따라서 이 저장소에 직접 해당하는 수정입니다. 목록 표시가 바뀌므로 `/skill-doctor`나 스킬 목록 출력을 문서화한 곳이 있다면 두 이름 표시를 반영해야 하지만, 그런 문서는 이번에 조사하지 않았습니다 [가설 — `git grep`으로 스킬 목록 출력 인용 문서를 찾으면 판정].
|
|
1979
|
+
- CHANGELOG 원문: "Changed skills and custom commands to refuse a `!` shell command that contains raw control characters other than tab and newline, with a message that shows where they are"
|
|
1980
|
+
(290) 스킬과 커스텀 커맨드는 탭과 개행을 제외한 raw 제어 문자가 든 `!` 셸 명령을 거부하며, 거부 메시지에 위치를 표시합니다. 관측한 범위(``git grep -n -E '^!|!`' -- '.claude/skills/*/SKILL.md'``)의 일치는 `.claude/skills/omcustom-release-notes/SKILL.md:164`의 "`!` breaking marker" 설명 1건이며 `!` 셸 명령이 아니므로, 영향 조건이 관측되지 않았습니다.
|
|
1981
|
+
- CHANGELOG 원문: "Fixed `disableClaudeAiConnectors` and `allowedMcpServers` URL rules not being applied to some MCP entries declared in `.mcp.json`, plugins or agents"
|
|
1982
|
+
(290) `disableClaudeAiConnectors`와 `allowedMcpServers` URL 규칙이 `.mcp.json`·플러그인·에이전트에 선언된 일부 MCP 항목에 적용되지 않던 결함이 수정되었습니다. 관측한 범위에서 `.mcp.json`에는 `eraser`, `ontology-rag` 2개 서버가 있고(jq 키 목록), `.claude/settings.json`·룰·로컬 설정에 `allowedMcpServers`·`disableClaudeAiConnectors`가 없으므로(`git grep -n -E 'allowedMcpServers|disableClaudeAiConnectors' -- .claude/settings.json .claude/rules` 0건, `.claude/settings.local.json`은 `command grep -c` 0) 저장소 설정 범위에서는 규칙이 걸려 있지 않아 영향 조건이 관측되지 않았습니다. 조직 managed 설정 유무는 저장소에서 관측할 수 없습니다.
|
|
1983
|
+
- CHANGELOG 원문: "Fixed WebFetch silently dropping page text past 100,000 characters; it now says how much was unread and takes an `offset` to read on"
|
|
1984
|
+
(290) WebFetch가 100,000자를 넘는 페이지 텍스트를 조용히 버리던 결함이 수정되어, 이제 읽지 못한 분량을 알리고 이어 읽을 `offset`을 받습니다. R005가 HTTP 조회에 `WebFetch`를 우선하도록 하므로(`.claude/rules/MAY-optimization.md:31`) 긴 페이지를 다룰 때 truncation이 보이게 된다는 점이 관련됩니다. 룰 문안 변경은 필요하지 않습니다.
|
|
1985
|
+
|
|
1986
|
+
기타 168건 — 이 저장소 비해당이거나 룰 변경이 필요 없는 세부 항목(Claude apps gateway, `/ultrareview`, agents view UI, mods 렌더링·pane 표시, VSCode·Cloud sessions·Claude Tag·Code Review·Remote Control 전용 항목, Windows 전용 수정, 터미널·키 입력 UI, plugin/mod 개발 API 세부, 보안 하드닝 세부, plan mode 세부(`--continue`·`--resume <session-id>` 재개 시 복원, 클라우드 컨테이너 재시작 시 계획 유실, connector 도구 승인), Bash 도구 세부(읽기 전용 명령의 권한 판정, changed-files 보기, `pyright`·`ps` 승인) 등). 이 중 "Fixed the Bash tool occasionally losing shell aliases, functions and plugin PATH entries for a whole session when its first command ran seconds after startup on a new config directory"는 이 저장소 Bash의 `grep`이 셸 함수라는 R005 문장(`.claude/rules/MAY-optimization.md:87`)과 관련되지만, 플랫폼 수정이므로 룰 변경 사안이 아닙니다. 실측: `gh release view v2.1.290 --repo anthropics/claude-code --json body --jq .body | grep -c '^- '` = 190건 중 위 본문 22건을 다뤘으므로 190 − 22 = 168건입니다. 계수 범위는 해당 릴리즈 노트의 최상위 불릿 줄(`- `로 시작하는 줄)입니다.
|
|
1987
|
+
|
|
1988
|
+
**Action items**:
|
|
1989
|
+
- 훅·권한·스킬·MCP 항목은 이 저장소의 관측 구성(`async` 훅 0건, `updatedInput` 출력 훅 0건, `ConfigChange` 훅 0건, `sandbox` 키 없음, `allowedMcpServers` 0건)에서 영향 조건이 관측되지 않거나 플랫폼 결함 수정이어서 룰·훅·에이전트 변경이 필요하지 않습니다.
|
|
1990
|
+
- 스킬 `name`과 폴더 이름 불일치(114개 중 22개)는 이번 수정의 직접 수혜 대상이며, 후속으로 스킬 목록 출력을 인용한 문서의 두 이름 표시 반영 여부만 확인하면 됩니다.
|
|
1991
|
+
- 룰 변경 제안은 없습니다(CC 2.1.290 CHANGELOG 항목 기준).
|
|
1992
|
+
|
|
1993
|
+
---
|
|
1994
|
+
|
|
1995
|
+
## v2.1.291 (2026-10-06)
|
|
1996
|
+
|
|
1997
|
+
> Issue: #1844 — Claude Code v2.1.291 compatibility documentation
|
|
1998
|
+
> Scope-ceiling check (R017): 조사 시점(2026-10-13)의 최신 릴리즈는 2.1.296입니다(`claude --version`=2.1.296, `npm view @anthropic-ai/claude-code version`=2.1.296). 2.1.293~2.1.296 CHANGELOG 절에서 `2.1.291` 문자열과 "Revert"를 검색한 결과, 이 릴리즈의 두 항목을 되돌리거나 좁히는 문장은 관측되지 않았습니다. 2.1.293 절의 롤백 문장 2건은 각각 2.1.281의 auto mode 거부 메시지 변경과 2.1.290의 클라우드 세션 wakeup 수정을 대상으로 하며(293 절 "Reverted the 2.1.290 fix for cloud sessions staying asleep after a container restart lost a pending `/loop` wakeup or scheduled task; Claude is no longer told, and the session stays asleep"), 이 릴리즈의 권한 프롬프트 답변 누락 수정과는 다른 항목입니다. 릴리즈 게시 시각은 2026-10-06T03:55:19Z입니다(`gh release view v2.1.291 -R anthropics/claude-code --json publishedAt`).
|
|
1999
|
+
|
|
2000
|
+
### 세션 · 권한 프롬프트
|
|
2001
|
+
|
|
2002
|
+
- CHANGELOG 원문: "Fixed a regression in 2.1.290 where cloud sessions could drop answers to permission prompts"
|
|
2003
|
+
(291) 2.1.290에서 생긴 회귀로, 클라우드 세션이 권한 프롬프트에 대한 답변을 누락할 수 있던 결함이 수정되었습니다. 이 저장소의 `.claude/settings.json`은 `permissions.allow` 17개(`jq '.permissions.allow|length'`)와 `permissions.defaultMode: "bypassPermissions"`(`.claude/settings.json:23`)를 두지만, 바로 위 `:22`의 `_comment_defaultMode`가 "Do NOT rely on this key for unattended runs."라고 적고 있고 R010은 2.1.257부터 project·local scope의 `bypassPermissions`가 무시된다고 기록합니다(`.claude/rules/MUST-orchestrator-coordination.md:588`). R010은 또한 서브에이전트가 부모 세션의 권한 모드를 상속하되 에이전트 정의 frontmatter가 이를 덮어쓸 수 있다고 기록합니다(`.claude/rules/MUST-orchestrator-coordination.md:586`이 인용한 Agent 도구 스키마 "agent-definition frontmatter may override it"). 이 저장소의 에이전트 파일 50개 중 49개가 `permissionMode: bypassPermissions`를 두며(`git grep -h '^permissionMode:' -- '.claude/agents/*.md' | sort | uniq -c`), `agora-runner.md`에는 이 줄이 없습니다(`git grep -L '^permissionMode:' -- '.claude/agents/*.md'`, `souls/` 하위 파일 제외). 다만 이 저장소가 클라우드 세션을 쓰는지는 관측하지 못했으며 이 수정은 클라우드 세션 한정이므로 영향 여부는 [가설 — 클라우드 세션 사용 여부 미관측]입니다. 권한 모드 규칙(R010·R002)의 문안은 바뀌지 않습니다.
|
|
2004
|
+
- CHANGELOG 원문: "Fixed a regression in 2.1.288 where the last messages of a session could be lost when quitting"
|
|
2005
|
+
(291) 2.1.288에서 생긴 회귀로, 세션을 종료할 때 마지막 메시지가 유실될 수 있던 결함이 수정되었습니다. R020은 위반 횟수를 기억이 아니라 트랜스크립트 파싱으로 집계하도록 요구하므로(`.claude/rules/MUST-completion-verification.md:384`, `:389`), 2.1.288~2.1.290 구간에서 종료된 세션의 트랜스크립트는 마지막 메시지가 빠져 있을 수 있었습니다 [가설 — 실제 유실 여부는 해당 세션 트랜스크립트로 실측해야 합니다]. 이 수정은 이후 세션에만 적용되며 이미 유실된 메시지를 복구한다는 근거는 CHANGELOG에 없습니다.
|
|
2006
|
+
|
|
2007
|
+
기타 0건 — 이 저장소 비해당 항목은 없습니다. 실측: `gh release view v2.1.291 --repo anthropics/claude-code --json body --jq .body | grep -c '^- '` = 2건 중 위 본문 2건을 다뤘으므로 2 − 2 = 0건입니다. 계수 범위는 해당 릴리즈 노트의 최상위 불릿 줄(`- `로 시작하는 줄)입니다.
|
|
2008
|
+
|
|
2009
|
+
**Action items**:
|
|
2010
|
+
- 룰·CLAUDE.md·에이전트·훅 변경은 불필요합니다. 두 항목 모두 플랫폼 회귀 수정이며 이 저장소의 규범 문안을 바꾸지 않습니다.
|
|
2011
|
+
- 룰 변경 제안은 없습니다.
|
|
2012
|
+
|
|
2013
|
+
---
|
|
2014
|
+
|
|
2015
|
+
## v2.1.292 (2026-10-06)
|
|
2016
|
+
|
|
2017
|
+
> Issue: #1847 — Claude Code v2.1.292 compatibility documentation
|
|
2018
|
+
> Scope-ceiling check (R017): 조사 시점(2026-10-13)의 최신 릴리즈는 2.1.296입니다(`claude --version`=2.1.296, `npm view @anthropic-ai/claude-code version`=2.1.296). 2.1.293~2.1.296 CHANGELOG 절에서 `2.1.292` 문자열과 "Revert"를 검색한 결과, 이 릴리즈의 항목을 직접 되돌리는 문장은 관측되지 않았습니다. 2.1.293 절의 롤백 문장 2건은 2.1.281의 auto mode 거부 메시지 변경과 2.1.290의 클라우드 세션 wakeup 수정을 대상으로 합니다(293 절 "Reverted the 2.1.290 fix for cloud sessions staying asleep after a container restart lost a pending `/loop` wakeup or scheduled task; Claude is no longer told, and the session stays asleep"). 이 문장은 아래 background `/loop` 항목과 같은 영역이지만 대상이 클라우드 컨테이너 재시작이므로 별개 항목으로 판단합니다 [가설 — 두 수정의 코드 경로가 같은지는 미관측]. 후속 보완으로는 295 절 "Fixed a background session's `/loop` stopping without notice when its next wakeup came due while the session's process was down; the session now says so and Claude is told"가 있으며 롤백은 아닙니다. 릴리즈 게시 시각은 2026-10-06T18:59:30Z입니다(`gh release view v2.1.292 -R anthropics/claude-code --json publishedAt`).
|
|
2019
|
+
|
|
2020
|
+
### Agent · 서브에이전트
|
|
2021
|
+
|
|
2022
|
+
- CHANGELOG 원문: "Added an `effort` parameter to the Agent tool, so Claude runs a sub-agent at the effort level you ask for"
|
|
2023
|
+
(292) Agent 도구에 `effort` 파라미터가 추가되어, Claude가 사용자가 요청한 effort 수준으로 서브에이전트를 실행합니다. R009 「Agent Tool Requirements」 목록은 Agent 호출 파라미터로 `subagent_type`과 `model`을 열거하고(`.claude/rules/MUST-parallel-execution.md:278`, `:279`), 다른 룰은 `mode`(R006 `.claude/rules/MUST-agent-design.md:67`·`:470`, R010 `.claude/rules/MUST-orchestrator-coordination.md:588`·`:630`)와 `description`의 `[N]` 접두사(R008 `.claude/rules/MUST-tool-identification.md:101`)를 요구합니다. 이 7개 줄 어디에도 `effort`는 나오지 않으며(각 줄 `sed -n '<줄>p' <파일> | command grep -c effort` 결과 0), effort는 에이전트 frontmatter `effort:`로 정의합니다(`.claude/agents`의 49개 파일에 `effort:` 줄이 있음, R006 선택 필드 `.claude/rules/MUST-agent-design.md:179`). 오케스트레이터 환경의 Agent 도구 정의(Claude Code 2.1.296, 2026-10-13, 세션 도구 목록에서 직접 읽음)에는 `effort` 파라미터(enum: low, medium, high, xhigh, max)가 있으며, 도구 설명(CHANGELOG 원문이 아님) 전문은 "Reasoning effort for this agent. Set this ONLY when the user, or instructions such as CLAUDE.md or a skill, explicitly ask that this agent or delegated work run at a specific effort level, never on your own judgment; otherwise omit it and the agent runs at its usual effort. Ignored for subagent_type: "fork": a fork runs at your own effort."입니다. 이 절을 정정한 서브에이전트 세션(Claude Code 2.1.296)의 Agent 도구 정의에서도 같은 파라미터와 설명을 관측했습니다. 호출 단위 `effort`와 frontmatter `effort`의 우선순위는 관측하지 못했습니다 [가설 — 우선순위 미실측]. 이 항목은 선택 기능 추가이므로 기존 위임 규칙을 바꾸지 않습니다.
|
|
2024
|
+
- CHANGELOG 원문: "Fixed subagent definitions with `permissionMode: auto` entering auto mode when auto mode is unavailable (disabled by settings, circuit breaker, or a model that doesn't support it)"
|
|
2025
|
+
(292) auto mode를 쓸 수 없는 상황(설정으로 비활성화, circuit breaker, 미지원 모델)에서 `permissionMode: auto`로 정의된 서브에이전트가 auto mode에 진입하던 결함이 수정되었습니다. `.claude/agents`의 `permissionMode:` 줄 49개는 전부 `bypassPermissions`이고 `auto`와 `plan`은 0건이므로(`git grep -h '^permissionMode:' -- '.claude/agents/*.md' | sort | uniq -c` 결과 1행 "49 permissionMode: bypassPermissions") 이 결함 조건에 해당하지 않습니다.
|
|
2026
|
+
- CHANGELOG 원문: "Changed agent names to allow at most 256 characters: a longer one is rejected, and a skill's or a plugin file's `name` longer than that is ignored"
|
|
2027
|
+
(292) 에이전트 이름은 최대 256자로 제한되어 더 긴 이름은 거부되고, 스킬이나 플러그인 파일의 `name`이 그보다 길면 무시됩니다. 측정한 범위(python3로 `.claude/agents/*.md`와 `.claude/skills/*/SKILL.md`의 `name:` 길이 최대값 계산)에서 에이전트 `name`의 최대 길이는 22자(`lang-typescript-expert`), 스킬 `name`의 최대 길이는 32자(`supabase-postgres-best-practices`)이므로 영향 조건이 관측되지 않았습니다.
|
|
2028
|
+
|
|
2029
|
+
### 권한 · 훅 · 도구 입력
|
|
2030
|
+
|
|
2031
|
+
- CHANGELOG 원문: "Security: Fixed PreToolUse hook approvals and auto mode bypassing the permission prompt for file reads from network (UNC) paths"
|
|
2032
|
+
(292) PreToolUse 훅의 승인과 auto mode가 네트워크(UNC) 경로의 파일 읽기에서 권한 프롬프트를 우회하던 보안 결함이 수정되었습니다. 관측한 범위에서 이 저장소의 훅은 승인 결정 필드를 출력하지 않습니다(`git grep -n permissionDecision -- .claude/hooks` 결과 0건, `.claude/settings.json` 인라인 훅도 `command grep -c permissionDecision` 0; 훅 출력의 `hookSpecificOutput`은 `.claude/hooks/scripts/`의 `claude-md-reinject.sh:74`, `fail-axis-cause-advisor.sh:132`, `r007-r008-drift-advisor.sh:445`, `user-prompt-preprocessor.sh:99`의 jq 출력 식 4곳이 출력 생성 지점이며 모두 `additionalContext` 전달에만 씁니다; `git grep -n hookSpecificOutput -- .claude/hooks`는 주석과 `.claude/hooks/hooks.json:239`의 description을 포함해 13줄을 반환합니다). 또한 이 저장소 실행 환경은 macOS이며 UNC 경로 사용은 관측하지 못했습니다 [가설 — UNC 경로 사용 여부 미관측]. 영향이 없을 것으로 봅니다.
|
|
2033
|
+
- CHANGELOG 원문: "Fixed a skill's or slash command's `allowed-tools` rule coming back in a later turn when you leave auto mode or plan mode partway through that turn"
|
|
2034
|
+
(292) auto mode나 plan mode를 턴 도중에 벗어날 때 스킬·슬래시 커맨드의 `allowed-tools` 규칙이 이후 턴에 다시 돌아오던 결함이 수정되었습니다. 관측한 범위(`git grep -n '^allowed-tools:' -- '.claude/skills/*/SKILL.md'`)에서 `allowed-tools`를 선언한 스킬은 2개입니다(`.claude/skills/diagram-design/SKILL.md:12`, `.claude/skills/profile/SKILL.md:7`). 영향 범위가 작고 규칙 문안은 바뀌지 않습니다.
|
|
2035
|
+
- CHANGELOG 원문: "Improved hook output handling: `<system-reminder>` tags written in a hook's output are escaped before they reach Claude"
|
|
2036
|
+
(292) 훅 출력에 쓰인 `<system-reminder>` 태그가 Claude에 전달되기 전에 이스케이프됩니다. 측정한 범위(`git grep -n system-reminder -- .claude/hooks`)에서 `.claude/hooks`의 `system-reminder` 문자열은 `.claude/hooks/scripts/user-prompt-preprocessor.sh:63`의 주석과 `:67`의 입력 판별 정규식 2건이며, 훅이 이 태그를 출력하는 곳은 관측되지 않았습니다(`command grep -c system-reminder CLAUDE.md .claude/settings.json` 결과 0·0). 따라서 이 저장소 훅의 출력은 바뀌지 않습니다. 다만 `claude-md-reinject.sh`가 CLAUDE.md 전문을 `additionalContext`로 재주입하므로, 향후 CLAUDE.md에 이 태그를 쓰면 이스케이프 대상이 됩니다.
|
|
2037
|
+
- CHANGELOG 원문: "Improved tool input handling: Grep accepts `file_path` for `path`, and Write, WebFetch and Read ignore a few stray parameters instead of failing the call"
|
|
2038
|
+
(292) Grep이 `path`의 별칭으로 `file_path`도 받고, Write·WebFetch·Read는 몇몇 불필요한 파라미터를 호출 실패 대신 무시합니다. 룰은 도구 호출 인자를 일부 규정합니다. R008의 required 파라미터 완비 점검(`.claude/rules/MUST-tool-identification.md:38`·`:40`, `:252` "매 도구 호출 직전", `:256`의 예는 AskUserQuestion `questions`)은 모든 도구 호출에 적용됩니다. Agent 호출에 한정해서는 R008 `:97`의 `subagent_type` 일치와 `:101`의 `description` `[N]` 접두사, R009 `.claude/rules/MUST-parallel-execution.md:279`의 `model`, 그리고 `mode`를 다루는 R006 `.claude/rules/MUST-agent-design.md:67`(보이는 예시 줄)·`:470`(`:464`에서 열린 HTML DETAIL 주석 안)과 R010 `.claude/rules/MUST-orchestrator-coordination.md:630`이 있습니다(각 줄 `sed -n`으로 확인). 그러나 Grep·Write·WebFetch·Read의 파라미터 이름(`path`/`file_path`)을 규정한 룰 문장은 관측한 범위에서 없습니다(``git grep -n -E 'file_path|`path`' -- .claude/rules CLAUDE.md`` 3건: `.claude/rules/MAY-optimization.md:148`의 v2.1.229 크래시 노트, `.claude/rules/MUST-agent-design.md:291`의 `FileChanged` 훅 데이터 필드, `:430`의 model escalation 설정 키로 규범 지시가 아닙니다). 위임 프롬프트들은 이번에 조사하지 않았습니다. 따라서 이 수정으로 바꿀 룰 문안은 관측되지 않았습니다. R002 ‡(`.claude/rules/MUST-permissions.md:18`)의 기록, 즉 frontmatter `tools:`에 Grep/Glob을 명시한 `qa-writer` 1건은 전용 도구를 받았고 명시 목록이 없는 메인 세션에는 없었다는 관측과, frontmatter 명시가 `--tools` 명시와 같은 효과라는 일반화는 그 1건에 근거한 추정이라는 서술은 그대로입니다.
|
|
2039
|
+
- CHANGELOG 원문: "Fixed Grep and Glob reporting no matches when the file or folder they were given could not be read; Claude now retries once or tells you"
|
|
2040
|
+
(292) 지정한 파일이나 폴더를 읽을 수 없을 때 Grep과 Glob이 일치 항목 없음으로 보고하던 결함이 수정되어, 이제 Claude가 한 번 재시도하거나 사용자에게 알립니다. R020의 Read-Before-Characterize는 로그를 읽기 전에 특성화하지 않도록 요구하며(`.claude/rules/MUST-completion-verification.md`의 해당 절), 이 수정은 같은 방향의 플랫폼 보완입니다. 구버전 세션에서 "0건"으로 보고된 검색은 읽기 실패였을 가능성이 있으나 [가설 — 과거 세션별 실측 필요], 규칙 문안은 바뀌지 않습니다.
|
|
2041
|
+
- CHANGELOG 원문: "Improved sandbox auto-allow: with strict sandbox mode set in user, managed or --settings settings, an interpreter command with an env var prefix like `FOO=bar python3 app.py` runs unprompted"
|
|
2042
|
+
(292) 사용자·관리형·`--settings` 설정에 strict sandbox 모드가 지정된 경우, `FOO=bar python3 app.py` 같은 환경 변수 접두 인터프리터 명령이 프롬프트 없이 실행됩니다. 원문상 이 동작은 strict sandbox 모드가 사용자·관리형·`--settings` 설정에 있을 때만 해당하므로, 프로젝트 `.claude/settings.json`의 `sandbox` 키 유무는 판단 근거가 되지 않습니다. 사용자·관리형·`--settings` 설정은 이번 검토에서 조사하지 않았으므로 영향 여부는 [가설 — 해당 scope의 strict sandbox 설정 여부로 판정]입니다.
|
|
2043
|
+
|
|
2044
|
+
### MCP
|
|
2045
|
+
|
|
2046
|
+
- CHANGELOG 원문: "Fixed an MCP tool with a name longer than 128 characters making every request fail; that tool is now left out and an MCP error names it"
|
|
2047
|
+
(292) 이름이 128자를 넘는 MCP 도구가 모든 요청을 실패시키던 결함이 수정되어, 해당 도구는 제외되고 MCP 오류가 그 이름을 알립니다. 이 저장소 `.mcp.json`은 서버 2개(`ontology-rag` stdio `.mcp.json:4`, `eraser` http `.mcp.json:16`)를 두며 `.claude/settings.json:26`은 `ontology-rag`만 `enabledMcpjsonServers`에 나열합니다(`:25`의 `enableAllProjectMcpServers`는 true). 도구 이름 길이는 세션 도구 목록으로 잴 수 있습니다. Claude Code 2.1.296 리뷰어 세션에서 가장 긴 `ontology-rag` 도구 이름은 `mcp__ontology-rag__ontology_compare_phases`(42자, 접두 제외 23자)로 관측됐고, 이 절을 정정한 서브에이전트 세션의 지연 도구 목록에서도 같은 이름이 최장이었습니다(python3 `len` 계산). `eraser`는 두 세션 모두 인증 전 도구(`mcp__eraser__authenticate`, `mcp__eraser__complete_authentication`)만 보였으므로, 인증 후 도구 이름 길이는 [가설 — 인증 후 도구 목록으로 판정]입니다.
|
|
2048
|
+
- CHANGELOG 원문: "Improved startup of `claude -p` and SDK sessions: the first turn no longer waits for HTTP and SSE MCP servers to answer `resources/list`"
|
|
2049
|
+
(292) `claude -p`와 SDK 세션의 시작이 빨라져 첫 턴이 HTTP·SSE MCP 서버의 `resources/list` 응답을 기다리지 않습니다. 이 저장소의 http 서버는 `eraser` 하나이며(`.mcp.json:16`), 무인 실행(`.claude/skills/fsd/SKILL.md:133`가 `claude -p`를 언급)에서 이 서버가 로드되는지는 관측하지 못했습니다 [가설 — `enableAllProjectMcpServers: true`(`.claude/settings.json:25`)에 따른 로드 여부 미실측]. 시작 지연 개선이지만, 첫 턴이 HTTP·SSE 서버의 `resources/list` 결과 없이 시작될 수 있는지는 원문이 말하지 않으므로 [가설 — 첫 턴에서 해당 서버 리소스 목록의 유무를 실측하면 판정]입니다.
|
|
2050
|
+
- CHANGELOG 원문: "Changed local (stdio) MCP server connections to negotiate protocol version 2026-07-28 by default on every install, including Bedrock, Vertex and Foundry; `MCP_PROTOCOL_NEGOTIATION=legacy` opts out"
|
|
2051
|
+
(292) 로컬(stdio) MCP 서버 연결이 모든 설치(Bedrock·Vertex·Foundry 포함)에서 기본적으로 프로토콜 버전 2026-07-28을 협상하며, `MCP_PROTOCOL_NEGOTIATION=legacy`로 이전 방식을 선택할 수 있습니다. 이 저장소의 로컬 stdio 서버는 `ontology-rag`이며 `.venv/bin/python -m ontology_rag.mcp_server`로 실행됩니다(`.mcp.json:4`~`:9`). Claude Code 2.1.296 세션에서 `ontology-rag` 도구가 노출된 것은 관측됐습니다(리뷰어 관측이며, 이 절을 정정한 서브에이전트 세션의 지연 도구 목록에도 `mcp__ontology-rag__*` 도구가 있었습니다). 다만 연결 경로가 새 프로토콜 협상인지 아래 항목의 7일 폴백인지는 관측하지 않았습니다 [가설 — 연결 경로 미관측]. R019의 enrichment는 실패 시 조용히 건너뛰도록 규정되어 있습니다(`.claude/rules/SHOULD-ontology-rag-routing.md:39`의 「Failure Handling」 절, 표는 `:41`~`:46`).
|
|
2052
|
+
- CHANGELOG 원문: "Improved startup with local (stdio) MCP servers that ignore the newer protocol check: after one slow connect they are remembered for 7 days and connected the older way without the wait"
|
|
2053
|
+
(292) 새 프로토콜 확인을 무시하는 로컬(stdio) MCP 서버는 한 번 느리게 연결된 뒤 7일 동안 기억되어, 이후 대기 없이 이전 방식으로 연결되므로 시작이 빨라집니다. 이 저장소의 로컬 stdio 서버는 `ontology-rag` 하나이며(`.mcp.json:3`~`:4`), 이 서버가 새 프로토콜 확인을 무시해 이 폴백 대상이 되는지는 관측하지 않았습니다(위 항목의 [가설]과 같은 미관측 사항). 연결 방식의 기본값을 바꾸는 항목이 아니라 시작 지연 개선이므로 룰 변경은 필요하지 않습니다.
|
|
2054
|
+
|
|
2055
|
+
### 무인 실행 · 예약 · 재개
|
|
2056
|
+
|
|
2057
|
+
- CHANGELOG 원문: "Fixed one-shot `claude -p` and Agent SDK runs stopping a background command 5 seconds after the final result, and one-shot `claude -p` runs dropping a scheduled wakeup; both are now waited for"
|
|
2058
|
+
(292) 일회성 `claude -p`와 Agent SDK 실행이 최종 결과 5초 뒤에 백그라운드 명령을 멈추던 결함과, 일회성 `claude -p` 실행이 예약된 wakeup을 버리던 결함이 수정되어, 이제 둘 다 기다립니다. `/fsd`는 `claude -p`·예약 실행 경로를 명시적으로 다루고(`.claude/skills/fsd/SKILL.md:133`, `:172`), R020은 2.1.257의 Monitor 대기 수정을 이미 기록합니다(`.claude/rules/MUST-completion-verification.md:535`). 구버전 `-p` 실행에서 백그라운드 결과의 부재는 조기 종료의 산물일 수 있었습니다 [가설 — 실제 무인 `-p` 실행에서의 효과 미실측].
|
|
2059
|
+
- CHANGELOG 원문: "Fixed plan mode not being restored when resuming a session from the `claude --resume` session picker or with `/resume`"
|
|
2060
|
+
(292) `claude --resume` 세션 선택기나 `/resume`으로 세션을 재개할 때 plan mode가 복원되지 않던 결함이 수정되었습니다. 이 저장소의 에이전트 정의에는 `permissionMode: plan`이 0건입니다(`git grep -h '^permissionMode:' -- '.claude/agents/*.md' | sort | uniq -c`). plan mode에 들어가는 경로로는 사용자가 세션에서 켜는 경우 외에, `structured-dev-cycle` 스킬이 Stage 1을 `EnterPlanMode`에 대응시키고(`.claude/skills/structured-dev-cycle/SKILL.md:134`~`:136`) `research` 스킬이 `EnterPlanMode`를 언급하며(`.claude/skills/research/SKILL.md:384`) R002 Tier 3가 `EnterPlanMode`를 나열합니다(`.claude/rules/MUST-permissions.md:11`). 이 경로로 들어간 plan mode도 재개 시 복원 대상이 되지만, 플랫폼 수정이므로 규칙 변경은 필요하지 않습니다.
|
|
2061
|
+
- CHANGELOG 원문: "Fixed saved scheduled tasks created after `/resume`, `/branch` or `/clear` never firing, and saved tasks ignoring later creates and deletes after two writes to the tasks file milliseconds apart"
|
|
2062
|
+
(292) `/resume`·`/branch`·`/clear` 이후 만든 저장된 예약 작업이 발화하지 않던 결함과, 작업 파일에 몇 밀리초 간격으로 두 번 쓴 뒤 저장된 작업이 이후의 생성·삭제를 무시하던 결함이 수정되었습니다. `/fsd`의 루프 드라이버는 메인 대화 자신이며 `/goal`·`/loop`(ScheduleWakeup) 호출은 필수가 아니라고 규정합니다(`.claude/skills/fsd/SKILL.md:162`). 관측한 범위(위 v2.1.290 절의 예약 경로 `git grep`)에서 이 수정이 닿을 수 있는 경로는 `/fsd`의 선택적 `/loop` 호출과 `claude-native` 스킬의 예약 실행 안내(`.claude/skills/claude-native/SKILL.md:232`~`:240`, `/schedule`·CronCreate)입니다. 두 경로의 실제 사용은 관측하지 않았고, `/schedule` routine이 이 저장된 예약 작업 경로를 쓰는지도 [가설 — 미관측]입니다.
|
|
2063
|
+
- CHANGELOG 원문: "Fixed a background session's `/loop` silently stopping when the session's process restarted (for example after a crash), because its pending wakeup was lost"
|
|
2064
|
+
(292) 백그라운드 세션의 프로세스가 재시작될 때(예: 크래시) 대기 중이던 wakeup이 사라져 `/loop`가 조용히 멈추던 결함이 수정되었습니다. `/fsd`의 `/loop` 반복은 `.claude/skills/fsd/SKILL.md:16`과 `:39`에 정의되어 있습니다. 2.1.293의 클라우드 wakeup 롤백은 대상이 클라우드 컨테이너 재시작이므로 이 항목과 별개 항목으로 판단하며(위 Scope-ceiling과 같은 판단, 코드 경로 동일 여부는 [가설]), 2.1.295의 "Fixed a background session's `/loop` stopping without notice when its next wakeup came due while the session's process was down; the session now says so and Claude is told"는 롤백이 아닌 후속 보완입니다. 현행(2.1.296)에서의 실제 동작은 실행 검증하지 않았습니다.
|
|
2065
|
+
- CHANGELOG 원문: "Added `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` environment variable to set a longer base delay for the backoff when retrying an overloaded (529) request"
|
|
2066
|
+
(292) 과부하(529) 요청을 재시도할 때의 백오프 기본 지연을 늘리는 환경 변수 `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`가 추가되었습니다. 측정한 범위에서 이 변수는 `.claude/settings.json`과 `.claude/settings.local.json`에 설정되어 있지 않으며(`command grep -c OVERLOADED .claude/settings.json .claude/settings.local.json` 결과 0·0; `.claude/settings.local.json`은 gitignore 대상이라 `git grep`으로는 볼 수 없습니다), 선택 환경 변수이므로 기본 동작은 바뀌지 않습니다. R004의 "Retry up to 3x with backoff (1s, 2s, 4s)"(`.claude/rules/SHOULD-error-handling.md:25`)는 에이전트 수준 재시도 규정이며 플랫폼 내부 백오프와 별개입니다.
|
|
2067
|
+
|
|
2068
|
+
### 컨텍스트 · 압축 · 입력
|
|
2069
|
+
|
|
2070
|
+
- CHANGELOG 원문: "Fixed "instruction file not loaded" lines going stale or missing after `/cd` or a permission change, and added a transcript line when a nested one isn't loaded"
|
|
2071
|
+
(292) `/cd`나 권한 변경 뒤 "instruction file not loaded" 안내 줄이 오래되거나 누락되던 결함이 수정되었고, 중첩 지시 파일이 로드되지 않을 때 트랜스크립트 줄이 추가되었습니다. `InstructionsLoaded` 훅은 이 저장소에 배선되어 있지 않으므로(CC가 로드하는 `.claude/settings.json`의 `hooks` 키에 없음(jq), `command grep -c InstructionsLoaded .claude/settings.json .claude/settings.local.json` 결과 0·0; `.claude/hooks/hooks.json`은 CC가 직접 로드하지 않는 소스 파일, R021) 훅 동작에는 영향이 없고, 표시와 트랜스크립트 정보가 정확해집니다. 이 저장소에는 중첩 지시 파일 `templates/CLAUDE.md`가 있으므로(v2.1.288·v2.1.293 절) 그것이 로드되지 않는 경우 새 트랜스크립트 줄이 생길 수 있습니다. 트랜스크립트를 파싱하는 스크립트(예: R020 자가 계수용 `scripts/count-r007-r008.sh`)에 이 줄이 영향을 주는지는 [가설 — 새 줄이 포함된 트랜스크립트로 계수 결과를 비교하면 판정]입니다.
|
|
2072
|
+
- CHANGELOG 원문: "Fixed a compaction summary that repeated `/name` letting Claude invoke a skill that is reserved for the user"
|
|
2073
|
+
(292) 압축 요약이 `/name`을 반복하면 사용자 전용 스킬을 Claude가 호출할 수 있던 결함이 수정되었습니다. 이 저장소는 `disable-model-invocation: true` 스킬 10개를 둡니다(`git grep -l -E '^disable-model-invocation: *true' -- '.claude/skills/*/SKILL.md' | wc -l`=10; 예: `.claude/skills/npm-publish/SKILL.md:6`, `.claude/skills/npm-version/SKILL.md:6`, `.claude/skills/sauron-watch/SKILL.md:5`). 구버전에서는 압축 뒤 이 스킬들이 모델에 의해 호출될 여지가 있었으나 [가설 — 실제 호출 사례 미관측], 수정으로 사용자 전용 의도가 압축 후에도 유지됩니다. 규칙 문안 변경은 필요하지 않습니다.
|
|
2074
|
+
- CHANGELOG 원문: "Fixed @-mentioned text files over 256KB being left out silently: Claude is now told the file's size and to read it in portions"
|
|
2075
|
+
(292) 256KB를 넘는 @-멘션 텍스트 파일이 조용히 제외되던 결함이 수정되어, 이제 Claude에게 파일 크기와 분할 읽기가 안내됩니다. 이 가이드(`guides/claude-code/15-version-compatibility.md`)와 미러(`templates/guides/claude-code/15-version-compatibility.md`)는 256KB(262144바이트)를 넘으므로(`wc -c`, 2026-10-13 측정) 직접 해당합니다. 이 가이드를 @-멘션하면 전문이 한 번에 들어오지 않고, 이 수정에 따라 Claude가 파일 크기와 분할 읽기 안내를 받습니다(이 수정 이전에는 조용히 제외되던 조건입니다).
|
|
2076
|
+
- CHANGELOG 원문: "Fixed the Read tool returning only the first entry, with no error, when a PDF's `pages` was a list such as "6,9,15"; it now returns an error saying to read each page or range separately"
|
|
2077
|
+
(292) PDF의 `pages`에 "6,9,15" 같은 목록을 주면 Read가 오류 없이 첫 항목만 반환하던 결함이 수정되어, 이제 각 페이지나 범위를 따로 읽으라는 오류를 반환합니다. `git grep -n -w PDF -- '.claude/skills/*/SKILL.md'` 결과는 2건(`.claude/skills/research/SKILL.md:227`, `.claude/skills/scout/SKILL.md:94`)이며 둘 다 출처 태깅 문구이지 PDF 읽기 지시가 아니므로 영향이 없습니다.
|
|
2078
|
+
|
|
2079
|
+
기타 70건 — 이 저장소 비해당(VSCode·Claude Tag·Code Review·Cloud sessions·Remote Control 전용 항목, 터미널 입력·vim mode·렌더링·/theme·/focus 등 UI 세부, mod·plugin 훅 API(`prompt.autocomplete`, `$.model.complete`, `agent.spawn`, `tool.check`, `tool.call`, `config.set`)와 `claude plugin` 하위 명령, Windows 전용 보안 수정, 샌드박스 읽기 거부 경로·managed 설정·`/ultrareview` 업로드 관련 수정 등 harness 비영향 세부사항이며 이 저장소는 mod·plugin 패널 UI를 개발하지 않습니다). 실측: `gh release view v2.1.292 --repo anthropics/claude-code --json body --jq .body | grep -c '^- '` = 92건 중 위 본문 22건을 다뤘으므로 92 − 22 = 70건입니다. 계수 범위는 해당 릴리즈 노트의 최상위 불릿 줄(`- `로 시작하는 줄)입니다.
|
|
2080
|
+
|
|
2081
|
+
**Action items**:
|
|
2082
|
+
- Agent·권한·훅·MCP·무인 실행·컨텍스트 항목은 이 저장소에 해당 구성이 없거나(`permissionMode: auto`/`plan` 0건, `InstructionsLoaded` 훅 없음, `OVERLOADED` 환경 변수 미설정; strict sandbox는 사용자·관리형·`--settings` scope 사항이라 미조사) 선택 기능 또는 플랫폼 수정이며, 룰·CLAUDE.md·에이전트·훅 변경은 불필요합니다. @-멘션 256KB 항목은 이 가이드 자체가 해당하지만 플랫폼의 안내 개선이므로 역시 룰 변경 사안이 아닙니다.
|
|
2083
|
+
- 룰 변경 제안은 없습니다. 후보로만 보고합니다: Agent 호출 단위 `effort` 파라미터는 `.claude/rules/MUST-parallel-execution.md`의 "Agent Tool Requirements" 목록에 한 줄로 추가할 수 있습니다. Agent 스키마의 `effort` 노출은 관측됐으나(오케스트레이터 세션, Claude Code 2.1.296), frontmatter `effort:`와의 우선순위가 미실측이므로 현재는 보류합니다.
|
|
2084
|
+
|
|
2085
|
+
---
|
|
2086
|
+
|
|
2087
|
+
## v2.1.293 (2026-10-07)
|
|
2088
|
+
|
|
2089
|
+
> Issue: #1849 — Claude Code v2.1.293 compatibility documentation
|
|
2090
|
+
> Scope-ceiling check (R017): 조사 시점(2026-10-13)의 최신 릴리즈는 2.1.296입니다(`claude --version`=2.1.296, `npm view @anthropic-ai/claude-code version`=2.1.296). 이 릴리즈 이후 릴리즈(2.1.294~2.1.296)의 CHANGELOG 절 3개에서 `2.1.293`과 `Revert`를 검색했고(`command grep -nE '2\.1\.293|Revert' section-2.1.294.md section-2.1.295.md section-2.1.296.md`) 출력은 0줄이었습니다. 따라서 이후 릴리즈가 이 릴리즈의 항목을 롤백하거나 좁힌 문장은 관측되지 않았습니다(`command grep -n '2\.1\.29' section-2.1.296.md`의 일치는 절 제목과 gateway 로그인 회귀 1줄이며, 그 줄은 2.1.295 회귀를 다루므로 이 릴리즈와 무관합니다). 이 릴리즈 자체에는 이전 릴리즈의 롤백이 2건 있으며 아래 해당 항목에서 다룹니다. 릴리즈 게시 시각은 2026-10-07T18:10:20Z입니다(`gh release view v2.1.293 -R anthropics/claude-code --json publishedAt`).
|
|
2091
|
+
|
|
2092
|
+
### 모델 · 상태줄
|
|
2093
|
+
|
|
2094
|
+
- CHANGELOG 원문: "Added Claude Haiku 5.5 (`claude-haiku-5-5`), now the default Haiku model on the Anthropic API — 1M context, $0.10/$0.50 per Mtok ($0.50/$2.50 for prompts over 100K)"
|
|
2095
|
+
(293) Haiku 5.5(`claude-haiku-5-5`)가 추가되어 Anthropic API의 기본 Haiku 모델이 되었습니다. R006 Tier-2 표에는 이번 변경에서 `claude-haiku-5-5` 행이 추가되었고(`.claude/rules/MUST-agent-design.md:50`, 기존 `claude-haiku-4-5` 행은 `:49`), `guides/multi-model-routing/README.md:36`에도 같은 모델 행이 추가되었습니다. 이 저장소의 haiku 에이전트 3개는 Tier-1 별칭 `model: haiku`를 씁니다(`.claude/agents/mgr-supplier.md:4`, `.claude/agents/sys-naggy.md:4`, `.claude/agents/tracker-checkpoint.md:4`). Tier-1 별칭은 CC가 해석하므로(R006 Tier 1 단락, `MUST-agent-design.md:33`, `:43`) 이 에이전트들이 실제로 Haiku 5.5로 실행되는지는 스폰 결과의 `resolvedModel`을 실측해야 확정됩니다 [가설 — 스폰 결과의 `resolvedModel` 값이 `claude-haiku-5-5`인지 여부로 판정].
|
|
2096
|
+
- CHANGELOG 원문: "Added `agentType` to the `subagentStatusLine` payload, so scripts can tell custom subagent types apart"
|
|
2097
|
+
(293) `subagentStatusLine` payload에 `agentType`이 추가되어 스크립트가 커스텀 서브에이전트 타입을 구분할 수 있습니다. 관측한 범위에서 `.claude/settings.json`의 상태줄 설정은 `statusLine`(`.claude/settings.json:29`) 하나이고 `subagentStatusLine`은 `.claude`·`templates/.claude`에서 0건이어서(`git grep -n subagentStatusLine -- .claude templates/.claude` 0건, `.claude/settings.local.json`은 `command grep -c` 0) 영향 조건이 관측되지 않았습니다. `.claude/hooks/scripts/audit-log.sh:29`·`:35`의 `agentType`은 Agent 도구 결과 객체(`.tool_response?.agentType?`)를 읽는 별개 표면입니다.
|
|
2098
|
+
|
|
2099
|
+
### 서브에이전트 · 도구 안내
|
|
2100
|
+
|
|
2101
|
+
- CHANGELOG 원문: "Fixed Claude being told to continue or message subagents with `SendMessage` in sessions, including resumed ones, where a host, a permission rule or a `--tools` list removed that tool"
|
|
2102
|
+
(293) 호스트, permission rule, `--tools` 목록이 `SendMessage`를 제거한 세션(재개 세션 포함)에서도 Claude가 `SendMessage`로 서브에이전트를 이어가거나 메시지하라고 안내받던 결함이 수정되었습니다. R018 「멤버 도구 부재 시 대체 규약」(`.claude/rules/MUST-agent-teams.md:490`)은 멤버에게 `SendMessage`가 있다고 가정하지 말되 부재를 전제하지도 말고 먼저 `ToolSearch`로 로드를 시도하라고 규정하며(`:492`), 로드할 수 없을 때의 대체 수단(아티팩트 파일 채널)을 표로 둡니다(`:496`). 이 수정은 도구가 실제로 제거된 세션에서 Claude가 없는 도구를 안내받지 않게 하는 것이며, 그 경우 R018의 대체 표를 따른다는 규범과 충돌하지 않으므로 룰 문안 변경은 필요하지 않습니다.
|
|
2103
|
+
- CHANGELOG 원문: "Fixed subagents and `--agent` sessions being told a built-in tool was disabled for the whole session when only their own tool list left it out"
|
|
2104
|
+
(293) 서브에이전트와 `--agent` 세션이 자신의 도구 목록에서만 빠졌을 뿐인 내장 도구를 "세션 전체에서 비활성"이라고 안내받던 결함이 수정되었습니다. 이 저장소의 에이전트는 frontmatter `tools:`/`disallowedTools:`로 도구를 제한하므로(R010 「Known Limitations (Active Cache)」, `.claude/rules/MUST-orchestrator-coordination.md:811`) 직접 관련됩니다. 이 수정은 모델이 받는 안내 문구를 바로잡는 것이며 위임 전 도구 가용성 점검(R010 Agent Capability Pre-Check, `.claude/rules/MUST-orchestrator-coordination.md:742`)의 필요성을 바꾸지 않습니다.
|
|
2105
|
+
- CHANGELOG 원문: "Fixed Claude sometimes treating its own last actions before a context compaction as done after it, and retracting or redoing finished work"
|
|
2106
|
+
(293) Claude가 컨텍스트 compaction 직전에 자신이 한 마지막 동작을 compaction 이후에 한 일로 취급해, 끝난 작업을 철회하거나 다시 하던 결함이 수정되었습니다(원문 "treating its own last actions before a context compaction as done after it"의 "done after it"을 "compaction 뒤에 수행된 것"으로 읽었습니다). 이 저장소는 compaction 전후 상태 보완용 훅을 배선합니다(PreCompact `task-state-precompact.sh` `.claude/settings.json:396`, PostCompact prompt 훅 `.claude/settings.json:407`). 다만 PreCompact가 저장한 상태의 복원은 PostCompact prompt에 기대며(`.claude/hooks/scripts/task-state-precompact.sh:3` "Pairs with PostCompact prompt that restores this state"), R021은 PostCompact 배선의 효과를 보장되지 않는 것으로 기록합니다(`.claude/rules/MUST-enforcement-policy.md:9`, `:26`; 보장 경로는 `SessionStart` 재주입). 따라서 이 보완이 실제로 복원 효과를 내는지는 [가설 — compact 직후 응답에 저장된 작업 상태가 반영되는지로 판정]입니다. 플랫폼 수정은 같은 문제를 다루는 방향이며 훅·룰 변경은 필요하지 않습니다. 구버전 `/fsd` 세션에서 관측된 작업 재수행이 있다면 일부가 이 결함 때문이었을 수 있으나 [가설 — 해당 세션 트랜스크립트 미조사] R020의 완료 검증 규정 문안은 이 수정으로 바뀌지 않습니다.
|
|
2107
|
+
|
|
2108
|
+
### 컨텍스트 · 룰 로딩
|
|
2109
|
+
|
|
2110
|
+
- CHANGELOG 원문: "Fixed path-scoped rules and nested CLAUDE.md files not loading when Claude views a file with a single-file cat, head, tail, sed -n or grep command in the Bash tool instead of the Read tool"
|
|
2111
|
+
(293) 단일 파일을 대상으로 한 Bash의 cat·head·tail·sed -n·grep 명령으로 파일을 볼 때 path-scoped rule과 중첩 CLAUDE.md가 로드되지 않던 결함이 수정되었습니다. 관측한 범위에서 `.claude/rules/*.md`와 `.claude/skills/*/SKILL.md`의 줄 시작 `paths:`는 `MUST-agent-design.md:632`의 문서 예시 1건뿐이고(`git grep -n -E '^paths:' -- '.claude/rules/*.md' '.claude/skills/*/SKILL.md'`) 실제 룰은 전부 무조건 로드되므로, path-scoped 룰 쪽 절반은 해당하지 않습니다. 반면 중첩 CLAUDE.md 쪽 절반은 해당합니다. 추적된 CLAUDE.md는 루트 `CLAUDE.md`와 `templates/CLAUDE.md` 2개이며(`git ls-files '*CLAUDE.md'`), `templates/` 하위 디렉터리에 있으므로 `templates/CLAUDE.md`가 중첩 CLAUDE.md입니다(위 v2.1.288 절의 같은 판단; 두 파일 내용도 서로 다릅니다, `cmp` 불일치). 따라서 293부터는 `templates/` 아래 파일을 단일 파일 Bash 보기(`cat`·`head`·`tail`·`sed -n`·`grep`)로 열 때도 이 파일이 로드됩니다. 여러 파일을 훑는 `git grep` 전수조사(R005, `.claude/rules/MAY-optimization.md:87`)는 원문의 단일 파일 명령 목록에 없으므로 이 로드와 무관하다고 봅니다 [가설 — `git grep` 단일 경로 지정 시의 로드 여부는 미실측].
|
|
2112
|
+
|
|
2113
|
+
### 권한 · 백그라운드
|
|
2114
|
+
|
|
2115
|
+
- CHANGELOG 원문: "Fixed `claude agents` offering bypass permissions that background sessions then ignored when consent was saved only in `.claude/settings.local.json` or a `--settings` file; it now asks for consent first, and a session that ignores bypass shows a short notice that stays"
|
|
2116
|
+
(293) bypass 동의가 `.claude/settings.local.json`이나 `--settings` 파일에만 저장된 경우, `claude agents`가 bypass permissions를 제공하지만 백그라운드 세션이 이를 무시하던 결함이 수정되었습니다. 이제 먼저 동의를 묻고, bypass를 무시한 세션에는 짧은 안내가 남습니다. R010 「Universal bypassPermissions」는 project·local의 `bypassPermissions` `defaultMode`가 2.1.257부터 무시된다고 이미 기록합니다(`.claude/rules/MUST-orchestrator-coordination.md:588`). 같은 계열이며, 이 저장소의 프로젝트 `.claude/settings.json`은 `permissions.defaultMode: "bypassPermissions"`를 유지하되 신뢰하지 말라는 주석을 둡니다(`jq .permissions .claude/settings.json`의 `_comment_defaultMode`). `.claude/settings.local.json`의 동의 상태는 기기별 설정 파일(gitignore 대상)이라 이번 검토에서 의도적으로 열어 보지 않았으며 [가설 — `claude agents` 실사용 시 동의 프롬프트 표시 여부는 미실측] 룰 변경은 필요하지 않습니다.
|
|
2117
|
+
- CHANGELOG 원문: "Reverted the auto mode denial message change from 2.1.281 that told Claude a denial covers the outcome, not only the exact command"
|
|
2118
|
+
(293) 2.1.281에서 도입된, 거부가 정확한 명령뿐 아니라 그 결과까지 포함한다고 Claude에게 알리던 auto mode 거부 메시지 변경이 롤백되었습니다. 관측한 범위에서 `.claude/rules`와 `CLAUDE.md`에 `2.1.281`을 언급하는 문장은 0건이며(`git grep -n '2\.1\.281' -- .claude/rules CLAUDE.md` rc=1), R010 STOP Protocol은 classifier trip 횟수(2회)만 기준으로 삼고 거부 메시지 문구에 의존하지 않으므로(`.claude/rules/MUST-orchestrator-coordination.md:273`의 trip 계수 서술, 같은 파일 `:254`의 STOP Protocol 절) 영향이 없습니다. 다만 롤백으로 "거부는 결과까지 포함하므로 다른 경로로 우회하지 말라"는 취지를 플랫폼 메시지가 더 이상 전하지 않습니다. 저장소 룰 중 인접한 규범은 적용 범위가 각각 좁습니다. R001의 Ask-before-scan(`.claude/rules/MUST-safety.md:147`)은 크레덴셜 디스커버리 스캔이 classifier에 걸리면 재시도하지 말라고 하고, R001 「Standing User-Deny + Classifier Block」(`:171`, `:177`)은 사용자의 상시 금지("don't touch X")가 있을 때만 차단된 편집을 다른 경로로 재시도하지 말라고 합니다. R010 STOP Protocol(`.claude/rules/MUST-orchestrator-coordination.md:262`)은 서브에이전트의 classifier trip 2회를 다루고, 같은 룰의 git 조항 두 개(`:487` 브랜치 전환 거부 시 `stash`/`reset`/`clean` 자체 우회 금지, `:1004`·`:1014` pre-commit 훅 차단의 `--no-verify` 우회 금지)와 R017의 v2.1.269/271 노트(`.claude/rules/MUST-sync-verification.md:369`, HTML 주석 안 — 낡은 `.git/config.lock`을 `rm`으로 자체 우회하지 말고 보고)는 git 작업에 한정됩니다. R015의 `.claude/rules/MUST-intent-transparency.md:138`은 allow 규칙으로는 classifier 차단이 풀리지 않으므로 사용자가 `!`로 직접 실행하거나 차단 트리거를 제거해야 한다고 적고, 같은 룰의 「Failed Tool Re-Try Discipline」(`:82`)은 사용자가 지정한 도구를 거부 후에도 같은 도구로 재시도하라는 규범이라 방향이 일부 반대이지만, 다른 수단으로 조용히 바꾸지 말라는 같은 방향의 요소도 있습니다(보이는 `:87` "do NOT silently switch", `:84`에서 열린 DETAIL 주석 안 `:85` "do NOT silently switch to a different mechanism"; 둘 다 사용자가 지정한 도구에 한정). R020의 진단 가설 표(`.claude/rules/MUST-completion-verification.md:323`)는 권한·토큰 오류를 플래그·옵션 변경으로 우회하지 말라고 하지만 진단 가설 검증 맥락의 조항입니다. 룰 문장 스윕(`git grep -n -i classifier -- .claude/rules CLAUDE.md`와 ``git grep -n -i -E 'route around|circumvent|우회|another path|different mechanism' -- .claude/rules CLAUDE.md``, HTML 주석 안의 일치 포함)에서 위 조항 외에 일반 auto mode 거부 전반에 대해 "다른 경로로 우회하지 말라"고 규정한 문장은 찾지 못했습니다. 즉 롤백 뒤 그 일반 규범은 플랫폼 메시지에서 빠졌고, 위 스윕 범위의 저장소 룰에서도 확인되지 않습니다. (288) 절 「권한 · auto mode · rm」은 사용자 scope `defaultMode`를 `auto`로 관측했습니다. 세션의 실제 유효 모드는 프로젝트 설정과의 우선순위에 따라 달라지므로(R010 「Universal bypassPermissions」 — `claude -p`에서는 `default` 귀결 실측, 대화형 세션은 [가설]) 이 롤백은 auto mode로 실행되는 세션에 한해 해당합니다.
|
|
2119
|
+
|
|
2120
|
+
### 스케줄링
|
|
2121
|
+
|
|
2122
|
+
- CHANGELOG 원문: "Reverted the 2.1.290 fix for cloud sessions staying asleep after a container restart lost a pending `/loop` wakeup or scheduled task; Claude is no longer told, and the session stays asleep"
|
|
2123
|
+
(293) 컨테이너 재시작으로 대기 중인 `/loop` wakeup이나 예약 작업이 사라진 cloud 세션이 계속 잠든 상태로 남던 문제에 대한 2.1.290 수정(2.1.290 CHANGELOG: "Fixed cloud sessions staying asleep after a container restart lost a pending `/loop` wakeup or scheduled task; Claude is now told and can schedule it again")이 롤백되어, Claude에게 알리지 않으며 세션은 잠든 채로 남습니다. 대상은 cloud 세션입니다. 관측한 범위(v2.1.290 절의 예약 경로 `git grep`)에서 이 저장소가 `/loop`를 쓰는 경로는 `/fsd`의 선택적 self-paced `/loop` 호출입니다(`.claude/skills/fsd/SKILL.md:16`, `:39`, `:162`). self-paced `/loop`도 예약 wakeup을 기다리는 세션 한정 반복 작업으로 다뤄집니다(2.1.290 CHANGELOG "`/loop` and other recurring session-only scheduled tasks", "background sessions waiting on a scheduled wakeup (`/loop`)"). `claude-native` 스킬의 `/schedule` 안내(`.claude/skills/claude-native/SKILL.md:234`~`:237`)는 클라우드 routine을 만드는 경로이며, routine 실행이 이 항목의 cloud 세션 wakeup 경로를 거치는지는 [가설 — 미관측]입니다. `omcustom-loop` 스킬 문서는 SubagentStop prompt 훅을 설명하지만(`.claude/skills/omcustom-loop/SKILL.md:3`, `:13`), v2.1.294 절에 정리한 대로 현재 SubagentStop 훅 5개는 전부 `command` 타입이며(`jq -c '[.hooks.SubagentStop[]?.hooks[]?.type]' .claude/settings.json`; #1631 교체, `.claude/hooks/hooks.json:283`의 description) 스킬 문서가 배선보다 오래된 상태이고, 이 스킬 문서는 `/loop`·`ScheduleWakeup`·`CronCreate`를 언급하지 않습니다(`command grep -c -E '/loop|ScheduleWakeup|CronCreate' .claude/skills/omcustom-loop/SKILL.md` 결과 0). `/fsd`를 cloud 세션에서 돌린 흔적은 관측하지 못했으므로 영향이 없을 것으로 봅니다 [가설 — cloud 세션 사용 여부 미관측]. 2.1.290의 다른 `/loop` 관련 수정(compaction 이후 예약 작업 복원 등)은 이 항목으로 롤백되지 않았습니다.
|
|
2124
|
+
|
|
2125
|
+
### MCP
|
|
2126
|
+
|
|
2127
|
+
- CHANGELOG 원문: "Fixed a memory leak where an HTTP MCP connection kept every request it had sent until it closed"
|
|
2128
|
+
(293) HTTP MCP 연결이 닫힐 때까지 보낸 모든 요청을 보관하던 메모리 누수가 수정되었습니다. 이 저장소는 `.mcp.json`을 추적합니다(`git ls-files .mcp.json`=1건). 추적된 `.mcp.json`의 서버 2개 중 `eraser`는 `type: "http"`, `ontology-rag`는 `stdio`로 설정되어 있으므로(`git cat-file -p HEAD:.mcp.json`) 설정 기준으로는 HTTP 연결 서버가 있습니다. 다만 Claude Code 2.1.296 리뷰어 세션과 이 정정 세션에서 `eraser`는 인증 전 도구(`authenticate` 계열)만 보였으므로, 장시간 세션에서 실제로 HTTP MCP 요청이 쌓이는지는 [가설 — 인증 후 `eraser` 사용 세션에서 판정]입니다. R013의 메모리 노트(`.claude/rules/SHOULD-ecomode.md:89`, `:101`)와 같은 계열이며 룰 변경은 필요하지 않습니다.
|
|
2129
|
+
|
|
2130
|
+
기타 46건 — 이 저장소 비해당(`←` 백그라운드 이동·Esc 처리 등 터미널 UI 동작, Claude in Chrome, `/ultrareview`, Remote Control·cloud 세션 스트리밍, `/model`·`/tui`·`/feedback`·vim 모드·keybindings 등 UI 세부, Windows 전용 수정, claude.ai skill 동기화 주기, `claude purge`·`claude logs`·`claude plugin test`·`claude plugin eval`·Claude apps gateway, mods API(`$.tool.register`), Team·Enterprise 시작 지연, OpenTelemetry·self-hosted runner·`[Claude Tag]`·`[Code Review]` 항목, Bash 편집 diff 안내 문구(다른 프로세스의 쓰기를 포함할 수 있다는 표시) 등 harness 비영향 세부사항이며 이 저장소는 해당 기능을 개발하지 않습니다). 실측: `gh release view v2.1.293 --repo anthropics/claude-code --json body --jq .body | grep -c '^- '` = 56건 중 위 본문 10건을 다뤘으므로 56 − 10 = 46건입니다. 계수 범위는 해당 릴리즈 노트의 최상위 불릿 줄(`- `로 시작하는 줄)입니다.
|
|
2131
|
+
|
|
2132
|
+
**Action items**:
|
|
2133
|
+
- 모델·상태줄, 서브에이전트·도구 안내, 컨텍스트·룰 로딩, 스케줄링, MCP 항목은 이 저장소에 해당 구성(`subagentStatusLine`, path-scoped 룰, cloud `/loop` 사용 흔적)이 없거나 기존 룰의 전제와 같은 방향의 플랫폼 수정이며 룰 문안 변경은 불필요합니다. 권한·백그라운드 중 `claude agents` bypass 동의 항목은 R010의 2.1.257 기록과 같은 계열의 플랫폼 수정입니다. 반면 auto mode 거부 메시지 롤백은 기존 룰을 보강하지 않고, 플랫폼이 전하던 "다른 경로로 우회하지 말라"는 취지를 없애는 변경입니다(아래 결정 후보). 중첩 CLAUDE.md(`templates/CLAUDE.md`)는 이 저장소에 있어 293의 로드 수정이 해당하지만, 로드 범위가 넓어지는 플랫폼 수정이므로 룰 변경 사안이 아닙니다.
|
|
2134
|
+
- 모델 카탈로그 갱신: `claude-haiku-5-5` 행은 이번 변경에서 R006 Tier-2 표(`.claude/rules/MUST-agent-design.md:50`)와 `guides/multi-model-routing/README.md:36`에 추가되었습니다. 이는 모델 목록 행 추가이며 에이전트 행동 규범을 바꾸는 변경은 아닙니다. 위 첫 항목의 "룰 문안 변경은 불필요"는 이 카탈로그 행을 제외한 규범 문안을 가리킵니다.
|
|
2135
|
+
- 결정 후보: 일반 auto mode 거부에 대해 "다른 경로로 우회하지 말라"는 범용 규범은 위 룰 문장 스윕에서 관측되지 않았습니다. 이를 룰로 둘지는 행동을 바꾸는 규범 신설이라 R016 절차의 별도 결정 사안이며, CC 지식을 기록하는 이 가이드에서는 제안하지 않고 후보로만 남깁니다.
|
|
2136
|
+
- 후속 실측 후보는 haiku 에이전트 3개의 `resolvedModel`(Haiku 5.5 여부) 확인입니다. 이 문서의 규범 변경 제안은 없습니다(CC 2.1.293 CHANGELOG 항목 기준).
|
|
2137
|
+
|
|
2138
|
+
---
|
|
2139
|
+
|
|
2140
|
+
## v2.1.294 (2026-10-08)
|
|
2141
|
+
|
|
2142
|
+
> Issue: #1848 — Claude Code v2.1.294 compatibility documentation
|
|
2143
|
+
> Scope-ceiling check (R017): 조사 시점(2026-10-13)의 최신 릴리즈는 2.1.296입니다(`claude --version`=2.1.296, `npm view @anthropic-ai/claude-code version`=2.1.296). 2.1.295·2.1.296 CHANGELOG 절에서 `2.1.294` 문자열과 "Revert"를 검색한 결과, 이 릴리즈의 두 항목을 되돌리거나 좁히는 문장은 관측되지 않았습니다. 같은 영역의 후속 항목으로 295 절 "Fixed web searches and `agent` hook evaluations taking much longer at `xhigh` and `max` effort"와 296 절 "Fixed managed-settings `PreToolUse` hooks that deny a tool call with `"continue": false`, and managed `prompt` hooks that block one, refusing the call but not ending the turn"이 있으나 둘 다 롤백이 아닌 별개 수정입니다. 릴리즈 게시 시각은 2026-10-08T05:03:54Z입니다(`gh release view v2.1.294 -R anthropics/claude-code --json publishedAt`).
|
|
2144
|
+
|
|
2145
|
+
### prompt · agent 훅 판정
|
|
2146
|
+
|
|
2147
|
+
- CHANGELOG 원문: "Fixed `prompt` and `agent` hooks written as instructions (such as "Block commands that...") allowing what they should block"
|
|
2148
|
+
(294) 지시문 형태("Block commands that..." 등)로 작성된 `prompt`·`agent` 훅이 막아야 할 대상을 허용하던 결함이 수정되었습니다. 측정한 범위에서 이 저장소가 설정하는 `prompt` 훅은 1개이며 `agent` 타입 훅은 0개입니다(`jq -c '[.hooks[][]?.hooks[]? | .type] | group_by(.) | map({(.[0]):length}) | add' .claude/settings.json templates/.claude/settings.json` 결과 두 파일 모두 `{"command":63,"prompt":1}`). 그 1개는 PostCompact 이벤트의 컨텍스트 재주입 문안이며(`.claude/hooks/hooks.json:375`, `.claude/settings.json:407`), 무엇을 차단하는 판정 훅이 아닙니다. 스킬·에이전트 frontmatter에는 `hooks:` 블록이 없습니다(`git grep -n -E '^hooks:' -- '.claude/agents/*.md' '.claude/skills/*/SKILL.md'` 결과 0건; 경로를 지정하지 않으면 R006 본문의 frontmatter 예시 줄이 걸립니다). 따라서 이 결함이 이 저장소의 차단 동작에 영향을 주지 않았다고 봅니다. PostCompact `prompt` 훅 문안이 판정 대상 평가를 거치는지는 CHANGELOG가 말하지 않으므로 [가설 — PostCompact prompt 훅의 평가 경로 미실측]입니다.
|
|
2149
|
+
- CHANGELOG 원문: "Improved how `prompt` hooks on Stop and SubagentStop written as instructions (such as "Carry on if the build is broken") are judged, so Claude is less likely to stop early"
|
|
2150
|
+
(294) Stop·SubagentStop의 `prompt` 훅이 지시문 형태로 작성된 경우의 판정이 개선되어 Claude가 일찍 멈출 가능성이 줄었습니다. 이 저장소의 Stop 훅 6개와 SubagentStop 훅 5개는 전부 `command` 타입이며 `prompt` 타입은 없습니다(`jq -c '{stop:[.hooks.Stop[]?.hooks[]?.type], sub:[.hooks.SubagentStop[]?.hooks[]?.type]}' .claude/settings.json`). SubagentStop의 `prompt` 판정 훅은 #1631에서 advisory 전용 command 훅으로 교체되었다고 `.claude/hooks/hooks.json:283`의 description이 기록합니다. 다만 `.claude/skills/omcustom-loop/SKILL.md:3`와 `:13`은 여전히 "SubagentStop prompt hook"으로 자동 이어가기를 설명하고 있어 현재 배선과 문서가 어긋납니다. 이 어긋남은 이번 릴리즈와 무관한 선재 항목이며 이 문서에서는 사실만 기록합니다. 따라서 이 개선은 현재 배선에는 적용 대상이 없고, 훗날 Stop·SubagentStop에 `prompt` 훅을 다시 배선하면 그때 적용됩니다.
|
|
2151
|
+
|
|
2152
|
+
기타 0건 — 이 저장소 비해당 항목은 없습니다. 실측: `gh release view v2.1.294 --repo anthropics/claude-code --json body --jq .body | grep -c '^- '` = 2건 중 위 본문 2건을 다뤘으므로 2 − 2 = 0건입니다. 계수 범위는 해당 릴리즈 노트의 최상위 불릿 줄(`- `로 시작하는 줄)입니다.
|
|
2153
|
+
|
|
2154
|
+
**Action items**:
|
|
2155
|
+
- 훅 설정 변경은 불필요합니다. `agent` 타입 훅은 0개이고, 유일한 `prompt` 훅은 PostCompact 재주입용이며 Stop·SubagentStop은 전부 `command` 훅입니다.
|
|
2156
|
+
- 룰 변경 제안은 없습니다. `omcustom-loop` 스킬 문서와 hooks.json 배선의 어긋남은 이 릴리즈의 조치 사항이 아니라 별도 정리 후보로만 보고합니다.
|
|
2157
|
+
|
|
2158
|
+
---
|
|
2159
|
+
|
|
2160
|
+
## v2.1.295 (2026-10-08)
|
|
2161
|
+
|
|
2162
|
+
> Issue: #1850 — Claude Code v2.1.295 compatibility documentation
|
|
2163
|
+
> Scope-ceiling check (R017): 조사 시점(2026-10-13)의 최신 릴리즈는 2.1.296입니다(`claude --version`=2.1.296, `npm view @anthropic-ai/claude-code version`=2.1.296). 상한 이후 릴리즈는 없으며, 2.1.296 CHANGELOG 절에서 "2.1.295"와 "Revert"를 검색했습니다. 이 릴리즈 항목을 되돌리거나 좁히는 "Revert" 문장은 없었고, "2.1.295"는 한 곳에서만 나타났습니다. 그 문장은 "Fixed a saved Claude apps gateway sign-in being ignored on machines whose managed settings set `forceLoginMethod` to `gateway` with no `forceLoginGatewayUrl` (regression in 2.1.295)"이며, 이 릴리즈의 `forceLoginMethod: "gateway"` 지원(Claude apps gateway) 항목의 회귀 수정으로 이 저장소와 무관합니다. 릴리즈 게시 시각은 2026-10-08T19:48:38Z입니다(`gh release view v2.1.295 -R anthropics/claude-code --json publishedAt`).
|
|
2164
|
+
|
|
2165
|
+
### hooks · 훅 실패 처리
|
|
2166
|
+
|
|
2167
|
+
- CHANGELOG 원문: "Added `onFailure: "block"` for command and HTTP hooks: a hook that can't start, times out, or exits with an unexpected code blocks the action instead of letting it through"
|
|
2168
|
+
(295) `onFailure: "block"` 옵션이 command·HTTP 훅에 추가되어, 훅이 시작하지 못하거나 타임아웃되거나 예상 밖 종료 코드를 내면 동작을 통과시키는 대신 차단할 수 있습니다. 관측한 범위에서 `.claude/settings.json`·`templates/.claude/settings.json`·`.claude/hooks/hooks.json`에는 `onFailure`·`timeout`·`async` 키가 0건이므로(`git grep -c -E '"(onFailure|timeout|async)"' -- .claude/settings.json templates/.claude/settings.json .claude/hooks/hooks.json` 출력 없음, rc=1) 이 세 파일의 훅은 모두 기본 동작을 씁니다. R021은 대부분의 규칙을 advisory-first로 규정하고 그 이유로 "Missing dependencies (jq, etc.) don't break the session"을 듭니다(`.claude/rules/MUST-enforcement-policy.md:79`). `onFailure: "block"`은 옵트인이므로 기본값이 바뀌지 않으며, 기존 advisory 훅에 일괄 적용하면 R021 정책에 반하므로 적용하지 않습니다. 이 옵션을 R021 Hard Block 계층 훅(`.claude/rules/MUST-enforcement-policy.md:19`의 stage-blocker, dev-server tmux, rule-deletion-guard)에 쓸지는 별도 결정 사안이며 이번 반영 범위에 넣지 않습니다.
|
|
2169
|
+
- CHANGELOG 원문: "Fixed an async SessionStart hook's unchanged context being added to the conversation again on every resume"
|
|
2170
|
+
(295) 비동기 SessionStart 훅의 변하지 않은 컨텍스트가 resume마다 대화에 다시 추가되던 결함이 수정되었습니다. 관측한 범위에서 `.claude/hooks/hooks.json:128`의 `SessionStart` 훅 블록에는 `async` 키가 없으므로(위 `git grep` 0건) 이 결함 조건에 해당하지 않습니다.
|
|
2171
|
+
- CHANGELOG 원문: "Fixed variables a SessionStart hook writes to `CLAUDE_ENV_FILE` not reaching the Bash tool after an in-app `/resume` or `/branch`"
|
|
2172
|
+
(295) SessionStart 훅이 `CLAUDE_ENV_FILE`에 쓴 변수가 인앱 `/resume`·`/branch` 이후 Bash 도구에 전달되지 않던 결함이 수정되었습니다. 관측한 범위에서 `.claude/hooks/`와 `.claude/settings.json`에는 `CLAUDE_ENV_FILE` 참조가 없으므로(`git grep -n CLAUDE_ENV_FILE -- .claude/hooks .claude/settings.json` rc=1) 영향 조건이 관측되지 않았습니다.
|
|
2173
|
+
- CHANGELOG 원문: "Fixed an async hook's JSON output being ignored when it is printed over several lines"
|
|
2174
|
+
(295) 여러 줄로 출력된 비동기 훅의 JSON 출력이 무시되던 결함이 수정되었습니다. `async` 훅이 0건이므로(위 `git grep -c` 출력 없음) 영향 조건이 관측되지 않았습니다.
|
|
2175
|
+
- CHANGELOG 원문: "Fixed web searches and `agent` hook evaluations taking much longer at `xhigh` and `max` effort"
|
|
2176
|
+
(295) `xhigh`·`max` effort에서 웹 검색과 `agent` 훅 평가가 훨씬 오래 걸리던 문제가 수정되었습니다. 관측한 범위에서 CC가 로드하는 `.claude/settings.json`의 훅 타입은 `command` 63개와 `prompt` 1개(PostCompact, `.claude/hooks/hooks.json:375`가 소스)이며 `agent` 타입은 없으므로(v2.1.294 절의 jq 타입 집계) `agent` 훅 쪽 영향 조건은 관측되지 않았습니다. `.claude/agents/*.md`에서 `effort: xhigh` 또는 `max` 줄은 `git grep -n -E 'effort: *(xhigh|max)' -- '.claude/agents/*.md'` 0건이므로(경로를 지정하지 않으면 `docs/` 계획 문서와 이 가이드·미러가 걸립니다) 에이전트 frontmatter 경로의 영향은 없고, 세션 수준 effort 설정에 따른 웹 검색 영향은 측정하지 않았습니다.
|
|
2177
|
+
|
|
2178
|
+
### 서브에이전트 · 팀원 · 백그라운드 작업
|
|
2179
|
+
|
|
2180
|
+
- CHANGELOG 원문: "Fixed `CLAUDE_AUTO_BACKGROUND_TASKS` moving a subagent to the background while an edit or shell command waited behind it, which started that call before the subagent finished"
|
|
2181
|
+
(295) `CLAUDE_AUTO_BACKGROUND_TASKS`가 서브에이전트를 백그라운드로 옮길 때, 그 뒤에서 편집이나 셸 명령이 대기하고 있으면 서브에이전트가 끝나기 전에 그 호출이 시작되던 결함이 수정되었습니다. 관측한 범위(`git grep -n CLAUDE_AUTO_BACKGROUND_TASKS -- . ':!guides/claude-code/15-version-compatibility.md' ':!templates/guides/claude-code/15-version-compatibility.md'`)에서 `CLAUDE_AUTO_BACKGROUND_TASKS` 참조는 규칙 노트의 서술(`.claude/rules/MUST-completion-verification.md:559`와 그 `templates/` 미러·`wiki/rules/r020.md` 사본)이며 설정으로 쓰는 곳은 없으므로, 이 환경 변수를 설정한 환경에서만 관련됩니다. R009의 병렬 실행 정책은 바뀌지 않습니다.
|
|
2182
|
+
- CHANGELOG 원문: "Fixed subagents in their own linked worktree being shown the parent session's git branch, status and recent commits"
|
|
2183
|
+
(295) 자신의 linked worktree에서 실행되는 서브에이전트에게 부모 세션의 git 브랜치·상태·최근 커밋이 보이던 결함이 수정되었습니다. 이 저장소는 공유 워크트리의 브랜치 이름이 턴 단위로 바뀔 수 있다고 보고 위임 직전 `git rev-parse --abbrev-ref HEAD` 실측을 요구합니다(R010, `.claude/rules/MUST-orchestrator-coordination.md`의 「사전 실측 리터럴」). 이 수정은 worktree 격리 서브에이전트가 받는 git 컨텍스트만 바로잡으며 이 실측 의무를 바꾸지 않습니다. 관측한 범위(`git grep -n '^isolation:' -- '.claude/agents/*.md'`)에서 에이전트 frontmatter의 `isolation` 값은 `sec-codeql-expert.md:8`의 `sandbox` 한 건이어서 frontmatter로 worktree 격리하는 에이전트는 없습니다. 호출 단위 `isolation: "worktree"` 위임과 `EnterWorktree` 경로는 v2.1.290 절과 같이 [가설]입니다.
|
|
2184
|
+
- CHANGELOG 원문: "Fixed in-process agent teammates failing their first SendMessage call until they loaded the tool through tool search"
|
|
2185
|
+
(295) in-process 에이전트 팀원이 도구 검색으로 `SendMessage`를 로드하기 전에는 첫 `SendMessage` 호출이 실패하던 결함이 수정되었습니다. R018은 `TeamCreate`가 없으면 휴면이며(`.claude/rules/MUST-agent-teams.md:22`의 Detection 행, `:36`의 dormant 문장) 멤버의 `SendMessage`는 부재를 전제하지 말고 `ToolSearch`로 먼저 로드를 시도하라고 규정합니다(같은 파일 `:492`, 「멤버 도구 부재 시 대체 규약」). 이 수정은 그 로드 단계를 생략할 수 있게 하는 방향입니다. 다만 R018은 멤버의 도구 구성이 에이전트 frontmatter와 실행 환경에 좌우된다고 추정하며(`:492`는 이를 추정으로 적고 #1817 "추정 원인 (미검증)"을 인용하며, 실측된 것은 전용 `Glob`/`Grep` 1건), 이 수정이 그 추정을 바꾸지 않으므로 기존 대체 규약은 그대로 둡니다.
|
|
2186
|
+
- CHANGELOG 원문: "Fixed Claude not being told it can resume background subagents with SendMessage after a session was killed and resumed a second time"
|
|
2187
|
+
(295) 세션이 종료된 뒤 두 번째로 resume되었을 때 Claude가 백그라운드 서브에이전트를 `SendMessage`로 재개할 수 있다는 사실을 전달받지 못하던 결함이 수정되었습니다. R018 `SendMessage` resume 관련 노트(`.claude/rules/MUST-agent-teams.md:549`)가 다루는 같은 계열의 신뢰성 수정입니다. 미완 위임을 실측값과 함께 `SendMessage`로 resume하는 R020 「Verification-Delegation Non-Termination」 절차(`.claude/rules/MUST-completion-verification.md:120`)와 보고 본문이 없을 때 `SendMessage`로 재요청하는 R009 결과 수집 절차(`.claude/rules/MUST-parallel-execution.md:368`)는 바뀌지 않습니다.
|
|
2188
|
+
- CHANGELOG 원문: "Fixed a background session's `/loop` stopping without notice when its next wakeup came due while the session's process was down; the session now says so and Claude is told"
|
|
2189
|
+
(295) 세션의 프로세스가 내려가 있는 동안 백그라운드 세션의 `/loop` 다음 wakeup 시각이 지나면 알림 없이 멈추던 결함이 수정되어, 이제 세션이 그 사실을 알리고 Claude도 전달받습니다. `/fsd`는 self-paced `/loop`를 선택적 구동 수단으로 씁니다(`.claude/skills/fsd/SKILL.md:39`, `:172`). 프로세스가 내려갔다 복구되는 구간의 무음 중단을 이제 세션이 알려주므로, 무인 루프 중단을 관측하면 이 알림 유무를 먼저 확인하는 것이 좋습니다. 이 저장소가 백그라운드 세션에서 `/loop`를 실제로 돌리는지는 관측하지 않았습니다 [가설 — 사용자의 `/fsd` 실행이 백그라운드 세션이면 해당].
|
|
2190
|
+
- CHANGELOG 원문: "Fixed a stopped scheduled task coming back on resume after a rewind, and a scheduled task being lost on resume after Esc or a rewind following a compaction"
|
|
2191
|
+
(295) 되감기(rewind) 뒤 중지된 예약 작업이 resume에서 되살아나던 결함과, 압축(compaction) 뒤 Esc나 되감기를 거친 resume에서 예약 작업이 사라지던 결함이 수정되었습니다. `/fsd`·`/loop` 같은 예약·반복 실행과 R011 세션 연속성에 영향이 있을 수 있는 계열입니다. 관측한 범위에서 `.claude/settings.json`·`.claude/skills/fsd`·`.claude/skills/omcustom-loop`에는 `CronCreate` 예약 작업 설정이 없습니다(`git grep -n CronCreate -- .claude/settings.json .claude/skills/fsd .claude/skills/omcustom-loop` 0건). `CronCreate`는 R002 도구 표(`.claude/rules/MUST-permissions.md:14`) 외에 `claude-native` 스킬의 예약 실행 안내(`.claude/skills/claude-native/SKILL.md:232`, `:240`)와 `guides/claude-code/13-cli-flags.md:56`~`:62`, 그리고 이들의 `templates/` 미러·위키 사본과 `docs/superpowers/plans/`의 계획 문서 2건에 나오며(`git grep -n CronCreate`, 이 가이드·미러 제외), `claude-native`의 이 경로를 실제로 쓰는지는 [가설 — 미관측]입니다. 또한 self-paced `/loop`도 예약 wakeup을 기다리는 세션 한정 반복 작업으로 다뤄지고(2.1.290 CHANGELOG "`/loop` and other recurring session-only scheduled tasks", "background sessions waiting on a scheduled wakeup (`/loop`)"), `/fsd`는 `/loop`를 선택적으로 호출합니다(`.claude/skills/fsd/SKILL.md:16`, `:39`, `:162`). 따라서 `/fsd`를 `/loop`로 돌리다 compaction 뒤 Esc·rewind를 거쳐 resume하는 경로에는 이 수정이 해당할 수 있습니다 [가설 — 해당 경로의 실제 발생은 미관측].
|
|
2192
|
+
|
|
2193
|
+
### 무인 · headless(`-p`) 실행
|
|
2194
|
+
|
|
2195
|
+
- CHANGELOG 원문: "Added a line on stderr, when it is a terminal, that says what a `claude -p` run is waiting for when it stays open after its last turn"
|
|
2196
|
+
(295) `claude -p` 실행이 마지막 턴 이후에도 열려 있을 때, 터미널이면 stderr에 무엇을 기다리는지 알려주는 줄이 추가되었습니다. `/fsd`는 무인 실행(`claude -p`, 예약 실행)에서 `/goal`·`/loop`를 권장합니다(`.claude/skills/fsd/SKILL.md:172`). 이 줄은 터미널일 때만 출력되므로 파이프·CI의 stdout 파싱에는 영향이 없다고 보지만 stderr 소비자는 측정하지 않았습니다 [가설 — `claude -p` 실행 스크립트가 stderr를 파싱하지 않으면 영향 없음].
|
|
2197
|
+
- CHANGELOG 원문: "Fixed `claude -p` text output dropping earlier responses when background work started another turn; each turn's response now prints when the turn ends"
|
|
2198
|
+
(295) `claude -p` 텍스트 출력이 백그라운드 작업으로 다른 턴이 시작되었을 때 앞선 응답을 빠뜨리던 결함이 수정되어, 이제 각 턴의 응답이 그 턴이 끝날 때 출력됩니다. 이 저장소는 `-p`로 `/fsd`를 돌릴 수 있고(`.claude/skills/fsd/SKILL.md:172`) 서브에이전트 완료 응답에 의존하므로, 구버전의 `-p` 출력 누락을 "에이전트가 응답하지 않음"으로 오진하지 않도록 이 경계를 기억하는 것이 좋습니다. 이 저장소의 `-p` 출력 파서는 관측하지 못했습니다.
|
|
2199
|
+
- CHANGELOG 원문: "Added `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` to limit how long unattended retry mode (`CLAUDE_CODE_RETRY_WATCHDOG`) waits out 429 and 529 errors"
|
|
2200
|
+
(295) 무인 재시도 모드(`CLAUDE_CODE_RETRY_WATCHDOG`)가 429·529 오류를 얼마나 오래 기다리는지 제한하는 `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`가 추가되었습니다. 이 가이드의 (288) 항목이 이미 `CLAUDE_CODE_RETRY_WATCHDOG`를 다루고 있습니다(`guides/claude-code/15-version-compatibility.md:1791`). 새 환경 변수는 옵트인이며, 관측한 범위(`git grep -n RETRY_WATCHDOG -- . ':!guides/claude-code/15-version-compatibility.md' ':!templates/guides/claude-code/15-version-compatibility.md'`)에서 참조는 룰 노트(`.claude/rules/MUST-agent-teams.md:549`와 그 `templates/` 미러·`wiki/rules/r018.md` 사본)뿐이라 이 저장소는 어느 쪽도 설정하지 않습니다.
|
|
2201
|
+
|
|
2202
|
+
### MCP
|
|
2203
|
+
|
|
2204
|
+
- CHANGELOG 원문: "Fixed remote MCP servers in headless and SDK sessions staying disconnected after an outage longer than 15 seconds, or reconnecting in a tight loop to a server that drops each connection right after it connects; repeated drops now back off, up to 30s"
|
|
2205
|
+
(295) headless·SDK 세션에서 원격 MCP 서버가 15초보다 긴 장애 뒤 연결이 끊긴 채 남던 결함과, 연결 직후 매번 끊는 서버에 빠르게 반복 재연결하던 결함이 수정되어, 이제 반복 끊김은 최대 30초까지 backoff합니다. 관측한 범위에서 `.mcp.json:15-16`에 원격 http 서버(`https://app.eraser.io/api/mcp`)가 있으므로 `-p`·SDK로 이를 쓰는 무인 실행에서는 관련될 수 있습니다. `.mcp.json:4`의 다른 서버는 stdio 방식이라 원격 재연결 결함에 해당하지 않습니다.
|
|
2206
|
+
- CHANGELOG 원문: "Changed MCP tool descriptions the model loads through tool search to be cut at 16,384 characters instead of 2,048"
|
|
2207
|
+
(295) 도구 검색으로 로드되는 MCP 도구 설명이 2,048자 대신 16,384자에서 잘리도록 바뀌었습니다. 이는 MCP 서버를 쓰는 세션의 컨텍스트 비용을 늘릴 수 있는 변경입니다. R013의 컨텍스트 예산 임계값은 창 대비 백분율이므로 규칙을 바꾸지 않으며, 설명이 긴 MCP 서버를 쓸 때의 영향은 측정하지 않았습니다 [가설 — `/context`에서 MCP 도구 설명 비중이 2.1.295 전후로 늘었는지 비교하면 판정 가능].
|
|
2208
|
+
|
|
2209
|
+
### 스킬 · 에이전트 frontmatter · 권한
|
|
2210
|
+
|
|
2211
|
+
- CHANGELOG 원문: "Changed subagents to preload at most 32 skills from the `skills` field, each once; a subagent with the Skill tool can still invoke the rest"
|
|
2212
|
+
(295) 서브에이전트가 `skills` 필드에서 미리 로드하는 스킬이 최대 32개로 제한되고 각각 한 번만 로드됩니다. Skill 도구가 있는 서브에이전트는 나머지를 계속 호출할 수 있습니다. 즉 CC는 `skills:`에 나열된 스킬을 서브에이전트에 사전 로드합니다(컨텍스트 비용이 생기고 상한은 32개). 원문의 "can still invoke the rest"는 32개를 넘어 사전 로드되지 않은 나열 스킬을 가리킵니다. 이 필드가 접근 허용 목록이 아니라는 전제는 원문이 아니라 R006의 서술(`.claude/rules/MUST-agent-design.md:199`)에 근거합니다. 관측한 범위(python3로 `.claude/agents/*.md` frontmatter를 파싱)에서 `skills:`를 선언한 에이전트는 37개이고 항목 수 최대값은 4개(`.claude/agents/fe-vercel-agent.md`)이므로 상한 32에 걸리지 않습니다. R006의 `skills:` 설명은 이번 변경에서 사전 로드 사실을 반영해 정정되었습니다(`.claude/rules/MUST-agent-design.md:196`~`:198`의 DETAIL 주석, `:199`의 보이는 문장).
|
|
2213
|
+
- CHANGELOG 원문: "Fixed a skill's `allowed-tools` and `effort` being dropped when the Skill tool finished before the response stream ended, which denied the skill's Bash commands in `-p` runs"
|
|
2214
|
+
(295) Skill 도구가 응답 스트림이 끝나기 전에 끝나면 스킬의 `allowed-tools`와 `effort`가 버려져 `-p` 실행에서 스킬의 Bash 명령이 거부되던 결함이 수정되었습니다. 관측한 범위에서 `.claude/skills/*/SKILL.md`에 `allowed-tools:` 또는 `effort:` 줄이 합계 21건 있으므로(`git grep -n -E '^allowed-tools:|^effort:' -- '.claude/skills/*/SKILL.md'` 21건; 경로를 지정하지 않으면 다른 파일까지 152건이 걸립니다) 해당 스킬을 `-p`로 호출하는 무인 실행에서 관련될 수 있습니다. 구버전에서 `-p` 중 스킬의 Bash가 거부된 사례를 관측하지는 못했습니다.
|
|
2215
|
+
- CHANGELOG 원문: "Fixed Bash permission checks for for-loops over glob patterns, improving permission-check accuracy"
|
|
2216
|
+
(295) for 반복문이 glob 패턴을 순회하는 Bash 명령의 권한 검사가 수정되어 검사 정확도가 개선되었습니다. 원문은 어느 방향의 오류였는지(과허용·과차단)를 밝히지 않으므로 이 저장소에 대한 영향 방향은 단정하지 않습니다 [가설 — 원문 방향 미확정이므로 영향 방향은 알 수 없음]. `.claude/settings.json:2`의 `permissions` 규칙은 이 수정으로 바뀌지 않습니다.
|
|
2217
|
+
- CHANGELOG 원문: "Fixed `--tools` and `--restricted` not applying to built-in tools that register after launch, and deprecated tool names reaching tools outside the caller's tool set"
|
|
2218
|
+
(295) `--tools`와 `--restricted`가 실행 뒤에 등록되는 내장 도구에는 적용되지 않던 결함과, 폐기된 도구 이름으로 호출자의 도구 집합 밖 도구에 닿던 결함이 수정되었습니다. 이 저장소의 도구 제한 전제는 R010 「Known Limitations (Active Cache)」(`.claude/rules/MUST-orchestrator-coordination.md:811`, 예: `arch-documenter`의 `disallowedTools: [Bash]`)와 R002 ‡(`.claude/rules/MUST-permissions.md:18`, frontmatter `tools:` 명시가 `--tools` 명시와 같은 효과라는 일반화는 1건 실측에 근거한 추정)에 기대고 있습니다. 원문 문법상 앞 절은 CLI 플래그(`--tools`·`--restricted`)에 관한 것이고, 뒤 절("deprecated tool names reaching tools outside the caller's tool set")은 플래그에 한정되지 않은 호출자의 도구 집합 일반에 관한 것으로 읽힙니다. 이 수정 이전에는 실행 뒤 등록되는 내장 도구를 통해 `--tools`·`--restricted` 제한이 빠질 수 있었습니다. 뒤 절이 frontmatter `tools:`·`disallowedTools:` 제한에도 적용됐다면, 구버전에서 그런 서브에이전트에 특정 도구가 주어지지 않는다는 전제가 늘 성립했다고 볼 수 없습니다 [가설 — 측정하지 않음]. 위임 전 도구 가용성 점검(R010 Agent Capability Pre-Check, `.claude/rules/MUST-orchestrator-coordination.md:742`)은 그대로 필요하며 룰 문안 변경은 필요하지 않습니다.
|
|
2219
|
+
- CHANGELOG 원문: "Fixed forked skills invoked from Workflow subagents delivering their results to the main conversation instead of the invoking agent"
|
|
2220
|
+
(295) Workflow 서브에이전트가 호출한 forked skill이 결과를 호출한 에이전트가 아니라 메인 대화로 전달하던 결함이 수정되었습니다. 이 저장소는 `context: fork` 스킬을 쓰며 상한이 12개입니다(R006 「Context Fork Criteria」, `.claude/rules/MUST-agent-design.md`). 원문상 이 결함은 Workflow 서브에이전트가 호출한 경우의 결함입니다. 관측한 범위(`git grep -l -E '^context: *fork' -- '.claude/skills/*/SKILL.md'`)에서 `context: fork` 스킬은 10개(`dag-orchestration`, `de-lead-routing`, `deep-plan`, `dev-lead-routing`, `professor-triage`, `qa-lead-routing`, `roundtable-debate`, `secretary-routing`, `task-decomposition`, `worker-reviewer-pipeline`)이며 R006이 이를 다중 에이전트 오케스트레이션용으로 규정하므로 영향은 제한적이라고 봅니다 [가설 — Workflow 서브에이전트가 fork 스킬을 호출하는 경로가 없으면 해당 없음].
|
|
2221
|
+
|
|
2222
|
+
### 환경 · 기타 동작
|
|
2223
|
+
|
|
2224
|
+
- CHANGELOG 원문: "Fixed commands and hooks in background sessions inheriting `FORCE_COLOR=3`, which put color escape codes into the output Claude reads"
|
|
2225
|
+
(295) 백그라운드 세션의 명령과 훅이 `FORCE_COLOR=3`을 상속해 Claude가 읽는 출력에 색상 이스케이프 코드가 섞이던 결함이 수정되었습니다. 이 저장소의 `.husky/pre-commit:67-68`이 이미 `env -u FORCE_COLOR NO_COLOR=1`로 coverage 출력의 ANSI 오염을 막고 있어(#1437) 이 방어는 그대로 유효하며 제거하지 않습니다. 이 수정은 백그라운드 세션 출력의 색상 코드 오염 원인 하나를 줄이는 방향입니다.
|
|
2226
|
+
|
|
2227
|
+
기타 121건 — 이 저장소 비해당(Claude apps gateway 설정·감사·정책, mods·plugin 패널·marketplace·`claude plugin` CLI, 터미널 렌더링·vim 모드·키바인딩·붙여넣기, VSCode·Cloud sessions·Claude Tag·Code Review·self-hosted runner·Desktop 전용 항목, OSC 7501·`/copy` 같은 UI 세부사항, `cat` 같은 Bash 명령 뒤의 파일 읽음 상태 판정·mtime이 바뀌지 않은 변경에 대한 Edit의 전체 읽음 판정 같은 도구 상태 세부, `←`로 백그라운드에 옮긴 self-paced `/loop`의 Esc 중지 등). 실측: `gh release view v2.1.295 --repo anthropics/claude-code --json body --jq .body | grep -c '^- '` = 143건 중 위 본문 22건을 다뤘으므로 143 − 22 = 121건입니다. 계수 범위는 해당 릴리즈 노트의 최상위 불릿 줄(`- `로 시작하는 줄)입니다.
|
|
2228
|
+
|
|
2229
|
+
**Action items**:
|
|
2230
|
+
|
|
2231
|
+
- 이 릴리즈에는 결함 수정·옵트인 기능 외에 기본 동작 변경도 있습니다(도구 검색으로 로드되는 MCP 도구 설명의 16,384자 절단, 서브에이전트 `skills` 사전 로드 상한 32개, 터미널일 때 `claude -p`가 stderr에 쓰는 대기 안내 줄). 이 중 `skills` 사전 로드 항목은 R006 `skills:` 설명의 정정(`.claude/rules/MUST-agent-design.md:196`~`:199`)으로 이어졌고, 그 밖에는 관측한 범위에서 룰·CLAUDE.md·에이전트·훅 변경이 필요한 항목을 찾지 못했습니다(R016: CC 지식은 이 가이드에 두고 룰 파일에는 행동 변화가 필요할 때만 1줄).
|
|
2232
|
+
- `onFailure: "block"`을 R021 Hard Block 계층 훅에 적용할지는 별도 결정 사안으로 이월합니다. 위 `git grep -c` 결과상 세 설정 파일(`.claude/settings.json`, `templates/.claude/settings.json`, `.claude/hooks/hooks.json`)의 훅은 `onFailure`·`timeout`·`async`를 쓰지 않습니다.
|
|
2233
|
+
- (295) 항목 중 `[가설 — …]` 표기는 판정 기준을 충족하는 측정이 이루어지기 전에는 결론으로 쓰지 않습니다.
|
|
2234
|
+
|
|
2235
|
+
---
|
|
2236
|
+
|
|
2237
|
+
## v2.1.296 (2026-10-09)
|
|
2238
|
+
|
|
2239
|
+
> Issue: #1851 — Claude Code v2.1.296 compatibility documentation
|
|
2240
|
+
> Scope-ceiling check (R017): 조사 시점(2026-10-13)의 최신 릴리즈는 2.1.296입니다(`claude --version`=2.1.296, `npm view @anthropic-ai/claude-code version`=2.1.296). 이 릴리즈가 스코프 상한이므로 이후 릴리즈의 롤백 확인 대상이 없습니다. 릴리즈 게시 시각은 2026-10-09T19:28:59Z입니다(`gh release view v2.1.296 -R anthropics/claude-code --json publishedAt`).
|
|
2241
|
+
|
|
2242
|
+
### 훅
|
|
2243
|
+
|
|
2244
|
+
- CHANGELOG 원문: "Fixed managed-settings `PreToolUse` hooks that deny a tool call with `"continue": false`, and managed `prompt` hooks that block one, refusing the call but not ending the turn"
|
|
2245
|
+
(296) managed settings의 `PreToolUse` 훅이 `"continue": false`로 도구 호출을 거부하는 경우와 managed `prompt` 훅이 호출을 차단하는 경우에, 호출은 거부되지만 턴이 끝나지 않던 결함이 수정되었습니다. 관측한 범위에서 description이 차단 목적을 밝힌 이 저장소의 PreToolUse 훅은 프로젝트 settings에 배선되어 있으며, 종료 코드는 훅마다 다릅니다. 스크립트 훅 `.claude/hooks/scripts/stage-blocker.sh:13`과 `.claude/hooks/scripts/rule-deletion-guard.sh:32`는 `exit 2`를 씁니다. description이 차단 목적을 적은 인라인 훅 두 개, 곧 `.claude/settings.json:52`(description `:56` "Block dev servers outside tmux - ensures you can access logs")와 `:82`(description `:86` "Block creation of random .md files - keeps docs consolidated")의 명령에는 `exit 1`이 있습니다(`command grep -n 'exit 1' .claude/settings.json`). `"continue": false`나 `permissionDecision`을 출력하는 곳은 없습니다(`git grep -n -E '"continue": *false|continue: *false|permissionDecision' -- .claude/hooks .claude/settings.json` rc=1). R021의 Conversation Block 계층 훅(`context-budget-advisor.sh`, `stuck-detector.sh`, `cost-cap-advisor.sh`)은 `.claude/settings.json:494`~`:495`, `:516`~`:517`, `:527`~`:528`에서 `continueOnBlock: true`로 배선됩니다. managed settings는 저장소 파일이 아니므로 관측 대상이 아니며, 이 저장소가 배포하는 훅은 관측한 범위에서 프로젝트 settings 훅(`.claude/settings.json`과 `templates/` 미러)이고 플러그인 매니페스트는 없으므로(v2.1.290 절의 `git ls-files`·`find` 0건) 이 수정의 대상이 아니라고 봅니다 [가설 — 사용자 환경의 managed settings 훅 유무는 미관측].
|
|
2246
|
+
- CHANGELOG 원문: "Fixed PostToolUse hooks in managed settings not applying `updatedMCPToolOutput` in some sessions"
|
|
2247
|
+
(296) managed settings의 PostToolUse 훅이 일부 세션에서 `updatedMCPToolOutput`을 적용하지 못하던 결함이 수정되었습니다. 이 저장소의 `playwright-compress` 훅이 `updatedMCPToolOutput`을 씁니다(`.claude/hooks/scripts/playwright-compress.sh:81`, 배선 `.claude/settings.json:579`). 다만 그 훅은 managed가 아니라 프로젝트 settings에 있으므로 이 수정의 대상이 아닙니다. 프로젝트 settings 경로에서 같은 증상이 있었는지는 관측하지 못했습니다 [가설 — 증상이 managed 한정이라는 CHANGELOG 문구를 따르면 영향 없음]. 또한 이 훅은 입력 JSON 전체를 되돌려 주면서 `updatedMCPToolOutput`을 최상위 키로 넣으며(`.claude/hooks/scripts/playwright-compress.sh:81`의 jq 식), 다른 훅이 쓰는 `hookSpecificOutput` 객체 형태(예: `.claude/hooks/scripts/claude-md-reinject.sh:74`)와 다릅니다. CC가 최상위 위치의 이 키를 적용하는지는 실측하지 않았습니다 [가설 — 훅 적용 전후 MCP 도구 결과를 비교하면 판정].
|
|
2248
|
+
- CHANGELOG 원문: "Fixed hook output being altered when it contained text resembling a plugin hint tag"
|
|
2249
|
+
(296) 훅 출력에 플러그인 힌트 태그와 비슷한 텍스트가 있으면 출력이 변형되던 결함이 수정되었습니다. 이 저장소의 advisory 훅은 stdout·stderr로 규칙 경고를 전달하므로(R021 Advisory 계층) 이론상 해당될 수 있으나, 관측한 범위에서 저장소에 `plugin hint` 문자열은 0건입니다(`git grep -n 'plugin hint' -- . ':!guides/claude-code/15-version-compatibility.md' ':!templates/guides/claude-code/15-version-compatibility.md'` rc=1). 훅 출력이 실행 시점에 이런 텍스트를 포함하는지는 관측하지 않았으므로, 영향은 없을 것으로 보되 [가설 — 실제 훅 출력 내용으로 판정]입니다.
|
|
2250
|
+
- CHANGELOG 원문: "Fixed Esc or an interrupt during a `UserPromptSubmit` hook or a mod's `prompt.submit` hook ending headless sessions, clearing the typed prompt, or letting the unchecked prompt through"
|
|
2251
|
+
(296) `UserPromptSubmit` 훅이나 mod의 `prompt.submit` 훅이 실행되는 동안의 Esc·인터럽트가 headless 세션을 끝내거나 입력한 프롬프트를 지우거나 검사되지 않은 프롬프트를 통과시키던 결함이 수정되었습니다. 이 저장소는 `UserPromptSubmit` 훅 4개(`user-prompt-preprocessor.sh`, `r007-r008-drift-advisor.sh`, `session-autofix-prompt.sh`, `fail-axis-cause-advisor.sh`)를 배선합니다(`.claude/settings.json:233`). 특히 R007/R008 drift advisor와 원인 되묻기 advisor가 이 이벤트에 걸려 있으므로, 구버전의 인터럽트 시 "검사되지 않은 프롬프트 통과"는 advisory 전달 누락의 가능한 경로였습니다 [가설 — 해당 인터럽트 시나리오의 실제 발생은 미관측]. 룰 변경은 필요하지 않습니다.
|
|
2252
|
+
- CHANGELOG 원문: "Fixed SessionStart hooks of a plugin loaded after a headless session starts being skipped when a different plugin with the same name, or another spelling of it, had already run"
|
|
2253
|
+
(296) headless 세션 시작 후 로드된 플러그인의 SessionStart 훅이, 같은 이름(또는 다른 표기)의 다른 플러그인이 이미 실행됐다는 이유로 건너뛰어지던 결함이 수정되었습니다. 원문의 대상은 플러그인의 SessionStart 훅이며, 이 저장소의 SessionStart 재주입(R021, `.claude/settings.json:161`)은 프로젝트 settings 훅이라 원문 대상에 들지 않습니다. 이 저장소가 사용하는 플러그인(superpowers 등)의 훅이 영향을 받았는지는 관측하지 못했습니다 [가설 — 플러그인 SessionStart 훅 발화 로그로 판정].
|
|
2254
|
+
- CHANGELOG 원문: "Fixed a late-loading plugin's SessionStart hook output reaching the new conversation after `/clear` in headless sessions"
|
|
2255
|
+
(296) headless 세션에서 늦게 로드된 플러그인의 SessionStart 훅 출력이 `/clear` 이후의 새 대화에 전달되던 결함이 수정되었습니다. 위 항목과 같은 플러그인 훅 경로의 수정이며, 원문상 프로젝트 SessionStart 훅은 대상이 아닙니다.
|
|
2256
|
+
- CHANGELOG 원문: "Improved `--debug` output for hooks: command hooks on tool calls, prompts, SessionStart and Stop now log their command, plugin, outcome and duration when they finish, so a slow hook is identifiable"
|
|
2257
|
+
(296) `--debug` 출력이 개선되어 도구 호출·프롬프트·SessionStart·Stop의 command 훅이 종료 시 명령, 플러그인, 결과, 소요 시간을 기록하므로 느린 훅을 식별할 수 있습니다. 이 저장소는 훅 핸들러 64개를 프로젝트 settings에 배선하므로(`jq '[.hooks[][]?.hooks[]?] | length' .claude/settings.json`=64) 훅 지연이나 발화 여부를 진단할 때 쓸 수 있는 새 수단입니다. 훅 진단을 R021의 "배선 확인 ≠ 전달 확인 ≠ 발화 확인 ≠ 로드 확인" 원칙(`.claude/rules/MUST-enforcement-policy.md:38`)으로 실측할 때 `--debug` 로그를 증거로 추가할 수 있으나 룰 변경은 필요하지 않습니다.
|
|
2258
|
+
|
|
2259
|
+
### 에이전트 · 서브에이전트
|
|
2260
|
+
|
|
2261
|
+
- CHANGELOG 원문: "Added `autoCompactWindow` to subagent frontmatter and `--agents` definitions, so a subagent can auto-compact earlier than the main conversation's window"
|
|
2262
|
+
(296) 서브에이전트 frontmatter와 `--agents` 정의에 `autoCompactWindow`가 추가되어, 서브에이전트가 메인 대화의 창보다 일찍 auto-compact할 수 있습니다. 관측한 범위에서 `autoCompactWindow`는 이 가이드 밖에서 0건이며(`git grep -n autoCompactWindow -- . ':!guides/claude-code/15-version-compatibility.md' ':!templates/guides/claude-code/15-version-compatibility.md'` rc=1) R006 「Optional Frontmatter」 목록(`.claude/rules/MUST-agent-design.md:179`)에도 없습니다. 같은 명령 결과상 에이전트 파일 중 이 필드를 쓰는 것이 없으므로 영향 조건이 관측되지 않았고, 긴 작업을 하는 에이전트의 컨텍스트 사용량을 낮추는 선택 수단으로 남습니다(턴 수 한도인 `maxTurns`와는 별개입니다) [가설 — 에이전트에 적용했을 때의 효과는 미실측].
|
|
2263
|
+
- CHANGELOG 원문: "Improved `--debug` output to name unrecognized frontmatter fields in custom agent files, with a hint for likely typos"
|
|
2264
|
+
(296) `--debug` 출력이 커스텀 에이전트 파일의 인식되지 않는 frontmatter 필드를 이름으로 알려 주고, 오타로 보이는 경우 힌트를 제공합니다. 이 저장소의 에이전트 frontmatter는 R006이 선택 필드로 나열한 `limitations`(13개 파일), `domain`(49개 파일), `soul`(1개 파일)을 씁니다(`.claude/agents/arch-documenter.md:5`, `:8`, `.claude/agents/lang-golang-expert.md`; R006 목록 `MUST-agent-design.md:179`). 또한 `.claude/agents/fe-design-expert.md:19`의 `source:`(외부 출처 메타데이터 블록)는 R006 선택 필드 목록에도 없는 필드입니다(`git grep -n -E '^source:' -- '.claude/agents/*.md'` 1건). 이 필드들이 CC의 인식 필드인지는 관측하지 못했으므로 `--debug`가 이들을 "unrecognized"로 보고할 수 있습니다 [가설 — `claude --debug`로 에이전트 로드 시 출력 실측으로 판정].
|
|
2265
|
+
- CHANGELOG 원문: "Fixed resumed subagents being told that the user rejected a tool call that a session shutdown had interrupted"
|
|
2266
|
+
(296) 세션 종료로 중단된 도구 호출에 대해, 재개된 서브에이전트가 사용자가 그 호출을 거부했다고 안내받던 결함이 수정되었습니다. 이 저장소는 절단되거나 정체된 서브에이전트를 재개할 때 실측값을 동봉하라고 규정합니다(`.claude/rules/MUST-completion-verification.md:127`). 구버전에서 재개된 에이전트가 "사용자 거부"로 오인해 작업을 중단했을 가능성이 있으나 [가설 — 해당 세션 미조사] 룰 변경은 필요하지 않습니다.
|
|
2267
|
+
- CHANGELOG 원문: "Added `CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL` to run every workflow agent on one model while other subagents keep theirs"
|
|
2268
|
+
(296) `CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL`이 추가되어 모든 workflow 에이전트를 하나의 모델로 실행하고 다른 서브에이전트는 자기 모델을 유지합니다. 이 저장소는 Workflow 스크립트 규약을 두지만(R023 `.claude/rules/SHOULD-verification-ladder.md:302`) 이 env는 `.claude/settings.json`, `templates/.claude/settings.json`, `.claude/settings.local.json`에서 0건으로 설정돼 있지 않습니다(`command grep -c CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL` 세 파일 모두 0). 설정하지 않으면 동작이 바뀌지 않으며, 설정 시 R006의 Tier-2 핀과 어긋날 수 있어 [가설 — 설정했을 때 에이전트 frontmatter 핀과의 우선순위는 미실측] 사용 전 측정이 필요합니다.
|
|
2269
|
+
|
|
2270
|
+
### 권한 · 파일 편집
|
|
2271
|
+
|
|
2272
|
+
- CHANGELOG 원문: "Fixed Bash permission checks auto-approving some commands that assign the `BASH_ARGV0` shell variable and then use it; these now prompt for approval"
|
|
2273
|
+
(296) `BASH_ARGV0` 셸 변수를 할당한 뒤 사용하는 일부 명령을 Bash 권한 검사가 자동 승인하던 결함이 수정되어, 이제 승인을 요청합니다. 관측한 범위에서 이 가이드와 미러를 제외한 저장소에 `BASH_ARGV0`은 0건이며(`git grep -n BASH_ARGV0 -- . ':!guides/claude-code/15-version-compatibility.md' ':!templates/guides/claude-code/15-version-compatibility.md'`) 프로젝트 allow 규칙(`.claude/settings.json`의 `permissions.allow`)은 `Bash(git:*)` 같은 접두 규칙입니다. 위 명령 결과상 이 변수를 쓰는 추적 스크립트가 없으므로 영향 조건이 관측되지 않았습니다.
|
|
2274
|
+
- CHANGELOG 원문: "Fixed Edit and NotebookEdit replacing every non-ASCII character in files that are not valid UTF-8 (Windows-1252, Shift-JIS, GBK); such edits are now refused"
|
|
2275
|
+
(296) UTF-8이 아닌 파일(Windows-1252, Shift-JIS, GBK)에서 Edit·NotebookEdit가 모든 non-ASCII 문자를 바꿔 버리던 결함이 수정되어, 이제 그런 편집은 거부됩니다. 이 저장소의 추적된 `*.md`·`*.ts`·`*.sh`·`*.json`·`*.yaml`·`*.yml` 1431개 파일을 UTF-8로 디코드해 측정한 결과(`git ls-files -z -- '*.md' '*.ts' '*.sh' '*.json' '*.yaml' '*.yml'` 목록을 python3로 `decode('utf-8')`) UTF-8이 아닌 파일은 0개였으므로, 이 수정으로 편집이 거부될 대상 파일은 관측되지 않았습니다.
|
|
2276
|
+
|
|
2277
|
+
### 컨텍스트 · 비용 · 모델
|
|
2278
|
+
|
|
2279
|
+
- CHANGELOG 원문: "Updated `/cost`, the status line, `--max-budget-usd` and the SDK's cost figures to price Sonnet 5.5 cache reads at $0.10 per million tokens (was $0.20)"
|
|
2280
|
+
(296) `/cost`, 상태줄, `--max-budget-usd`, SDK의 비용 수치가 Sonnet 5.5 cache read를 100만 토큰당 $0.10(이전 $0.20)으로 계산하도록 갱신되었습니다. R006 Tier-2 표의 `claude-sonnet-5-5` 행(`.claude/rules/MUST-agent-design.md:52`)과 `guides/multi-model-routing/README.md:38`의 같은 모델 행은 이전 값 `$0.20`을 적고 있었으나, 이번 변경에서 CC 비용 수치의 $0.10(v2.1.296, 이전 $0.20)으로 함께 정정되었습니다. `claude-opus-5-5`의 `$0.20/Mtok cache reads`(`MUST-agent-design.md:56`)는 이 항목 대상이 아니며 변경 여부는 관측하지 못했습니다. `guides/claude-code/15-version-compatibility.md`의 2.1.28x 절 원문 인용은 당시 릴리즈 노트의 역사 기록이므로 정정 대상이 아닙니다. 이 저장소의 상태줄은 CC가 상태줄 입력으로 주는 `.cost.total_cost_usd`를 읽고(`.claude/statusline.sh:102`) 그 값을 `/tmp/.claude-cost-${PPID}` 브리지 파일에 씁니다(`:122`~`:124`). 비용 훅 `cost-cap-advisor.sh`는 이 브리지 파일을 읽으며(`.claude/hooks/scripts/cost-cap-advisor.sh:10`, `:43`), 두 스크립트에 단가 하드코딩은 없습니다(`git grep -n -E '0\.20|0\.10' -- .claude/statusline.sh .claude/hooks/scripts` 출력 없음). 따라서 이 갱신은 두 스크립트에 별도 수정 없이 반영됩니다.
|
|
2281
|
+
- CHANGELOG 원문: "Fixed token counts for Haiku 5.5 and other models that take only adaptive thinking, which failed behind some gateways and were counted with budget thinking elsewhere"
|
|
2282
|
+
(296) Haiku 5.5처럼 adaptive thinking만 받는 모델의 토큰 수 계산이, 일부 gateway 뒤에서는 실패하고 다른 곳에서는 budget thinking으로 계산되던 결함이 수정되었습니다. 원문의 "elsewhere"는 실패하던 일부 gateway 밖, 즉 Anthropic API 직접 사용을 포함한 그 밖의 경로를 뜻하므로, budget thinking으로 계산되던 뒤쪽 결함은 gateway를 쓰지 않는 환경에도 해당합니다. 이 저장소의 haiku 에이전트 3개(`.claude/agents/mgr-supplier.md:4`, `.claude/agents/sys-naggy.md:4`, `.claude/agents/tracker-checkpoint.md:4`)는 Tier-1 별칭 `model: haiku`를 쓰므로, 이들이 Haiku 5.5로 해석되면 구버전의 토큰 수 계산이 부정확했을 수 있습니다 [가설 — 스폰 결과의 `resolvedModel`이 `claude-haiku-5-5`이면 해당, 2.1.293 절과 같은 판정 기준].
|
|
2283
|
+
- CHANGELOG 원문: "Added an `allow_large` option to the Read tool so Claude can read a text file past the usual size limits in one call when it needs the whole file and the context has room"
|
|
2284
|
+
(296) Read 도구에 `allow_large` 옵션이 추가되어, 전체 파일이 필요하고 컨텍스트에 여유가 있을 때 통상 크기 한도를 넘는 텍스트 파일을 한 번에 읽을 수 있습니다. R005는 "필요한 파일만 읽는다"를 지연 로딩 전략으로 규정합니다(`.claude/rules/MAY-optimization.md:11`). 이 옵션은 컨텍스트 비용을 키우므로 R013의 예산 임계값(`.claude/rules/SHOULD-ecomode.md:87`)이 계속 적용됩니다. 룰 변경은 필요하지 않습니다.
|
|
2285
|
+
- CHANGELOG 원문: "Changed the default limit on MCP tool descriptions sent up front and on MCP server instructions from 2,048 to 4,096 characters"
|
|
2286
|
+
(296) 미리 전달되는 MCP 도구 설명과 MCP 서버 안내문의 기본 한도가 2,048자에서 4,096자로 바뀌었습니다. 이 저장소의 가이드는 2,048자 상한을 280 절에서 기록합니다(`guides/claude-code/15-version-compatibility.md:1339`, `:1340`). 그 기록은 당시 사실이며 현재 기본값이 아니므로 읽을 때 참고해야 합니다. `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`는 저장소 settings에 0건으로 설정돼 있지 않아(`command grep -c CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH .claude/settings.json templates/.claude/settings.json .claude/settings.local.json` 모두 0) 저장소 설정 범위에서는 기본값이 적용됩니다. 한도가 두 배가 되어 MCP 서버 안내문이 더 길게 주입되므로 컨텍스트 고정비가 늘 수 있습니다 [가설 — 실제 서버 안내문 길이와 증가분은 미실측].
|
|
2287
|
+
- CHANGELOG 원문: "Added `CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS` environment variable to set a longer maximum delay for the backoff when retrying an overloaded (529) request"
|
|
2288
|
+
(296) 과부하(529) 요청을 재시도할 때 백오프의 최대 지연을 더 길게 정하는 `CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS` env가 추가되었습니다. R004의 Retryable 전략은 "최대 3회, 1s·2s·4s 백오프"를 규정하며(`.claude/rules/SHOULD-error-handling.md:25`) 플랫폼 재시도와 별개 층입니다. 이 env는 저장소 settings에 설정되어 있지 않아(`command grep -c OVERLOADED_RETRY_MAX .claude/settings.json templates/.claude/settings.json .claude/settings.local.json` 모두 0) 저장소 설정 범위에서는 동작이 바뀌지 않습니다.
|
|
2289
|
+
|
|
2290
|
+
### MCP · headless
|
|
2291
|
+
|
|
2292
|
+
- CHANGELOG 원문: "Fixed headless sessions starting a folder's `.mcp.json` or plugin MCP server that was switched off for that folder, after changing directory or reloading plugins"
|
|
2293
|
+
(296) headless 세션이 디렉토리 변경이나 플러그인 재로드 후에, 해당 폴더에서 꺼 둔 `.mcp.json` 또는 플러그인 MCP 서버를 시작하던 결함이 수정되었습니다. 이 저장소는 `.mcp.json`을 추적하며 서버 2개(`ontology-rag`는 stdio, `eraser`는 http)를 둡니다(`git cat-file -p HEAD:.mcp.json`). `-p`/`/fsd` 무인 실행에서 꺼 둔 서버가 되살아나던 경로가 닫힌 것입니다. 프로젝트 scope는 `.claude/settings.json`에서 `enableAllProjectMcpServers: true`, `enabledMcpjsonServers: ["ontology-rag"]`이고 `disabledMcpjsonServers` 키는 없습니다(`jq -c '{enableAllProjectMcpServers, enabledMcpjsonServers, disabledMcpjsonServers}' .claude/settings.json`, `.claude/settings.local.json`도 `command grep -c disabledMcpjsonServers` 0). 기기별 로컬 승인 상태(사용자 `~/.claude.json` 등)는 관측하지 않았습니다 [가설 — 로컬 scope의 서버 비활성 여부 미관측].
|
|
2294
|
+
- CHANGELOG 원문: "Fixed `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` re-running a finished turn after a restart when an MCP tool result had ended that turn"
|
|
2295
|
+
(296) 재시작 후 MCP 도구 결과가 턴을 끝낸 경우에도 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN`이 이미 끝난 턴을 다시 실행하던 결함이 수정되었습니다. 관측한 범위에서 이 env는 이 가이드 밖에서 0건으로 저장소에 설정돼 있지 않습니다(`git grep -n CLAUDE_CODE_RESUME_INTERRUPTED_TURN -- . ':!guides/claude-code/15-version-compatibility.md' ':!templates/guides/claude-code/15-version-compatibility.md'` rc=1, `.claude/settings.local.json`은 `command grep -c` 0). 설정할 경우의 무인 루프 재개 시나리오에만 관련됩니다.
|
|
2296
|
+
- CHANGELOG 원문: "Fixed secret redaction in shared transcripts and debug logs missing some values that follow a key with no value, including in JSON written inside a shell string"
|
|
2297
|
+
(296) 공유 transcript와 debug 로그에서, 값이 없는 키 뒤에 오는 일부 값(셸 문자열 안에 쓰인 JSON 포함)이 마스킹되지 않던 결함이 수정되었습니다. R001은 시크릿 노출을 금지하며(`.claude/rules/MUST-safety.md:9`) 이 저장소는 `secret-filter.sh` 훅을 배선합니다(`.claude/settings.json:548`). 플랫폼 마스킹은 이 훅과 별개의 층이며, 이 수정은 공유·debug 산출물의 방어를 보강합니다. 훅이나 룰 변경은 필요하지 않습니다.
|
|
2298
|
+
|
|
2299
|
+
### 백그라운드
|
|
2300
|
+
|
|
2301
|
+
- CHANGELOG 원문: "Changed `←`: a turn or `!` command started while the session moves to the background is now stopped instead of finishing out of sight"
|
|
2302
|
+
(296) `←`: 세션이 백그라운드로 이동하는 동안 시작된 턴이나 `!` 명령이 이제 보이지 않는 곳에서 끝나지 않고 중지됩니다. R010 「Background Agent Permission Mode (`/bg` flow)」(`.claude/rules/MUST-orchestrator-coordination.md:642`)는 `/bg`·`←←`로 백그라운드로 가는 에이전트의 permission mode 보존을 다루며 이 항목은 그 서술을 바꾸지 않습니다. 원문의 대상은 "started while the session moves to the background"인 턴이나 `!` 명령입니다. `←`는 대화형 키이므로, 사용자가 `/fsd` 세션을 `←`로 백그라운드로 보내는 도중에 시작된 턴은 중지될 수 있으며, 그 경우 시작한 작업이 중지되었는지 확인하고, 중지되었다면 필요에 따라 다시 실행하는 것이 좋습니다 [가설 — 중지 대상 범위는 원문 외 미실측].
|
|
2303
|
+
|
|
2304
|
+
기타 57건 — 이 저장소 비해당(Claude apps gateway(`managed.policies[].code`, `allowedProviders`, `forceLoginMethod`)·`claude self-hosted-runner`·Cloud sessions·`[Claude Tag]`·`[Code Review]` 항목, VSCode 전용 항목, Windows 전용 수정, mods·plugin API(`$.agent.register`, `$.http.fetch`, plugin marketplace·secret) 및 `/plugin` 표시, 터미널 렌더링·복사·toast·fullscreen·transcript 토글·`/diff`·`←` 세부 UI, `--teleport`, claude.ai synced skill·plugin, `claude purge`, OpenTelemetry `git_commit_id`, 번들 dataviz skill, `/code-review` 출력 형식, `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC`, Workflow 스크립트의 깊은 중첩·CRLF 처리 등 harness 비영향 세부사항이며 이 저장소는 해당 기능을 개발하거나 사용하지 않습니다). 실측: `gh release view v2.1.296 --repo anthropics/claude-code --json body --jq .body | grep -c '^- '` = 79건 중 위 본문 22건을 다뤘으므로 79 − 22 = 57건입니다. 계수 범위는 해당 릴리즈 노트의 최상위 불릿 줄(`- `로 시작하는 줄)입니다.
|
|
2305
|
+
|
|
2306
|
+
**Action items**:
|
|
2307
|
+
- 훅(managed 훅·플러그인 SessionStart·`--debug`), 에이전트·서브에이전트, 권한·파일 편집, MCP·headless, 백그라운드 항목은 이 저장소에 해당 구성(managed settings, `autoCompactWindow`, 비UTF-8 파일, 관련 env)이 없거나 기존 룰이 이미 다루는 전제를 보강하는 항목이며 룰 문안 변경은 불필요합니다.
|
|
2308
|
+
- 후속 실측 후보: (1) `claude --debug`로 에이전트 로드 시 `limitations`·`domain`·`soul`·`source`가 unrecognized로 보고되는지 확인합니다. (2) haiku 에이전트 3개의 `resolvedModel`을 확인합니다(2.1.293 절과 같은 후보). (3) `playwright-compress.sh`의 최상위 `updatedMCPToolOutput` 키가 적용되는지 확인합니다.
|
|
2309
|
+
- 모델 카탈로그 셀 정정: Sonnet 5.5 cache read 비용 표기는 이번 변경에서 R006 Tier-2 표(`.claude/rules/MUST-agent-design.md:52`)와 `guides/multi-model-routing/README.md:38`에 정정되었습니다. 이는 카탈로그 값 정정이며 에이전트 행동 규범을 바꾸는 변경은 아닙니다. 위 첫 항목의 "룰 문안 변경은 불필요"는 이 카탈로그 셀을 제외한 규범 문안을 가리킵니다.
|
|
2310
|
+
- 이 문서의 규범 변경 제안은 없습니다(CC 2.1.296 CHANGELOG 항목 기준).
|
|
2311
|
+
|
|
1922
2312
|
## Known Platform Issues & Workarounds
|
|
1923
2313
|
|
|
1924
2314
|
### Agent tool malformed parsing on long / special-character prompts (#1241)
|
|
@@ -1972,6 +2362,13 @@ Opus 4.8에서 thinking blocks가 수정되어 API 오류가 발생하던 버그
|
|
|
1972
2362
|
- #1766 — Claude Code v2.1.287 compatibility documentation
|
|
1973
2363
|
- #1790 — Claude Code v2.1.288 compatibility documentation
|
|
1974
2364
|
- #1791 — Claude Code v2.1.289 compatibility documentation
|
|
2365
|
+
- #1845 — Claude Code v2.1.290 compatibility documentation
|
|
2366
|
+
- #1844 — Claude Code v2.1.291 compatibility documentation
|
|
2367
|
+
- #1847 — Claude Code v2.1.292 compatibility documentation
|
|
2368
|
+
- #1849 — Claude Code v2.1.293 compatibility documentation
|
|
2369
|
+
- #1848 — Claude Code v2.1.294 compatibility documentation
|
|
2370
|
+
- #1850 — Claude Code v2.1.295 compatibility documentation
|
|
2371
|
+
- #1851 — Claude Code v2.1.296 compatibility documentation
|
|
1975
2372
|
- `.claude/skills/claude-native/` — auto-generation source
|
|
1976
2373
|
- `.claude/rules/SHOULD-hud-statusline.md` — R012 statusline integration
|
|
1977
2374
|
- `.claude/rules/MUST-agent-design.md` — R006 agent frontmatter spec
|