oh-my-customcode 1.1.56 → 1.1.57

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 CHANGED
@@ -243,7 +243,7 @@ var init_package = __esm(() => {
243
243
  workspaces: [
244
244
  "packages/*"
245
245
  ],
246
- version: "1.1.56",
246
+ version: "1.1.57",
247
247
  description: "Batteries-included agent harness for Claude Code",
248
248
  type: "module",
249
249
  bin: {
@@ -28198,10 +28198,14 @@ function analyzeMixedAndExpr(ast, raw) {
28198
28198
  const fieldNode = fieldParts.reduce((acc, part) => acc === null ? part : { kind: "and", left: acc, right: part }, null);
28199
28199
  return { toolRegex, fieldNode };
28200
28200
  }
28201
+ var BARE_LITERAL_MATCHER = /^[A-Za-z_][A-Za-z0-9_-]*$/;
28201
28202
  function analyzeMatcher(raw) {
28202
28203
  if (raw === undefined || raw === "*" || raw.trim() === "") {
28203
28204
  return { toolRegex: "*", fieldNode: null };
28204
28205
  }
28206
+ if (BARE_LITERAL_MATCHER.test(raw)) {
28207
+ return { toolRegex: raw, fieldNode: null };
28208
+ }
28205
28209
  let ast;
28206
28210
  try {
28207
28211
  ast = parseMatcherExpr(raw);
package/dist/index.js CHANGED
@@ -1556,10 +1556,14 @@ function analyzeMixedAndExpr(ast, raw) {
1556
1556
  const fieldNode = fieldParts.reduce((acc, part) => acc === null ? part : { kind: "and", left: acc, right: part }, null);
1557
1557
  return { toolRegex, fieldNode };
1558
1558
  }
1559
+ var BARE_LITERAL_MATCHER = /^[A-Za-z_][A-Za-z0-9_-]*$/;
1559
1560
  function analyzeMatcher(raw) {
1560
1561
  if (raw === undefined || raw === "*" || raw.trim() === "") {
1561
1562
  return { toolRegex: "*", fieldNode: null };
1562
1563
  }
1564
+ if (BARE_LITERAL_MATCHER.test(raw)) {
1565
+ return { toolRegex: raw, fieldNode: null };
1566
+ }
1563
1567
  let ast;
1564
1568
  try {
1565
1569
  ast = parseMatcherExpr(raw);
@@ -2535,7 +2539,7 @@ var package_default = {
2535
2539
  workspaces: [
2536
2540
  "packages/*"
2537
2541
  ],
2538
- version: "1.1.56",
2542
+ version: "1.1.57",
2539
2543
  description: "Batteries-included agent harness for Claude Code",
2540
2544
  type: "module",
2541
2545
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "1.1.56",
6
+ "version": "1.1.57",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -197,14 +197,14 @@
197
197
  "description": "Advisory check for plugin cache directories missing node_modules (#1207)"
198
198
  },
199
199
  {
200
- "matcher": "*",
200
+ "matcher": "compact",
201
201
  "hooks": [
202
202
  {
203
203
  "type": "command",
204
204
  "command": "bash .claude/hooks/scripts/claude-md-reinject.sh"
205
205
  }
206
206
  ],
207
- "description": "Re-inject project CLAUDE.md into model context on session start/resume/clear and compact re-entry — matcher \"*\" covers all SessionStart sources including \"compact\" (#1617)"
207
+ "description": "Re-inject project CLAUDE.md into model context on compact re-entry only — CC already natively auto-loads CLAUDE.md on startup/resume/clear, so re-injecting there is pure duplication (~13.8KB/session); matcher narrowed to \"compact\" to keep the original #1617 purpose (post-compact amnesia defense) without the startup double-injection (#1626)"
208
208
  }
209
209
  ],
210
210
  "UserPromptSubmit": [
@@ -6,13 +6,18 @@
6
6
  # 규칙 amnesia가 재발한다. 기존 PostCompact 훅(hooks.json)은 "prompt" 타입으로 요약 지침만
7
7
  # 재주입할 뿐, CLAUDE.md 원문 전체를 재주입하지 않는다.
8
8
  #
9
- # 배선 이벤트 (Phase 1 판단, #1617):
9
+ # 배선 이벤트 (Phase 1 판단, #1617 / matcher 협소화 #1626):
10
10
  # R006 실측 기준(이 저장소 rules/MUST-agent-design.md) additionalContext 지원 이벤트 목록에
11
11
  # SessionStart는 있고 PostCompact는 없다. 한편 공식 문서(hooks.md, 2026-08-29 재확인)의
12
12
  # SessionStart matcher는 startup / resume / clear / compact 네 가지이며, "compact"는
13
- # auto/manual compact 직후를 가리킨다 — 즉 "session start 전체와 compact 재개 이후 재주입"
14
- # 요구사항은 SessionStart 단일 이벤트(matcher "*")로 전부 커버된다. 별도 PostCompact 배선은
15
- # 불필요 — 공식 문서 이벤트 목록(### 헤더 스캔)에 PostCompact 자체가 없다(PreCompact만 존재).
13
+ # auto/manual compact 직후를 가리킨다. 별도 PostCompact 배선은 불필요 — 공식 문서 이벤트
14
+ # 목록(### 헤더 스캔)에 PostCompact 자체가 없다(PreCompact만 존재).
15
+ #
16
+ # #1626 실측: startup 시점 재주입은 CC의 네이티브 CLAUDE.md 자동 로드와 중복(13,817 B/세션
17
+ # 순수 낭비)이며, resume/clear는 이전 컨텍스트가 그대로 복원되므로 재주입이 불요하다.
18
+ # 원 목적(#1617 — compact 후 규칙 amnesia 방지)은 "compact" 소스만으로 충분히 달성되므로,
19
+ # hooks.json의 matcher를 "*" → "compact"로 좁혔다. 이 스크립트 자체는 source 필터링을
20
+ # 하지 않으므로(아래 source_field는 로그 헤더용) hooks.json matcher가 유일한 게이트다.
16
21
  #
17
22
  # 동작:
18
23
  # stdin JSON의 .source(startup/resume/clear/compact/기타)를 로그 헤더에 포함해
@@ -205,8 +205,8 @@
205
205
  "command": "bash .claude/hooks/scripts/claude-md-reinject.sh"
206
206
  }
207
207
  ],
208
- "matcher": "*",
209
- "description": "Re-inject project CLAUDE.md into model context on session start/resume/clear and compact re-entry — matcher \"*\" covers all SessionStart sources including \"compact\" (#1617)"
208
+ "matcher": "compact",
209
+ "description": "Re-inject project CLAUDE.md into model context on compact re-entry only — CC already natively auto-loads CLAUDE.md on startup/resume/clear, so re-injecting there is pure duplication (~13.8KB/session); matcher narrowed to \"compact\" to keep the original #1617 purpose (post-compact amnesia defense) without the startup double-injection (#1626)"
210
210
  }
211
211
  ],
212
212
  "UserPromptSubmit": [
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.56",
2
+ "version": "1.1.57",
3
3
  "lastUpdated": "2026-07-14T00:00:00.000Z",
4
4
  "omcustomMinClaudeCode": "2.1.121",
5
5
  "omcustomMinClaudeCodeReason": "Sensitive-path direct Write/Edit on .claude/** under bypassPermissions (R010 deprecation, #1101)",