oh-my-customcode 0.155.0 → 0.156.0
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 +2 -2
- package/dist/index.js +2 -2
- package/package.json +2 -2
- package/templates/.claude/skills/claude-native/SKILL.md +9 -7
- package/templates/.github/workflows/cc-release-monitor.yml +182 -0
- package/templates/guides/claude-code/15-version-compatibility.md +239 -2
- package/templates/manifest.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -2334,7 +2334,7 @@ var init_package = __esm(() => {
|
|
|
2334
2334
|
workspaces: [
|
|
2335
2335
|
"packages/*"
|
|
2336
2336
|
],
|
|
2337
|
-
version: "0.
|
|
2337
|
+
version: "0.156.0",
|
|
2338
2338
|
description: "Batteries-included agent harness for Claude Code",
|
|
2339
2339
|
type: "module",
|
|
2340
2340
|
bin: {
|
|
@@ -2382,7 +2382,7 @@ var init_package = __esm(() => {
|
|
|
2382
2382
|
yaml: "^2.8.2"
|
|
2383
2383
|
},
|
|
2384
2384
|
devDependencies: {
|
|
2385
|
-
"@anthropic-ai/sdk": "^0.
|
|
2385
|
+
"@anthropic-ai/sdk": "^0.98.0",
|
|
2386
2386
|
"@biomejs/biome": "^2.3.12",
|
|
2387
2387
|
"@types/bun": "^1.3.6",
|
|
2388
2388
|
"@types/js-yaml": "^4.0.9",
|
package/dist/index.js
CHANGED
|
@@ -2031,7 +2031,7 @@ var package_default = {
|
|
|
2031
2031
|
workspaces: [
|
|
2032
2032
|
"packages/*"
|
|
2033
2033
|
],
|
|
2034
|
-
version: "0.
|
|
2034
|
+
version: "0.156.0",
|
|
2035
2035
|
description: "Batteries-included agent harness for Claude Code",
|
|
2036
2036
|
type: "module",
|
|
2037
2037
|
bin: {
|
|
@@ -2079,7 +2079,7 @@ var package_default = {
|
|
|
2079
2079
|
yaml: "^2.8.2"
|
|
2080
2080
|
},
|
|
2081
2081
|
devDependencies: {
|
|
2082
|
-
"@anthropic-ai/sdk": "^0.
|
|
2082
|
+
"@anthropic-ai/sdk": "^0.98.0",
|
|
2083
2083
|
"@biomejs/biome": "^2.3.12",
|
|
2084
2084
|
"@types/bun": "^1.3.6",
|
|
2085
2085
|
"@types/js-yaml": "^4.0.9",
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"workspaces": [
|
|
4
4
|
"packages/*"
|
|
5
5
|
],
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.156.0",
|
|
7
7
|
"description": "Batteries-included agent harness for Claude Code",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"bin": {
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"yaml": "^2.8.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@anthropic-ai/sdk": "^0.
|
|
54
|
+
"@anthropic-ai/sdk": "^0.98.0",
|
|
55
55
|
"@biomejs/biome": "^2.3.12",
|
|
56
56
|
"@types/bun": "^1.3.6",
|
|
57
57
|
"@types/js-yaml": "^4.0.9",
|
|
@@ -42,18 +42,18 @@ Search for existing tracking issues to avoid duplicates:
|
|
|
42
42
|
```bash
|
|
43
43
|
gh issue list \
|
|
44
44
|
--state all \
|
|
45
|
-
--search "
|
|
45
|
+
--search "Claude Code v" \
|
|
46
46
|
--json number,title \
|
|
47
47
|
--limit 100
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
Build a set of already-tracked versions by extracting version strings from issue titles matching the pattern `
|
|
50
|
+
Build a set of already-tracked versions by extracting version strings from issue titles matching the pattern `Claude Code v(\d+\.\d+\.\d+)` (no brackets).
|
|
51
51
|
|
|
52
52
|
### Phase 3: Dedup
|
|
53
53
|
|
|
54
54
|
For each fetched release version:
|
|
55
55
|
- Parse the version string from `tag_name` (e.g., `v2.1.86`)
|
|
56
|
-
- If
|
|
56
|
+
- If an issue title matching `Claude Code v{version}` already exists → skip (already tracked)
|
|
57
57
|
- If no matching issue → add to "needs issue" list
|
|
58
58
|
|
|
59
59
|
### Phase 4: Create Issues (or Dry-Run Report)
|
|
@@ -76,7 +76,7 @@ For each version in the "needs issue" list, create a GitHub issue:
|
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
78
|
gh issue create \
|
|
79
|
-
--title "
|
|
79
|
+
--title "Claude Code v{version}" \
|
|
80
80
|
--label "automated,claude-code-release" \
|
|
81
81
|
--body "{body}"
|
|
82
82
|
```
|
|
@@ -105,7 +105,7 @@ Issue body format (matching the pattern established by issue #683):
|
|
|
105
105
|
|
|
106
106
|
---
|
|
107
107
|
|
|
108
|
-
_This issue was created by the
|
|
108
|
+
_This issue was auto-created by the cc-release-monitor workflow (claude-native skill)._
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
**Notes:**
|
|
@@ -128,8 +128,8 @@ Versions checked: {N}
|
|
|
128
128
|
New issues created: {M}
|
|
129
129
|
|
|
130
130
|
Created:
|
|
131
|
-
- #1234
|
|
132
|
-
- #1235
|
|
131
|
+
- #1234 Claude Code v2.1.86
|
|
132
|
+
- #1235 Claude Code v2.1.87
|
|
133
133
|
|
|
134
134
|
Already tracked (skipped):
|
|
135
135
|
- v2.1.85 → #683
|
|
@@ -157,6 +157,8 @@ For each release:
|
|
|
157
157
|
|
|
158
158
|
Semver comparison: major → minor → patch (all numeric). Pre-release suffixes (e.g., `-beta`) are included and compared lexicographically after numeric parts.
|
|
159
159
|
|
|
160
|
+
**Note on non-contiguous patch numbers**: Claude Code skips some patch numbers (e.g., v2.1.151 and v2.1.155 were never released publicly). The skill MUST act only on versions that actually appear in the GitHub releases API response — never assume contiguous numbering or attempt to fill gaps.
|
|
161
|
+
|
|
160
162
|
## Error Handling
|
|
161
163
|
|
|
162
164
|
| Error | Action |
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
name: cc-release-monitor
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: "17 7 * * *"
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
issues: write
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
env:
|
|
13
|
+
MIN_PATCH: "151"
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
monitor:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- name: Fetch Claude Code releases and create issues
|
|
21
|
+
env:
|
|
22
|
+
GH_TOKEN: ${{ github.token }}
|
|
23
|
+
GITHUB_REPOSITORY: ${{ github.repository }}
|
|
24
|
+
MIN_PATCH: ${{ env.MIN_PATCH }}
|
|
25
|
+
run: |
|
|
26
|
+
python3 << 'PYEOF'
|
|
27
|
+
import json
|
|
28
|
+
import os
|
|
29
|
+
import re
|
|
30
|
+
import subprocess
|
|
31
|
+
import sys
|
|
32
|
+
import textwrap
|
|
33
|
+
|
|
34
|
+
GH_TOKEN = os.environ["GH_TOKEN"]
|
|
35
|
+
REPO = os.environ["GITHUB_REPOSITORY"]
|
|
36
|
+
MIN_PATCH = int(os.environ.get("MIN_PATCH", "151"))
|
|
37
|
+
|
|
38
|
+
print(f"=== cc-release-monitor: fetching Claude Code releases ===")
|
|
39
|
+
print(f"MIN_PATCH={MIN_PATCH}")
|
|
40
|
+
|
|
41
|
+
# ── Step 1: fetch all releases from anthropics/claude-code ──────────
|
|
42
|
+
result = subprocess.run(
|
|
43
|
+
["gh", "api", "repos/anthropics/claude-code/releases", "--paginate"],
|
|
44
|
+
capture_output=True,
|
|
45
|
+
text=True,
|
|
46
|
+
env=os.environ,
|
|
47
|
+
)
|
|
48
|
+
if result.returncode != 0:
|
|
49
|
+
print(f"ERROR: gh api failed: {result.stderr.strip()}", file=sys.stderr)
|
|
50
|
+
sys.exit(1)
|
|
51
|
+
|
|
52
|
+
try:
|
|
53
|
+
releases = json.loads(result.stdout)
|
|
54
|
+
except json.JSONDecodeError as e:
|
|
55
|
+
print(f"ERROR: Failed to parse releases JSON: {e}", file=sys.stderr)
|
|
56
|
+
sys.exit(1)
|
|
57
|
+
|
|
58
|
+
# ── Step 2: filter — v2.1.NNN, no nightly, patch >= MIN_PATCH ───────
|
|
59
|
+
pattern = re.compile(r"^v2\.1\.(\d+)$")
|
|
60
|
+
candidates = []
|
|
61
|
+
for r in releases:
|
|
62
|
+
tag = r.get("tag_name", "")
|
|
63
|
+
if "nightly" in tag.lower():
|
|
64
|
+
continue
|
|
65
|
+
m = pattern.match(tag)
|
|
66
|
+
if not m:
|
|
67
|
+
continue
|
|
68
|
+
if int(m.group(1)) < MIN_PATCH:
|
|
69
|
+
continue
|
|
70
|
+
candidates.append({
|
|
71
|
+
"tag": tag,
|
|
72
|
+
"published_at": r.get("published_at", ""),
|
|
73
|
+
"html_url": r.get("html_url", ""),
|
|
74
|
+
"body": (r.get("body") or "").strip(),
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
print(f"Found {len(candidates)} candidate release(s) matching filter.")
|
|
78
|
+
|
|
79
|
+
if not candidates:
|
|
80
|
+
print("Nothing to do.")
|
|
81
|
+
sys.exit(0)
|
|
82
|
+
|
|
83
|
+
# ── Step 3: dedup and create ─────────────────────────────────────────
|
|
84
|
+
created = 0
|
|
85
|
+
skipped = 0
|
|
86
|
+
|
|
87
|
+
for release in candidates:
|
|
88
|
+
version = release["tag"] # e.g. "v2.1.151"
|
|
89
|
+
published_at = release["published_at"]
|
|
90
|
+
html_url = release["html_url"]
|
|
91
|
+
body_raw = release["body"]
|
|
92
|
+
|
|
93
|
+
issue_title = f"Claude Code {version}"
|
|
94
|
+
|
|
95
|
+
# Dedup: exact title match among all issues (open + closed)
|
|
96
|
+
check = subprocess.run(
|
|
97
|
+
[
|
|
98
|
+
"gh", "issue", "list",
|
|
99
|
+
"--repo", REPO,
|
|
100
|
+
"--state", "all",
|
|
101
|
+
"--search", issue_title,
|
|
102
|
+
"--json", "title",
|
|
103
|
+
],
|
|
104
|
+
capture_output=True,
|
|
105
|
+
text=True,
|
|
106
|
+
env=os.environ,
|
|
107
|
+
)
|
|
108
|
+
if check.returncode != 0:
|
|
109
|
+
print(
|
|
110
|
+
f"WARNING: issue list failed for {version}: {check.stderr.strip()}",
|
|
111
|
+
file=sys.stderr,
|
|
112
|
+
)
|
|
113
|
+
skipped += 1
|
|
114
|
+
continue
|
|
115
|
+
|
|
116
|
+
existing = json.loads(check.stdout or "[]")
|
|
117
|
+
if any(i["title"] == issue_title for i in existing):
|
|
118
|
+
print(f"SKIP {version} — issue already exists")
|
|
119
|
+
skipped += 1
|
|
120
|
+
continue
|
|
121
|
+
|
|
122
|
+
# Truncate release body
|
|
123
|
+
MAX_BODY = 2000
|
|
124
|
+
if not body_raw:
|
|
125
|
+
release_summary = "_No release notes provided._"
|
|
126
|
+
elif len(body_raw) > MAX_BODY:
|
|
127
|
+
release_summary = body_raw[:MAX_BODY] + "... (truncated)"
|
|
128
|
+
else:
|
|
129
|
+
release_summary = body_raw
|
|
130
|
+
|
|
131
|
+
issue_body = textwrap.dedent(f"""\
|
|
132
|
+
# Claude Code {version}
|
|
133
|
+
|
|
134
|
+
**Release:** {version}
|
|
135
|
+
**Published:** {published_at}
|
|
136
|
+
**Link:** {html_url}
|
|
137
|
+
|
|
138
|
+
## Release Summary
|
|
139
|
+
|
|
140
|
+
{release_summary}
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Action Items
|
|
145
|
+
|
|
146
|
+
- [ ] Review release notes for impact on oh-my-customcode
|
|
147
|
+
- [ ] Update agent definitions if new Claude Code features affect agents
|
|
148
|
+
- [ ] Test compatibility with current oh-my-customcode version
|
|
149
|
+
- [ ] Update CLAUDE.md if new capabilities are relevant
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
_This issue was auto-created by the cc-release-monitor GitHub Actions workflow._\
|
|
154
|
+
""")
|
|
155
|
+
|
|
156
|
+
create = subprocess.run(
|
|
157
|
+
[
|
|
158
|
+
"gh", "issue", "create",
|
|
159
|
+
"--repo", REPO,
|
|
160
|
+
"--title", issue_title,
|
|
161
|
+
"--body", issue_body,
|
|
162
|
+
"--label", "automated,claude-code-release",
|
|
163
|
+
],
|
|
164
|
+
capture_output=True,
|
|
165
|
+
text=True,
|
|
166
|
+
env=os.environ,
|
|
167
|
+
)
|
|
168
|
+
if create.returncode != 0:
|
|
169
|
+
print(
|
|
170
|
+
f"ERROR {version} — create failed: {create.stderr.strip()}",
|
|
171
|
+
file=sys.stderr,
|
|
172
|
+
)
|
|
173
|
+
skipped += 1
|
|
174
|
+
continue
|
|
175
|
+
|
|
176
|
+
issue_url = create.stdout.strip()
|
|
177
|
+
print(f"CREATE {version} — {issue_url}")
|
|
178
|
+
created += 1
|
|
179
|
+
|
|
180
|
+
print()
|
|
181
|
+
print(f"=== Summary: {created} created, {skipped} skipped ===")
|
|
182
|
+
PYEOF
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Claude Code Version Compatibility
|
|
2
2
|
|
|
3
|
-
> Updated: 2026-05-
|
|
4
|
-
> Source: Claude Code release notes (#967, #968, #969, #1126 auto-detected by claude-native skill, #1137, #1158)
|
|
3
|
+
> Updated: 2026-05-29
|
|
4
|
+
> Source: Claude Code release notes (#967, #968, #969, #1126 auto-detected by claude-native skill, #1137, #1158, #1242, #1243, #1244, #1245)
|
|
5
5
|
|
|
6
6
|
## Compatibility Baseline
|
|
7
7
|
|
|
@@ -491,6 +491,11 @@ docs/superpowers/plans/**
|
|
|
491
491
|
| v2.1.148 | Bash 도구 exit 127 regression(v2.1.147 도입) 수정 — v2.1.147 사용 시 즉시 업그레이드 권장. | None |
|
|
492
492
|
| v2.1.149 | `/usage` per-category(skills/subagents/plugins/MCP) breakdown, GFM 체크박스 렌더링, worktree sandbox allowlist fix, `find` macOS vnode crash fix. | P3 follow-up |
|
|
493
493
|
| v2.1.150 | 내부 인프라 개선만, 사용자 대면 변경 없음. 조치 불필요. | None |
|
|
494
|
+
| v2.1.152 | `disallowed-tools` in skill frontmatter (R002/R006), `/reload-skills`, `SessionStart reloadSkills` — no harness change needed. | None |
|
|
495
|
+
| v2.1.153 | statusline `COLUMNS`/`LINES` env (R012), `skipLfs` marketplace option, `claude agents` autocomplete improvement. | P3 follow-up |
|
|
496
|
+
| v2.1.154 | Opus 4.8 + `opus48` alias (R006), dynamic workflows (R009/R018), lean system prompt default, `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` deprecated 06/01. | P3 follow-up |
|
|
497
|
+
| v2.1.156 | Opus 4.8 thinking-block API-error fix — no harness change needed. | None |
|
|
498
|
+
| #1241 | Agent tool malformed-parsing on long/special-char prompts — mitigations documented in Known Platform Issues. | See below |
|
|
494
499
|
|
|
495
500
|
## v2.1.144 (2026-05-19) — 호환성 점검
|
|
496
501
|
|
|
@@ -889,6 +894,233 @@ Bash 도구의 `find` 명령이 macOS system file/vnode table을 소진하여
|
|
|
889
894
|
|
|
890
895
|
---
|
|
891
896
|
|
|
897
|
+
## v2.1.152 (2026-05-27) — 호환성 점검
|
|
898
|
+
|
|
899
|
+
> Issue: #1242 — CC v2.1.152 tracking
|
|
900
|
+
|
|
901
|
+
### Skill/slash-command `disallowed-tools` frontmatter (R002/R006)
|
|
902
|
+
|
|
903
|
+
Skills and slash commands can now declare `disallowed-tools` in their frontmatter to remove specific tools from the model while the skill is active.
|
|
904
|
+
|
|
905
|
+
**oh-my-customcode 연관**: R002 tool permission tiers 및 R006 skill frontmatter optional fields와 직접 연관됩니다. 특정 스킬 실행 구간에 Bash나 Write 등 위험 도구를 제거하는 세밀한 tool scope 제어가 가능해집니다. 예: 조사 전용 스킬에서 `disallowed-tools: [Bash, Write]` 선언으로 read-only 강제. 신규 스킬 작성 시 활용 권장.
|
|
906
|
+
|
|
907
|
+
### `/reload-skills` 명령 + `SessionStart reloadSkills: true`
|
|
908
|
+
|
|
909
|
+
`/reload-skills` 커맨드로 세션 재시작 없이 스킬 디렉토리를 재스캔할 수 있습니다. `SessionStart` 훅이 `reloadSkills: true`를 반환하면 훅이 설치한 스킬이 동일 세션 내에서 즉시 사용 가능합니다.
|
|
910
|
+
|
|
911
|
+
**oh-my-customcode 연관**: R006 스킬 인프라 및 SessionStart 훅(`hooks.json`)과 연관됩니다. 현재 SessionStart 훅은 HUD 초기화 및 메모리 로드에 사용되는데, 훅에서 스킬을 동적 설치하는 패턴이 필요한 경우 `reloadSkills: true`로 즉시 적용 가능합니다. 현재 하네스에서 즉시 활용 계획 없음 — 직접 변경 불필요.
|
|
912
|
+
|
|
913
|
+
### `SessionStart` 훅 세션 제목 설정
|
|
914
|
+
|
|
915
|
+
`SessionStart` 훅이 `hookSpecificOutput.sessionTitle`을 통해 세션 제목을 설정할 수 있습니다.
|
|
916
|
+
|
|
917
|
+
**oh-my-customcode 연관**: R012 HUD와 결합하여 프로젝트/에이전트 컨텍스트를 창 제목에 반영하는 것이 가능합니다. 선택적 활용.
|
|
918
|
+
|
|
919
|
+
### `MessageDisplay` 훅 이벤트
|
|
920
|
+
|
|
921
|
+
어시스턴트 메시지 텍스트를 표시 시점에 변환하거나 숨길 수 있는 새 훅 이벤트입니다.
|
|
922
|
+
|
|
923
|
+
**oh-my-customcode 연관**: 고급 HUD 커스터마이제이션 후보. `.claude/hooks/` 변경은 R001에 따라 사용자 명시 승인 필요.
|
|
924
|
+
|
|
925
|
+
### 기타 변경
|
|
926
|
+
|
|
927
|
+
- `--fallback-model` 설정 시 주 모델 불가 상태에서 세션 내 자동 fallback (오류 없이 계속)
|
|
928
|
+
- Auto mode opt-in consent 제거 (자동화 환경 진입 간소화)
|
|
929
|
+
- 터미널 렌더링 안정성 개선 다수 (툴 결과 링크 클릭, 마크다운 테이블, 포커스 모드 등)
|
|
930
|
+
|
|
931
|
+
**oh-my-customcode 연관**: `--fallback-model` 패턴은 R006 `model:` 프론트매터의 보완 수단으로 CI 환경에서 활용 가능합니다. 직접 harness 변경 불필요.
|
|
932
|
+
|
|
933
|
+
### oh-my-customcode 연관 평가
|
|
934
|
+
|
|
935
|
+
| 변경 | oh-my-customcode 영향 | 조치 |
|
|
936
|
+
|------|----------------------|------|
|
|
937
|
+
| Skill `disallowed-tools` frontmatter | R002/R006 tool scope 세밀 제어 | 신규 스킬에서 선택적 활용 (opt-in) |
|
|
938
|
+
| `/reload-skills` + `SessionStart reloadSkills` | R006 스킬 동적 로딩 | None (현재 즉각 활용 계획 없음) |
|
|
939
|
+
| `SessionStart` 세션 제목 설정 | R012 HUD 강화 후보 | P3 follow-up |
|
|
940
|
+
| `MessageDisplay` 훅 | HUD 고급 커스터마이제이션 | P3 follow-up |
|
|
941
|
+
| `--fallback-model` | CI 환경 모델 안정성 | None (opt-in) |
|
|
942
|
+
| 터미널 렌더링 수정 | UX 개선 | None |
|
|
943
|
+
|
|
944
|
+
**Action items**:
|
|
945
|
+
- 본 릴리스에서 코드 변경 없음 (docs-only)
|
|
946
|
+
- 후속 follow-up 후보:
|
|
947
|
+
1. `disallowed-tools` frontmatter를 read-only 스킬(연구·분석)에 적용 검토
|
|
948
|
+
2. `SessionStart sessionTitle` hook을 R012 HUD 창 제목 통합에 활용 검토
|
|
949
|
+
|
|
950
|
+
---
|
|
951
|
+
|
|
952
|
+
## v2.1.153 (2026-05-28) — 호환성 점검
|
|
953
|
+
|
|
954
|
+
> Issue: #1243 — CC v2.1.153 tracking
|
|
955
|
+
|
|
956
|
+
### Statusline scripts `COLUMNS`/`LINES` 환경 변수 수신 (R012)
|
|
957
|
+
|
|
958
|
+
`.claude/statusline.sh`를 포함한 statusline 스크립트가 `COLUMNS`와 `LINES` 환경 변수를 받게 되어 출력을 터미널 너비에 맞게 조정할 수 있습니다.
|
|
959
|
+
|
|
960
|
+
**oh-my-customcode 연관**: R012 HUD Statusline과 직접 연관됩니다. 현재 `.claude/statusline.sh`는 고정 형식으로 출력되는데, 좁은 터미널에서 상태줄이 잘리는 문제를 `COLUMNS`를 활용하여 반응형으로 개선할 수 있습니다. 별도 follow-up 권장 (P3).
|
|
961
|
+
|
|
962
|
+
### `skipLfs` 플러그인 마켓플레이스 옵션
|
|
963
|
+
|
|
964
|
+
`github`/`git` 플러그인 마켓플레이스 소스에 `skipLfs: true` 옵션이 추가되어 Git LFS 다운로드를 건너뛸 수 있습니다.
|
|
965
|
+
|
|
966
|
+
**oh-my-customcode 연관**: 대형 LFS 에셋을 포함한 플러그인을 사용하는 환경에서 설치 속도 개선에 활용 가능합니다. 현재 oh-my-customcode 마켓플레이스 설정에는 직접 영향 없음.
|
|
967
|
+
|
|
968
|
+
### `claude agents` 자동완성 개선
|
|
969
|
+
|
|
970
|
+
dispatch 입력의 자동완성이 프로젝트 스킬뿐 아니라 네이티브 슬래시 커맨드와 번들 스킬도 제안합니다.
|
|
971
|
+
|
|
972
|
+
**oh-my-customcode 연관**: R019 라우팅 및 에이전트 디스패치 UX 개선. 네이티브 `/code-review`와 내부 `dev-review` 스킬 구분이 자동완성에서도 명확해집니다. 직접 harness 변경 불필요.
|
|
973
|
+
|
|
974
|
+
### `/model` 기본값 저장 (`s` 키로 현재 세션만 변경)
|
|
975
|
+
|
|
976
|
+
`/model` 선택이 새 세션 기본값으로 저장됩니다. 현재 세션만 변경하려면 `s` 키를 사용합니다. 기존 `d` 키는 `s` 키(`thisSessionOnly`)로 변경되었습니다.
|
|
977
|
+
|
|
978
|
+
**oh-my-customcode 연관**: R006 agent frontmatter `model:` 설정이 세션 기본값과 독립적으로 동작하는 기존 동작과 정합. keybindings.json에서 `modelPicker:setAsDefault`를 커스터마이즈한 경우 `modelPicker:thisSessionOnly`로 rename 필요.
|
|
979
|
+
|
|
980
|
+
### 기타 수정 (안정성)
|
|
981
|
+
|
|
982
|
+
- MCP 서버 frontmatter policy 적용 수정 (`--strict-mcp-config`, managed settings 정책)
|
|
983
|
+
- 과도한 메모리 사용 수정 (세션 파일 경로로 세션 재개 시 여러 GB)
|
|
984
|
+
- `Agent` 도구 `subagent_type: 'claude'` 사용 시 gitignored 경로 출력 무음 폐기 수정
|
|
985
|
+
- stateful MCP 서버 reconnect-loop regression 수정 (v2.1.147 도입)
|
|
986
|
+
- 백그라운드 세션 다수 UX/안정성 수정
|
|
987
|
+
|
|
988
|
+
**oh-my-customcode 연관**: MCP 정책 수정은 R011 claude-mem / R019 ontology-rag 서버 동작에 영향 가능합니다. `subagent_type: 'claude'` gitignored 경로 수정은 R010 subagent 델리게이션 시 `.claude/outputs/` 아티팩트 채널 사용 신뢰성을 높입니다.
|
|
989
|
+
|
|
990
|
+
### oh-my-customcode 연관 평가
|
|
991
|
+
|
|
992
|
+
| 변경 | oh-my-customcode 영향 | 조치 |
|
|
993
|
+
|------|----------------------|------|
|
|
994
|
+
| Statusline `COLUMNS`/`LINES` | R012 반응형 statusline 가능 | P3 follow-up |
|
|
995
|
+
| `skipLfs` 마켓플레이스 옵션 | LFS 포함 플러그인 설치 개선 | None |
|
|
996
|
+
| `claude agents` 자동완성 | 네이티브/내부 스킬 구분 UX | None |
|
|
997
|
+
| `/model` 기본값 저장 (`s` 키) | R006 model 설정 정합 | keybindings.json 커스터마이즈 시 rename |
|
|
998
|
+
| MCP 서버 frontmatter policy 수정 | R011/R019 MCP 서버 정책 안정성 | 호환, 개선 |
|
|
999
|
+
| MCP 과다 메모리 사용 수정 | 장시간 세션 안정성 | 호환, 개선 |
|
|
1000
|
+
| `subagent_type: 'claude'` gitignored 수정 | R010 아티팩트 채널 신뢰성 | 호환, 개선 |
|
|
1001
|
+
|
|
1002
|
+
**Action items**:
|
|
1003
|
+
- 본 릴리스에서 코드 변경 없음 (docs-only)
|
|
1004
|
+
- 후속 follow-up 후보:
|
|
1005
|
+
1. `.claude/statusline.sh`에 `COLUMNS` 기반 반응형 출력 적용 (R012)
|
|
1006
|
+
|
|
1007
|
+
---
|
|
1008
|
+
|
|
1009
|
+
## v2.1.154 (2026-05-28) — 호환성 점검
|
|
1010
|
+
|
|
1011
|
+
> Issue: #1244 — CC v2.1.154 tracking
|
|
1012
|
+
|
|
1013
|
+
> **Note**: v2.1.151 및 v2.1.155는 공개 릴리즈가 없었습니다 (Claude Code는 일부 패치 번호를 건너뜁니다).
|
|
1014
|
+
|
|
1015
|
+
### Opus 4.8 도입 (R006 model aliases)
|
|
1016
|
+
|
|
1017
|
+
Opus 4.8이 출시되었습니다. 기본 effort는 `high`이며, `/effort xhigh`로 최고 추론 강도를 활성화할 수 있습니다. Fast Mode on Opus 4.8이 표준 요금의 2배 가격에 2.5배 속도로 제공됩니다.
|
|
1018
|
+
|
|
1019
|
+
**oh-my-customcode 연관**: R006 model aliases 표에 `opus48` alias 추가가 필요합니다. 현재 `opus` alias는 `claude-opus-4-6`을 가리키며, Opus 4.8 사용 에이전트는 full model ID(`claude-opus-4-8`) 또는 신규 alias를 명시해야 합니다. `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` 환경 변수는 **2026-06-01 폐기 예정** — 해당 변수를 사용하는 환경에서는 `/model claude-opus-4-6[1m]` + `/fast on`으로 전환 필요합니다.
|
|
1020
|
+
|
|
1021
|
+
**추천 업데이트**: R006 MUST-agent-design.md의 model aliases 표에 `opus48` → `claude-opus-4-8` 항목 추가. 별도 이슈로 추적 권장.
|
|
1022
|
+
|
|
1023
|
+
### Dynamic Workflows — `Workflow` 도구 (R009/R018)
|
|
1024
|
+
|
|
1025
|
+
`Workflow` 도구가 일반 공개되었습니다. `/workflows`로 실행 중인 워크플로우를 확인할 수 있습니다. 백그라운드에서 수십~수백 개의 에이전트를 오케스트레이션합니다.
|
|
1026
|
+
|
|
1027
|
+
**oh-my-customcode 연관**: R009 병렬 실행 및 R018 Agent Teams와 개념적으로 중첩됩니다. oh-my-customcode `/pipeline` 스킬(workflows/*.yaml)과의 통합 가능성이 높아졌습니다. 현재는 네이티브 `Workflow` 도구를 실험적으로 평가하는 단계이며, R009/R018 기존 패턴이 기본으로 유지됩니다. 중장기 통합 후보 (P2).
|
|
1028
|
+
|
|
1029
|
+
### Lean system prompt 기본값 변경
|
|
1030
|
+
|
|
1031
|
+
Lean system prompt가 Haiku, Sonnet, Opus 4.7 이하를 제외한 모든 모델의 기본값이 되었습니다.
|
|
1032
|
+
|
|
1033
|
+
**oh-my-customcode 연관**: Opus 4.8 기반 에이전트(arch-documenter, arch-speckit-agent 등)는 lean system prompt로 실행됩니다. system prompt 토큰이 감소하여 R013 ecomode context budget에 긍정적입니다. 직접 harness 변경 불필요.
|
|
1034
|
+
|
|
1035
|
+
### `AskUserQuestion` 자제 개선
|
|
1036
|
+
|
|
1037
|
+
Claude가 스스로 판단할 수 있는 상황에서는 multiple-choice prompt를 보내지 않도록 개선되었습니다.
|
|
1038
|
+
|
|
1039
|
+
**oh-my-customcode 연관**: R015 intent transparency의 ambiguity-gate 패턴과 정합. 불필요한 확인 요청 감소로 자동화 흐름이 개선됩니다.
|
|
1040
|
+
|
|
1041
|
+
### `/simplify` 역할 변경
|
|
1042
|
+
|
|
1043
|
+
`/simplify`가 이제 cleanup-only review(재사용, 단순화, 효율성)를 실행하고 수정사항을 적용합니다. `/code-review --fix`의 전체 버그 탐색 리뷰와는 별도입니다.
|
|
1044
|
+
|
|
1045
|
+
**oh-my-customcode 연관**: v2.1.146/v2.1.147에서 언급된 `/simplify`→`/code-review` 개명의 후속 조치입니다. 내부 `dev-review` 스킬과는 여전히 충돌 없음.
|
|
1046
|
+
|
|
1047
|
+
### `claude agents`: shell 명령 백그라운드 세션으로 실행
|
|
1048
|
+
|
|
1049
|
+
`claude agents`에서 `! <command>`를 입력하면 셸 명령이 독립 백그라운드 세션으로 실행됩니다. `claude --bg --exec '<command>'`와 동일합니다.
|
|
1050
|
+
|
|
1051
|
+
**oh-my-customcode 연관**: 긴 CI/빌드 명령을 백그라운드로 분리할 때 유용합니다. R010 Universal bypassPermissions와 무관 (별도 채널).
|
|
1052
|
+
|
|
1053
|
+
### 기타 변경
|
|
1054
|
+
|
|
1055
|
+
- Plugins `defaultEnabled: false` — 필요 시 명시 활성화 가능 (oh-my-customcode 필수 플러그인 영향 없음)
|
|
1056
|
+
- Streaming tool execution 항상 활성화 (Bedrock/Vertex/Foundry 포함)
|
|
1057
|
+
- `Stdio MCP` 서브프로세스에 `CLAUDE_CODE_SESSION_ID`, `CLAUDECODE=1` 환경 변수 전달
|
|
1058
|
+
- `rm -rf $HOME` trailing slash 경우 위험 경로 차단 수정 (R001 보안 강화)
|
|
1059
|
+
- 배경 에이전트 worktree 격리 guard 수정 (공유 체크아웃 write 방지)
|
|
1060
|
+
|
|
1061
|
+
**oh-my-customcode 연관**: `CLAUDE_CODE_SESSION_ID` 전달은 R011 메모리 MCP 서버(`claude-mem`, `agentmemory`)의 세션 스코핑에 활용 가능합니다. `rm -rf $HOME` trailing slash 수정은 R001 안전 규칙 강화입니다.
|
|
1062
|
+
|
|
1063
|
+
### oh-my-customcode 연관 평가
|
|
1064
|
+
|
|
1065
|
+
| 변경 | oh-my-customcode 영향 | 조치 |
|
|
1066
|
+
|------|----------------------|------|
|
|
1067
|
+
| Opus 4.8 도입 | R006 model aliases 업데이트 필요 | 별도 이슈 등록 권장 (P2) |
|
|
1068
|
+
| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` 폐기 (06/01) | 해당 변수 사용 환경 전환 필요 | 06/01 이전 조치 필요 |
|
|
1069
|
+
| Dynamic Workflows | R009/R018 + `/pipeline` 스킬 통합 후보 | P2 follow-up |
|
|
1070
|
+
| Lean system prompt 기본값 | Opus 4.8 에이전트 토큰 감소 | None (자동 적용) |
|
|
1071
|
+
| `AskUserQuestion` 자제 | R015 ambiguity-gate 개선 | None |
|
|
1072
|
+
| `/simplify` cleanup-only | 내부 `dev-review`와 충돌 없음 | None |
|
|
1073
|
+
| `! <command>` bg shell | 빌드 명령 백그라운드 분리 | None (opt-in) |
|
|
1074
|
+
| `CLAUDE_CODE_SESSION_ID` MCP 전달 | R011 MCP 세션 스코핑 | None (옵션 활용) |
|
|
1075
|
+
| `rm -rf $HOME` trailing slash fix | R001 보안 강화 | None |
|
|
1076
|
+
| 배경 에이전트 worktree guard fix | R009 격리 안전성 | None |
|
|
1077
|
+
|
|
1078
|
+
**Action items**:
|
|
1079
|
+
- **[P2]** R006 MUST-agent-design.md model aliases 표에 `opus48` → `claude-opus-4-8` 추가 (별도 이슈 등록 권장)
|
|
1080
|
+
- **[긴급]** `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` 사용 환경이 있다면 2026-06-01 전에 `/model claude-opus-4-6[1m]` + `/fast on` 패턴으로 전환
|
|
1081
|
+
- **[P2]** Dynamic Workflows와 `/pipeline` 스킬 통합 가능성 연구
|
|
1082
|
+
|
|
1083
|
+
---
|
|
1084
|
+
|
|
1085
|
+
## v2.1.156 (2026-05-29) — 호환성 점검
|
|
1086
|
+
|
|
1087
|
+
> Issue: #1245 — CC v2.1.156 tracking
|
|
1088
|
+
|
|
1089
|
+
> **Note**: v2.1.155는 공개 릴리즈가 없었습니다 (Claude Code는 일부 패치 번호를 건너뜁니다).
|
|
1090
|
+
|
|
1091
|
+
### Opus 4.8 thinking-block API 오류 수정
|
|
1092
|
+
|
|
1093
|
+
Opus 4.8에서 thinking blocks가 수정되어 API 오류가 발생하던 버그가 수정되었습니다.
|
|
1094
|
+
|
|
1095
|
+
**oh-my-customcode 연관**: Opus 4.8 기반 에이전트(v2.1.154에서 도입)의 안정성이 개선됩니다. v2.1.154로 Opus 4.8을 도입한 경우 v2.1.156으로 업그레이드가 강력히 권장됩니다. 직접 harness 변경 불필요.
|
|
1096
|
+
|
|
1097
|
+
### oh-my-customcode 연관 평가
|
|
1098
|
+
|
|
1099
|
+
| 변경 | oh-my-customcode 영향 | 조치 |
|
|
1100
|
+
|------|----------------------|------|
|
|
1101
|
+
| Opus 4.8 thinking-block API 오류 수정 | Opus 4.8 에이전트 안정성 복구 | v2.1.154 사용 시 즉시 업그레이드 |
|
|
1102
|
+
|
|
1103
|
+
**Action items**:
|
|
1104
|
+
- v2.1.154를 사용 중이라면 v2.1.156으로 즉시 업그레이드 (Opus 4.8 thinking-block 안정성)
|
|
1105
|
+
- 본 릴리스에서 코드 변경 없음 (docs-only)
|
|
1106
|
+
|
|
1107
|
+
---
|
|
1108
|
+
|
|
1109
|
+
## Known Platform Issues & Workarounds
|
|
1110
|
+
|
|
1111
|
+
### Agent tool malformed parsing on long / special-character prompts (#1241)
|
|
1112
|
+
|
|
1113
|
+
**Symptom**: The Agent (subagent dispatch) tool intermittently fails to parse delegation prompts when they are very long or contain heavy special characters (backticks, consecutive colons, shell-variable syntax), reporting the tool call as `malformed`. This is a Claude Code platform-level serialization issue, not an oh-my-customcode defect.
|
|
1114
|
+
|
|
1115
|
+
**Workarounds** (already aligned with existing rules):
|
|
1116
|
+
- Pre-decompose oversized delegations: when a delegated prompt exceeds ~5000 tokens or spans 3+ unrelated domains, split into parallel domain-scoped agents (R009 giant-prompt anti-pattern).
|
|
1117
|
+
- In delegation prompts, prefer plain prose over heavy literal blocks; avoid long fenced code with backticks and consecutive `::` sequences where a plain description suffices.
|
|
1118
|
+
- For unavoidable large payloads, hand off via an artifact file path (R006 Artifact Channel Protocol) instead of inlining the content in the prompt.
|
|
1119
|
+
|
|
1120
|
+
> Issue: #1241 — Agent tool malformed-parsing workaround (platform bug; mitigations documented)
|
|
1121
|
+
|
|
1122
|
+
---
|
|
1123
|
+
|
|
892
1124
|
## References
|
|
893
1125
|
|
|
894
1126
|
- #967 — Claude Code v2.1.117 release note
|
|
@@ -906,6 +1138,11 @@ Bash 도구의 `find` 명령이 macOS system file/vnode table을 소진하여
|
|
|
906
1138
|
- #1218 — Claude Code v2.1.148 compatibility documentation
|
|
907
1139
|
- #1219 — Claude Code v2.1.149 compatibility documentation
|
|
908
1140
|
- #1220 — Claude Code v2.1.150 compatibility documentation
|
|
1141
|
+
- #1241 — Agent tool malformed-parsing workaround
|
|
1142
|
+
- #1242 — Claude Code v2.1.152 compatibility documentation
|
|
1143
|
+
- #1243 — Claude Code v2.1.153 compatibility documentation
|
|
1144
|
+
- #1244 — Claude Code v2.1.154 compatibility documentation
|
|
1145
|
+
- #1245 — Claude Code v2.1.156 compatibility documentation
|
|
909
1146
|
- `.claude/skills/claude-native/` — auto-generation source
|
|
910
1147
|
- `.claude/rules/SHOULD-hud-statusline.md` — R012 statusline integration
|
|
911
1148
|
- `.claude/rules/MUST-agent-design.md` — R006 agent frontmatter spec
|
package/templates/manifest.json
CHANGED