oh-my-customcode 1.1.69 → 1.1.70
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/dist/cli/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/rules/MAY-optimization.md +2 -0
- package/templates/.claude/rules/MUST-agent-design.md +4 -0
- package/templates/.claude/rules/MUST-completion-verification.md +2 -0
- package/templates/.claude/rules/MUST-enforcement-policy.md +2 -0
- package/templates/.claude/rules/MUST-permissions.md +2 -0
- package/templates/.claude/rules/MUST-safety.md +2 -0
- package/templates/.claude/rules/SHOULD-memory-integration.md +2 -0
- package/templates/manifest.json +1 -1
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -48,6 +48,8 @@
|
|
|
48
48
|
|
|
49
49
|
> **v2.1.273/274+**: (274) 경미한 메모리 압박 상태의 머신에서 background 명령이 30분 idle 후 중지되던 것이, 이제 메모리가 치명적으로 낮을 때만 중지되고 디버그 로그에 사유가 남습니다 — v2.1.260의 서브에이전트 background 1시간 제한 제거와 결합하면, "무음 종료"의 알려진 플랫폼 원인 두 가지가 모두 사라졌으므로 남은 종료는 실재 신호로 취급합니다. (274) Bash 도구가 플러그인 리로드마다 셸 프로파일을 재소스(수 초 지연)하던 것이, 이제 플러그인의 `bin/` 디렉토리가 바뀔 때만 그렇게 됩니다; Monitor 알림이 스크립트의 최종 출력과 종료를 하나의 알림으로 병합합니다; 서버별 `timeout`이 더 길어도 Streamable HTTP MCP 도구 호출이 ~5분에 타임아웃하던 결함이 수정되었습니다; 레거시 HTTP+SSE를 쓰는 MCP `http` 서버가 첫 요청에 4xx로 응답할 때 정상 fallback되도록 수정되었습니다(위 v2.1.265 SSE 노트의 연장선); `CLAUDE_CODE_MCP_STARTUP_WAIT_MS`가 연결 중인 MCP 서버에 대한 첫 비대화형 턴의 대기 시간을 상한합니다. (273) MCP 서버가 세션 도중 연결이 끊기고 재연결이 포기될 때 알림이 표시됩니다(`/mcp` 확인 유도) — 이 저장소 세션에서 관측된 llm-memory 530 사례가 무음 대신 가시화됩니다.
|
|
50
50
|
|
|
51
|
+
> **v2.1.275/276+**: (275) CHANGELOG 원문: "Fixed sandboxed Bash commands on Linux reporting exit code 0 for failed commands when the shell is zsh." Linux CI/컨테이너에서 275 이전 zsh 샌드박스의 `exit 0`은 성공의 증거가 아니었으므로, 위 zsh 파이프 `$?` 노트(#1492/#1540) 및 R020 "실행됨 ≠ 성공" 계열과 같은 함정입니다 — Darwin(이 저장소 기본 실행 환경)은 미해당입니다. (275) CHANGELOG 원문: "Fixed the Read tool hanging instead of reporting an error when part of a large file could not be decoded under memory pressure." 구버전에서 대용량 파일 Read의 무응답(hang)은 느린 파일이 아니라 디코딩 실패가 오류 없이 멈춘 무음 형태였을 수 있습니다. (275) CHANGELOG 원문: "Fixed Grep, Glob and @-file suggestions hanging or running out of memory on searches over the 20MB output cap, and system ripgrep reporting \"no matches\" instead of an error after a flood of warnings." 대용량 출력 탐색에서 구버전 "no matches"는 실제 무결과가 아니라 경고 폭주 뒤의 오류 위장일 수 있었으므로, 그런 탐색의 0건 결과는 `git grep` 등으로 재확인합니다(위 「도구 이름 ≠ 그 프로그램」#1590 계열). (275) CHANGELOG 원문: "Fixed `/rewind` in a forked or background session restoring a zero-filled or truncated file when the session's file-history backups could not be fully copied." fork/background 세션에서 275 이전 `/rewind` 복원 결과는 내용을 신뢰하기 전 `wc -c` 등으로 바이트 수를 확인합니다(R020 Degraded-Output Re-Verification Gate 계열). (276) CHANGELOG 원문: "Fixed every request failing with `400 … Input tag 'advisor_20260301'` when `ANTHROPIC_BASE_URL` points at a proxy or gateway (2.1.275 regression)." 275 단독 환경에서 게이트웨이·프록시 경유 세션의 전체 요청 400 실패는 설정 오류가 아니라 플랫폼 회귀였으며, 276에서 해소되었으므로 R004 Retryable 재시도로 해결되는 종류가 아니었습니다.
|
|
52
|
+
|
|
51
53
|
<!--
|
|
52
54
|
> **v2.1.206+**: `/doctor`에 checked-in CLAUDE.md에서 코드베이스로부터 파생 가능한 내용을 잘라내도록 제안하는 체크가 추가되었습니다 — R005 "Context Optimization via HTML Comments"의 컨텍스트 절감 원칙과 정합(모델 불필요 메타데이터 축소).
|
|
53
55
|
-->
|
|
@@ -149,6 +149,8 @@ Key optional fields: `memory`, `effort`, `skills`, `soul`, `isolation`, `backgro
|
|
|
149
149
|
|
|
150
150
|
> **v2.1.261/265/267+**: 서브에이전트/스킬 런타임 관련 3건 — (261) `--append-subagent-system-prompt-file`이 신설되어 커맨드라인에 담기 힘들 만큼 큰 서브에이전트 시스템 프롬프트를 파일에서 읽습니다(R009의 ~5000-token 프롬프트 휴리스틱과 정합 — 대형 프롬프트는 단순 파일 로드가 아니라 우선 분할의 신호입니다). (265) forked 스킬(`context: fork`)이 착수(kickoff) 프롬프트를 스트리밍하지 않고, `--forward-subagent-text`와 함께 쓸 때 그 텍스트 turn을 stream-json progress 이벤트로 내보내지 않던 결함이 수정되었습니다 — 아래 「Context Fork Criteria」의 10/12 `context: fork` 스킬을 `-p --output-format stream-json`으로 실행할 때 관련되며, 구버전에서는 fork progress 이벤트 부재가 fork가 실행되지 않았다는 증거가 아니었습니다. (267) `--system-prompt`/`--append-system-prompt`로 시작한 서브에이전트·세션이 이제 시스템 프롬프트와 도구 정의를 매 요청마다 재렌더링하는 대신 한 번만 기록합니다(prompt-cache 안정성) — `--system-prompt-snapshot off`는 프롬프트 반복 작업을 위해 매 요청 새로 렌더링합니다.
|
|
151
151
|
|
|
152
|
+
> **v2.1.275+**: (275) "Fixed `--forward-subagent-text` stream-json and SDK output dropping the messages of subagents spawned by a `context: fork` skill, and of forked skills invoked by a subagent or another forked skill" — 위 v2.1.265 노트의 연장선입니다. (275) 「Context Fork Criteria」의 10/12 `context: fork` 스킬을 `-p --output-format stream-json`으로 실행할 때, 275 이전에는 fork 내부 서브에이전트 메시지 부재가 미실행의 증거가 아니었습니다.
|
|
153
|
+
|
|
152
154
|
> **v2.1.271+**: 신규 에이전트 프론트매터 필드 `omitClaudeMd`(및 `--agents` JSON에도 동일 필드)가 추가되어, 커스텀·플러그인 서브에이전트가 user/project/local CLAUDE.md 파일을 **전혀 로드하지 않고** 실행할 수 있습니다(managed policy 파일은 계속 로드됩니다). 이 저장소는 오늘 스폰되는 모든 서브에이전트가 프로젝트 CLAUDE.md + 23개 룰(고정 주입 ~49.5k 토큰, R016 코퍼스 비용 cross-ref)을 그대로 상속하므로, `omitClaudeMd: true`는 `Explore`나 `tracker-checkpoint`처럼 좁고 비용에 민감한 에이전트에 새로운 레버가 됩니다 — 단 그렇게 스폰된 에이전트는 R007/R008/R010을 보지 못하므로, 오케스트레이터는 그 출력을 **rule-unaware**로 취급해야 합니다. 위 「Optional Frontmatter」 필드 목록에 추가할 때는 이 무규칙 특성을 함께 명시합니다. 또한 (271) `--resume` 시 재개 세션의 모델 패밀리가 설정된 기본값과 다르면 1M 컨텍스트 창(`[1m]`)이 소실되던 결함이 수정되었습니다(Tier-2 `[1m]` 접미사 각도, cross-ref R013).
|
|
153
155
|
|
|
154
156
|
### Note on `skills:` field
|
|
@@ -528,6 +530,8 @@ Key optional fields: `scope`, `context`, `version`, `effort`, `model`, `agent`,
|
|
|
528
530
|
|
|
529
531
|
> **v2.1.228+**: claude.ai에서 동기화된 스킬이 하드닝되었습니다 — 로컬 커맨드·MCP prompt를 **shadow하지 않고**, description이 sanitize·labeling되며, 로컬 머신에서 그 본문이 `!` 명령을 실행하거나 `@` 파일 참조를 확장하지 **않습니다**. 즉 외부 출처 스킬은 로컬 `.claude/skills/` 스킬과 **동일한 실행 능력을 갖지 않으므로**, 동기화 스킬에 `!`/`@` 동작을 전제한 본문을 작성하면 무음 미실행이 됩니다. 구버전에서는 동기화 스킬이 로컬 커맨드를 가릴 수 있어 같은 이름 호출이 어느 정의로 해소되는지 결정론적이지 않았습니다.
|
|
530
532
|
|
|
533
|
+
> **v2.1.275+**: (275) "Added syncing of the skills and plugins enabled on your claude.ai account to terminal sessions signed in with it; opt out with `syncClaudeAiSkills: false` or `syncClaudeAiPlugins: false`" — 위 v2.1.228 동기화-스킬 하드닝 노트의 연장선입니다. (275) 동기화 스킬은 로컬 `.claude/skills/`와 실행 능력이 다르므로, 이 저장소 세션에서 예상 밖 스킬이 보이면 계정 동기화 여부를 먼저 확인하고 필요 시 `syncClaudeAiSkills: false`/`syncClaudeAiPlugins: false`로 opt-out합니다.
|
|
534
|
+
|
|
531
535
|
> **v2.1.257+**: `/add-dir`이 현재 작업 디렉토리 **내부**의 디렉토리를 거부하던 문제가 수정되어, 이제 startup 시 `--add-dir`와 동일하게 그 디렉토리의 skills/commands/agents를 로드합니다. 구버전에서는 세션 중 `/add-dir`로 하위 디렉토리의 스킬 트리를 추가 로드할 수 없었으므로, 서브디렉토리 단위 스킬 확장 워크플로우가 이 버전부터 가능해집니다.
|
|
532
536
|
|
|
533
537
|
<!-- DETAIL: Skill Optional Fields (full yaml block)
|
|
@@ -436,6 +436,8 @@ Origin: #1269 ① (R020 self-violation, session 106).
|
|
|
436
436
|
|
|
437
437
|
> **v2.1.274+**: background agent 알림이, 에이전트가 여전히 자신의 백그라운드 작업을 기다리며 재개 예정인데도 "실행 중인 백그라운드 작업 없음"으로 보고하던 결함이 수정되었습니다. 재개된 background agent가 인터럽트된 도구 배치 중 하나가 메시지와 함께 승인됐을 때 배치의 절반을 유실하던 결함도 수정되었습니다. "unexpected tool_use_id" 400 오류를 끝없이 재시도하며 멈추던 세션도 수정되어, 손상된 트랜스크립트는 가능하면 자가 복구하고 그렇지 않으면 `/rewind` 힌트가 붙은 명확한 오류로 루프를 끝냅니다. compaction을 거친 세션을 `--continue`/`--resume`으로 재개할 때 활성 `/goal`이 유실되던 결함과, 훅 기반 세션(활성 `/goal`)이 2차 overflow에서 compaction 대신 "Prompt is too long"으로 종료되던 결함도 모두 수정되었습니다 — `/goal`을 감싸는 `/fsd`에서, 구버전의 재개 후 goal 유실은 수렴 신호가 아니라 플랫폼 결함이었습니다. 같은 릴리즈에서 서브에이전트의 진행 요약이 폭주하는 다단락 응답으로 대체되던 결함도 수정되었습니다.
|
|
438
438
|
|
|
439
|
+
> **v2.1.275+**: (275) CHANGELOG 원문: "Fixed self-hosted runners with `--drain-wait-sec` losing the final result of a turn that finished during a SIGTERM drain; the runner now waits briefly for the turn to be reported." 위 v2.1.234 SIGTERM 노트의 runner 각도 확장이며, 275 이전 drain 중 종료된 턴의 결과 부재는 미완료의 증거가 아니었습니다. (275) CHANGELOG 원문: "Fixed `--resume` and `--continue` dropping a conversation's earlier thinking when a built-in tool it started with has since been switched off by a server-side flag." 재개된 대화에서 이전 reasoning 부재는 원본 부재의 증거가 아니며, R021 「발화 ≠ 재개 후 보존」 5번째 각도와 같은 계열입니다(cross-ref R021). (275) CHANGELOG 원문: "Changed hosted sessions to keep an unanswered permission prompt up after a container restart, instead of asking again." hosted 세션에서 컨테이너 재시작 후 "재요청 없음"은 승인이 적용됐다는 뜻이 아니라 프롬프트가 유지된 것이므로, 승인 여부는 ground-truth로 확인해야 합니다(R010 v2.1.234 승인 드롭 노트 계열).
|
|
440
|
+
|
|
439
441
|
### CI Publish-Step Error vs Published-Artifact Ground Truth
|
|
440
442
|
|
|
441
443
|
> Origin: #1332 — `npm publish --provenance` emitted a Sigstore `TLOG_CREATE_ENTRY_ERROR` 409, but the publish step's `|| npm view <pkg>@<ver>` fallback recovered (the package WAS published) and release.yml succeeded on all jobs. A subagent read the tlog error in the logs and prematurely declared the run "failed", recommending a re-run; deterministic ground-truth (`npm view`, `gh release view`) showed the release had fully succeeded.
|
|
@@ -57,6 +57,8 @@ oh-my-customcode uses an **advisory-first enforcement model**. Most rules are en
|
|
|
57
57
|
|
|
58
58
|
> **v2.1.274+**: Stop prompt 훅이 대화 중 매 block마다 **전체 프롬프트를 통째로 재전송**하던 결함이 수정되어, 반복 block은 이제 500자 라벨로 조건만 명시합니다. R020 8항·메모리 v1.1.53~56에 기록된 "Stop 훅 잠식" 패턴에 직접 관련됩니다 — 구버전에서는 Stop 훅이 반복 block될 때마다 전체 프롬프트 텍스트가 모델 컨텍스트에 재주입됐으므로, 당시 관측된 토큰/턴 소모의 **기계적으로 충분한 원인**입니다(가설 등급 귀속 — 관측과 정합하나 이것으로 확정되지는 않음, R020 hypothesis 규율). 또한 플러그인 `hooks/hooks.json` 최상위의 `$schema` 키에 대해 "unknown key" 통지가 더 이상 뜨지 않게 되었습니다 — 이 저장소의 `.claude/hooks/hooks.json` 소스 파일에 향후 `$schema`를 추가할 때 관련됩니다.
|
|
59
59
|
|
|
60
|
+
> **v2.1.275+**: (275) "Fixed `SubagentStop` hooks with a specific `matcher` firing for every stopping subagent whose agent type was empty" — 실측(`.claude/settings.json` SubagentStop 블록) 결과 이 저장소의 배선은 `"matcher": "*"` **와일드카드**이므로, "specific matcher"를 대상으로 하는 이 결함의 직접 대상이 **아닙니다**. (275) 와일드카드는 모든 서브에이전트 종료에 발화하는 것이 정상 동작이므로, 275 이전 SubagentStop 발화 계수(R020 Self-Violation Counting)를 이 결함으로 재해석하지 않습니다 — 기록용입니다. (275) 향후 agent type별 matcher(예: `"mgr-gitnerd"`)로 좁히는 배선을 도입하면 그때부터 이 결함의 대상이 되므로, v2.1.275 미만 환경에서는 좁힌 matcher가 빈 agent type에도 매칭된다는 점을 전제합니다.
|
|
61
|
+
|
|
60
62
|
## Why Advisory-First
|
|
61
63
|
|
|
62
64
|
1. **Agent flexibility**: Hard blocks can trap agents in unrecoverable states
|
|
@@ -118,6 +118,8 @@ Use a `"*"` deny rule in `settings.json` to enforce a deny-by-default posture, t
|
|
|
118
118
|
|
|
119
119
|
> **v2.1.273/274+**: (273) 권한 검사기가 완전히 분석할 수 없는 Bash 명령이 `permissions.blockReadsOutsideWorkingDirectories`에서 프롬프트를 건너뛰던 결함, bypass 모드에서 서브셸이 위험한 `rm`을 숨길 수 있던 결함이 수정되었습니다(R001 파괴적 명령 교차 참조). macOS에서 드래그 앤 드롭한 스크린샷이나 시스템이 두 번째 경로로 보고하는 파일에 대해 Read가 "symlink resolution changed after permission was checked"로 거부하던 결함도 수정되었습니다(위 v2.1.251 (c) TOCTOU 가드의 오탐이었지, 우회가 아니었습니다). (274) 특정 특수 셸 변수를 반복문에서 쓰거나 대입하는 Bash 명령이 이제 권한을 요청합니다(위 v2.1.251 (a) `OPTIND=`/`RANDOM=` 노트의 확장). 워크트리 격리 세션이 특정 중첩 셸 확장을 포함한 Bash 명령을 이제 **거부**합니다 — 위 v2.1.257 (e)의 완화와 반대 방향으로 움직였다는 점에 유의합니다. R009 워크트리 위임에서 복합 확장이 다시 거부될 수 있으니, 격리 결함으로 진단하지 말고 명령을 단순화합니다.
|
|
120
120
|
|
|
121
|
+
> **v2.1.275+**: (275) `Fixed "/update-config" writing "Write(path)" permission rules, which file permission checks don't match, instead of "Edit(path)" rules` — 파일 쓰기 rule은 `Edit(path)`, 읽기 rule은 `Read(path)` matcher로 작성한다는 권고(v2.1.210, 현재 은퇴)와 정합하는 수정입니다; 구버전 `/update-config`가 만든 `Write(path)` allow 규칙은 실제 파일 권한 검사에 매칭되지 않아 무효였으므로, settings의 allow 규칙을 감사할 때 `Write(...)` 형태를 발견하면 `Edit(...)`로 교정합니다. (275) `Fixed sandboxed Bash commands being unable to write to project directories named "hooks/" or "config/"` — 이 저장소의 `.claude/hooks/`가 정확히 이 이름 패턴에 해당하며, 구버전 샌드박스에서는 훅 스크립트 편집 Bash 명령이 조용히 실패할 수 있었으므로, 275 이전 세션에서 관측된 훅 파일 미반영을 권한 거부만으로 진단하지 않습니다(R020 Read-Before-Characterize).
|
|
122
|
+
|
|
121
123
|
> **v2.1.238+**: Bash 도구의 permission 검사가 zsh 전용 조건문(shell conditional) 문법에 대해 추가로 개선되었습니다. 이는 위 v2.1.221 "zsh `[[ ]]` 정규식 조건문 안에서 숨겨진 명령이 권한 검사를 우회"의 **직접 연장선**입니다 — "개선"으로만 기술되어 있어 v2.1.221 수정이 완전 해결이 아니었거나 추가 우회 벡터가 있었음을 시사합니다. 이 저장소의 Bash 도구 실행 셸이 zsh이므로(R005 #1540 실측) 직접 관련됩니다.
|
|
122
124
|
|
|
123
125
|
> **v2.1.246/248+**: (246) 끝에 매달린 `&&`/`||`가 있는 손상된(malformed) 명령에 대해 Bash 권한검사가 이제 **항상 승인을 요구**합니다 — 구버전에서는 이런 형태가 검사를 우회할 수 있었습니다. (248) `--restricted`(또는 `CLAUDE_CODE_RESTRICTED=1`) 모드가 신설되어 명령/코드 실행 도구와 `WebFetch`를 제거하고(`--tools`에 명시 시 예외), 파일 도구를 작업 디렉토리 내부로 제한하며, `bypassPermissions`를 거부하고, user/project/local settings 파일을 무시합니다. 이 저장소는 프로젝트 settings에 `bypassPermissions`를 선언하지만 v2.1.257부터 그 선언은 무시되므로(R010 Universal bypassPermissions의 ★ v2.1.257 노트 — 2026-09-02 실측 유효 모드는 user settings `auto`), `--restricted`와의 상호 배타성은 **user/managed scope에서 bypass를 켠 경우에 한해** 성립합니다 — 이 저장소 워크플로우에는 적용하지 않되, 신규 안전 모드 옵션으로 존재를 기록합니다.
|
|
@@ -47,6 +47,8 @@ The following git commands have caused working tree loss in past sessions (#1146
|
|
|
47
47
|
|
|
48
48
|
> **v2.1.268+**: 자격증명 노출 결함이 두 방향에서 수정되었습니다 — 플러그인/마켓플레이스 오류가 git 소스 URL에 담긴 토큰·비밀번호를 표시하던 결함, `/mcp`·`/plugin` 서버 상세·`claude mcp list`/`get`·MCP 로그인 오류가 MCP config의 `${VAR}` placeholder를 **해석된 값**으로 표시하던 결함(274에서 MCP connection 오류·MCP 로그인 도구 설명까지 동일하게 수정). 이 섹션의 "자격증명 저장소 덤프 금지"와 동일한 위협 클래스입니다 — 구버전에서는 MCP 오류 메시지를 트랜스크립트나 이슈에 붙여 넣는 것만으로 해석된 시크릿이 함께 노출될 수 있었으므로(위 v2.1.232 GitLab 토큰 redaction 노트와 동일 원칙), 과거 로그를 공유하기 전 이 점을 확인합니다. 또한 (268) Bash 샌드박스 안내 문구가 실제보다 격리를 과장 서술하던 결함 — filesystem isolation이 꺼진 상태에서 경로 목록을 표시하거나, strict mode가 "명령이 샌드박스 밖에서 절대 실행되지 않는다"고 주장하던 사례 — 이 수정되었습니다. 샌드박스 안내 문구를 보장으로 취급하지 않습니다(위 `!` bash-mode 비샌드박스 경로 노트 cross-ref).
|
|
49
49
|
|
|
50
|
+
> **v2.1.275+**: (275) `Fixed plugin and marketplace messages, logs and "claude plugin marketplace list" showing a password or token stored in a git, ssh or marketplace URL` — 위 v2.1.268 노트와 같은 위협 클래스(자격증명 저장소 덤프 금지 원칙 유지)이며, 구버전 로그·`claude plugin marketplace list` 출력을 공유하기 전 자격증명 잔존 가능성을 확인합니다. (275) `Changed plugins installed from an npm source to be fetched with "npm pack --ignore-scripts" and integrity-verified, so a package's install scripts no longer run` — supply-chain 각도의 강화이며, 구버전에서는 npm 소스 플러그인 설치 시 install script가 실행될 수 있었습니다; 이 저장소는 플러그인을 마켓플레이스로 설치하므로 npm 소스 플러그인은 현재 미사용입니다(기록용).
|
|
51
|
+
|
|
50
52
|
> **v2.1.271/273/274+**: (273) bypass 모드에서 subshell 안에 숨긴 위험한 `rm`이 프롬프트를 우회하던 결함이 수정되었습니다(위험한 `rm` 프롬프트 계열: v2.1.261 positional parameter·`sh -c` 커버리지의 연장선). (274) 멀티바이트 문자가 포함된 파일에서 Edit 권한 프롬프트 미리보기가 실제 승인 대상과 **다른 위치**를 보여주던 결함이 수정되었습니다 — 이 파일 시리즈(v2.1.223/234/236/238/257)의 **여섯 번째** 승인 다이얼로그 무결성 결함이며, 멀티바이트 문자 전반에 대한 결함(한글 포함)이라 이 저장소의 룰·위키가 한글로 작성되므로 직접 영향을 받는 첫 사례입니다 — 구버전에서는 한글 파일의 Edit 미리보기가 엉뚱한 줄을 가리킬 수 있었습니다. Pre-Delegation Blast-Radius Enumeration(모델이 파괴 대상을 별도 열거)은 여전히 1차 방어선입니다. (271) 샌드박싱된 auto mode에 명령별 `allowed_domains`가 추가되어(cross-ref R002), 세션 전체 네트워크 허용보다 좁은 egress 승인이 가능해졌습니다.
|
|
51
53
|
|
|
52
54
|
### Pre-Delegation Blast-Radius Enumeration
|
|
@@ -497,4 +497,6 @@ References: #1226 (item 3), #1227.
|
|
|
497
497
|
|
|
498
498
|
> **v2.1.271/273+**: (271) 대화가 compact된 뒤에도 계속 돌고 있던 백그라운드 명령(watch task, dev server)의 **중복 사본**이 새로 시작되던 결함이 수정되었습니다 — 구버전에서 post-compact 중복 프로세스는 지시가 아니라 compaction 아티팩트였습니다(cross-ref R010 dev-server tmux hard block). (271) `/resume`·`/teleport`가 이전 대화의 파일-읽음 추적을 그대로 유지해, 재개된 대화가 **한 번도 읽지 않은 파일**을 편집할 수 있던 결함이 수정되었습니다(cross-ref R005 v2.1.228 read-before-write 노트). (271) claude.ai에서 동기화된 스킬이 로그아웃 후에도 디스크에 남아있던 결함이 수정되어, `cleanupPeriodDays` 내 갱신되지 않은 사본은 이제 복구 가능한 휴지통으로 이동합니다. (273) `permissions.blockReadsOutsideWorkingDirectories`: 저장소 settings가 지정한 메모리 디렉토리는 더 이상 프롬프트에 로드·회상·색인·memory extraction에 사용되지 않습니다 — 이 규칙의 `autoMemoryDirectory`와 관련됩니다: 이 설정 하에서는 저장소가 지정한 메모리 디렉토리가 제외됩니다.
|
|
499
499
|
|
|
500
|
+
> **v2.1.275+**: (275) CHANGELOG 원문: "Fixed a restored memory file's age note changing between requests after a compaction or resume, which caused prompt cache misses." 이 저장소는 auto-memory MEMORY.md를 매 세션 로드하므로, 275 이전 compaction/resume 이후의 cache miss 일부는 이 원인일 수 있습니다(R013 prompt_cache 원인 후보로만 취급 — 확정 아님). (275) CHANGELOG 원문: "Fixed sessions failing to resume or start when their saved transcript contains a malformed message content block" 및 "Fixed `--resume`, the resume picker preview, resumed background agents and the transcript view failing on a session whose saved history contains a malformed task-reminder or @-file attachment entry." 위 v2.1.251 트랜스크립트 무결성 노트의 연장이며, 275 이전 "resume 실패"는 세션 손실이 아니라 단일 malformed 엔트리 때문일 수 있었으므로 R020 트랜스크립트 계수는 그런 세션을 하한값으로 취급합니다.
|
|
501
|
+
|
|
500
502
|
<!-- RETIRED (은퇴 릴리즈 v1.1.45, 보존 기준 v2.1.212 미만): > **v2.1.210+**: MEMORY.md 인덱스가 read limit을 초과하게 만드는 memory write는 이제 silent truncation 대신 명시적 오류를 반환합니다. write 실패는 여전히 non-blocking이지만, 오류 수신 시 log-warning으로 끝내지 말고 예산 초과 처리(Attention-Weight Tiering — Cold 항목 archive 이동)로 축소 후 재시도합니다 — 이전의 silent truncation을 가정하고 oversize write를 던지면 업데이트가 반영되지 않습니다. -->
|
package/templates/manifest.json
CHANGED