@kaydash9999/banker-plugins 0.20.0 → 0.20.1

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.
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Claude Code skills + commands — QA, audit, docs, architecture, dependency setup, and wiki; the banker plugin marketplace.",
9
- "version": "0.20.0"
9
+ "version": "0.20.1"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "banker",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
4
4
  "description": "Claude Code plugin: QA/audit/docs/architecture skills + commands, a /banker:setup installer for OS dependencies (playwright, etc.), and wiki compaction.",
5
5
  "author": {
6
6
  "name": "smallOpenSource",
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.20.1] - 2026-10-19
4
+
5
+ ### Changed
6
+ - 유지보수자용: 암호 모듈이 없을 때의 난수 시험이 정확한 출력을 단언하고, 업데이트 확인과 체크인의 시험이 흉내가 `node:crypto` 를 가로챘는지 스스로 확인한다.
7
+
8
+ ### Fixed
9
+ - `payload-mon` 의 `on` 과 `status` 가 래퍼 v4 에서도 "8MB 이상이면 ctx 옆에 표시" 라고 안내하던 것. v4 는 크기를 `PL:` 칸에 늘 보이므로 이제 그렇게 안내한다. `status` 는 켜져 있을 때만 어디에 보이는지 적는다. 옛 래퍼의 `on` 안내는 그대로다. README 의 payload-mon 설명도 고친다.
10
+
3
11
  ## [0.20.0] - 2026-10-19
4
12
 
5
13
  ### Changed
package/README.md CHANGED
@@ -142,7 +142,7 @@ Claude Code 2.1.296 은 Claude 5 모델(Opus 5.5 등)에 작업 목록 도구(Ta
142
142
  | `update-banker` | 설치된 banker 를 3채널(Claude·npm·Codex) 순서 게이트로 최신화 |
143
143
  | `refresh-readme` | 코드와 어긋난 README 를 현재 상태에 맞게 갱신(드리프트 해소) |
144
144
  | `cleansing-memory` | 메모리 파일을 문서화된 threshold 내로 정리(중복 최신본화·무손실 압축) |
145
- | `payload-mon` | 상태표시줄 ctx 옆에 요청 payload 추정치(32MB 한도 대비, 8MB부터) 표시 켜기·끄기 |
145
+ | `payload-mon` | 상태표시줄에 요청 payload 추정치(32MB 한도 대비) 표시 켜기·끄기. 래퍼 v4 는 `PL:` 칸에 늘, 옛 래퍼는 8MB부터 ctx 옆에 |
146
146
  | `tone-compact` | 답변과 새 문서를 ASD-STE100 기반 한글 개조식(표·목록·원어 발음 표기·장식 기호 금지)으로 쓰는 문체 규칙 켜기·끄기(on 기본, 끌 때까지 유지) |
147
147
  | `anti-drm` | DRM 이 암호화하는 확장자(기본 11개: 텍스트·오피스·한글·PDF·CSV) 대신 대체 확장자(`.md`·`.html`·`.tsv`)로 파일을 만들게 하는 규칙 켜기·끄기(on 기본, 처음 켤 때 금지 확장자와 대체 확장자를 물음, `config` 로 변경, 끌 때까지 유지) |
148
148
  | `omc-patch` | OMC 자동 업데이트 뒤 사라진 훅 패치를 재적용하고 OMC 마켓플레이스 자동 업데이트를 고정(진단·확인·적용·검증·되돌리기). 옛 킷이 블록 안에 넣은 헬퍼(project-memory 꺼짐)를 찾아 고치고, project-memory 훅이 실제로 일하는지 임시 폴더에서 확인 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaydash9999/banker-plugins",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
4
4
  "description": "banker — Claude Code + Codex CLI plugin (QA, audit, docs, architecture, wiki skills). Install via Claude Code marketplace, or `npm i -g @kaydash9999/banker-plugins` then `banker setup`.",
5
5
  "bin": {
6
6
  "banker": "bin/banker.js"
@@ -17,7 +17,8 @@
17
17
  * `const input`, runs the HUD in-process and keeps spawnSync for a fallback
18
18
  * branch. A block anchored on spawnSync would land in that branch, so the ctx
19
19
  * line is the only anchor. Earlier versions that also put a block before
20
- * spawnSync are converted on the next `on`.
20
+ * spawnSync are converted on the next `on`. Wrapper v4 (setup-omc-hud 0.20.0)
21
+ * shows the size in its own PL segment, so `on` and `status` point there.
21
22
  *
22
23
  * The block imports a copy of payload-size.mjs kept beside the wrapper
23
24
  * (<hud>/payload-mon/payload-size.mjs), not the module in this folder: a plugin
@@ -60,6 +61,8 @@ const BLOCKS = /^[ \t]*\/\/ >>> payload-mon >>>[\s\S]*?\/\/ <<< payload-mon <<<[
60
61
  const CTX_LINE = /^ {2}if \(f\.ctx\) colored\.push\(colorCtx\(f\.ctx\)\);\r?\n/m;
61
62
  // The statusline JSON the block reads, in either layout.
62
63
  const INPUT_DECL = /^(?:let|const) input\b/m;
64
+ // Wrapper v4 pushes its own PL segment: the size from 0MB on, in place of the block's segment.
65
+ const PL_SEGMENT = /colored\.push\(`PL:/;
63
66
  const MB = 1024 * 1024;
64
67
 
65
68
  // The same rules as setup-omc-hud's installer (OMC's getClaudeConfigDir): trim, expand a leading "~",
@@ -249,6 +252,15 @@ const notShownNote = (o) =>
249
252
  : `\n주의: statusLine 명령에 ${basename(o.hudFile)}가 보이지 않습니다. ` +
250
253
  "다른 래퍼(smart-compact 등)가 HUD를 감싸 호출하면 정상 표시되고, 아니면 화면에 나타나지 않습니다.";
251
254
 
255
+ const showsPL = (src) => src !== null && PL_SEGMENT.test(src);
256
+
257
+ // Where the size shows, named only while it does: the block in place and a
258
+ // module copy to import. "" otherwise, so status never promises a segment.
259
+ function displayWhere(o, src) {
260
+ if (src === null || !inPlace(src, moduleUrl(o.hudFile)) || copyState(o) === "missing") return "";
261
+ return showsPL(src) ? "PL 칸에 늘 표시" : `${SHOW_FROM_BYTES / MB}MB부터 표시`;
262
+ }
263
+
252
264
  export function turnOn(opts = {}) {
253
265
  const o = { ...DEFAULTS, ...opts };
254
266
  const src = readText(o.hudFile);
@@ -263,7 +275,9 @@ export function turnOn(opts = {}) {
263
275
  }
264
276
  const why = misfit(src);
265
277
  if (why) return refusal(why, o.hudFile);
266
- const done = "켰습니다. 다음 statusline 갱신부터 8MB 이상이면 ctx 옆에 payload가 표시됩니다.";
278
+ const done = showsPL(src)
279
+ ? "켰습니다. 다음 statusline 갱신부터 PL 칸에 요청 크기가 늘 표시됩니다."
280
+ : "켰습니다. 다음 statusline 갱신부터 8MB 이상이면 ctx 옆에 payload가 표시됩니다.";
267
281
  const after = insertBlock(src.replace(BLOCKS, ""), moduleUrl(o.hudFile));
268
282
  return commit(o.hudFile, src, after, done + notShownNote(o), () => syncModule(o));
269
283
  }
@@ -302,8 +316,12 @@ export function turnOff(opts = {}) {
302
316
  return res;
303
317
  }
304
318
 
305
- // "현재 세션: 0.8MB / 32MB (2%), 8MB부터 표시" for the session that runs this, "" if unknown.
306
- function sessionEstimate(o) {
319
+ // The estimate for the session that runs this, "" if unknown, ending with where
320
+ // it shows when `where` names it:
321
+ // "현재 세션: 0.8MB / 32MB (2%), PL 칸에 늘 표시" (wrapper v4, on)
322
+ // "현재 세션: 0.8MB / 32MB (2%), 8MB부터 표시" (older wrappers, on)
323
+ // "현재 세션: 0.8MB / 32MB (2%)" (off, or no module copy)
324
+ function sessionEstimate(o, where) {
307
325
  if (!o.sessionId || !existsSync(o.projectsDir)) return "";
308
326
  const file = `${o.sessionId}.jsonl`;
309
327
  const project = readdirSync(o.projectsDir).find((d) => existsSync(join(o.projectsDir, d, file)));
@@ -311,7 +329,7 @@ function sessionEstimate(o) {
311
329
  try {
312
330
  const bytes = estimatePayloadBytes(join(o.projectsDir, project, file), o.cacheDir);
313
331
  const pct = Math.floor((bytes / REQUEST_LIMIT_BYTES) * 100);
314
- return `현재 세션: ${(bytes / MB).toFixed(1)}MB / 32MB (${pct}%), ${SHOW_FROM_BYTES / MB}MB부터 표시`;
332
+ return `현재 세션: ${(bytes / MB).toFixed(1)}MB / 32MB (${pct}%)` + (where ? `, ${where}` : "");
315
333
  } catch {
316
334
  return "";
317
335
  }
@@ -347,7 +365,9 @@ export function status(opts = {}) {
347
365
  const lines = [`payload-mon: ${describe(o)} (${o.hudFile})`];
348
366
  const note = notShownNote(o);
349
367
  if (note) lines.push(note.trim());
350
- const estimate = sessionEstimate(o);
368
+ // null when the wrapper is missing or unreadable; describe has already said which.
369
+ const src = readBytes(o.hudFile)?.toString("utf8") ?? null;
370
+ const estimate = sessionEstimate(o, displayWhere(o, src));
351
371
  if (estimate) lines.push(estimate);
352
372
  return { ok: true, message: lines.join("\n") };
353
373
  }
@@ -90,7 +90,7 @@ node "<이 스킬 디렉터리 절대경로>/../payload-mon/scripts/payload-mon.
90
90
 
91
91
  - Codex 사본에서 실행할 때 경로는 `<이 스킬 디렉터리 절대경로>/../banker-payload-mon/scripts/payload-mon.mjs` 다.
92
92
  - 이유: `PL:` 칸은 payload-mon 이 래퍼 옆(`hud/payload-mon/`)에 두는 크기 계산 모듈을 쓴다. 모듈이 없으면 `PL:` 이 나오지 않는다.
93
- - 이 단계의 출력 "8MB 이상이면 ctx 옆에 payload가 표시됩니다" 는 옛 래퍼 기준이다. 그대로 옮기지 말고 "PL 칸에 쓰는 모듈을 설치함" 으로 보고한다.
93
+ - 출력 `켰습니다. 다음 statusline 갱신부터 PL 칸에 요청 크기가 늘 표시됩니다.` 를 확인한다. `이미 켜져 있습니다`, `모듈 사본을 이 버전으로 맞췄습니다` 도 정상이다.
94
94
 
95
95
  ## 3. 보고
96
96