aiterm-mcp 0.37.6 → 0.37.7

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/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.37.7] - 2026-09-19
11
+
12
+ ### 修正
13
+
14
+ - Codex親hookの再導入で既存の登録位置を保持する。後から別のhookが追加された環境でも順序を変えず、同じ設定の再実行で不要な`restart_required`を返さない。
15
+
10
16
  ## [0.37.6] - 2026-09-19
11
17
 
12
18
  ### 修正
@@ -1706,7 +1712,8 @@ prototype (preserved under `prototype/python/` as the porting source and referen
1706
1712
  `ubuntu-latest` for Node 18/20/22, publishing to npm on `v*` tags with
1707
1713
  provenance.
1708
1714
 
1709
- [Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.37.6...HEAD
1715
+ [Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.37.7...HEAD
1716
+ [0.37.7]: https://github.com/kitepon/aiterm-mcp/compare/v0.37.6...v0.37.7
1710
1717
  [0.37.6]: https://github.com/kitepon/aiterm-mcp/compare/v0.37.5...v0.37.6
1711
1718
  [0.37.5]: https://github.com/kitepon/aiterm-mcp/compare/v0.37.4...v0.37.5
1712
1719
  [0.37.4]: https://github.com/kitepon/aiterm-mcp/compare/v0.37.3...v0.37.4
package/README.ja.md CHANGED
@@ -62,6 +62,7 @@ Codexの起動プログラムと通常のstdio通信は変更しません。hook
62
62
 
63
63
  `aiterm-setup`は`CODEX_HOME/hooks.json`へ専用の`PostToolUse`と`Stop`を追加し、公式APIでその2件だけを承認・読戻しします。
64
64
  他のhookや承認は保持します。選択と配送の所有記録は`~/.config/aiterm-mcp/codex-parent-hooks/`へ保存します。
65
+ 同じ設定で再実行しても既存hookの順序を変えず、新たな再起動要求を発生させません。
65
66
  既存の中継は新しいhookの確認後に解除し、保存していた`CODEX_CLI_PATH`を復元します。macOSの専用LaunchAgentも解除します。
66
67
  移行前から動いているCodexがあれば`restart_required`(終了コード3)を返します。完全終了・再起動後に
67
68
  `aiterm-setup --codex-steer status`で`ready`を確認してください。旧設定は移行を実行するまで維持します。
@@ -200,7 +201,7 @@ runtime-error store は canonical dotagents config の `collection.enabled: true
200
201
  場合だけ収集し、既定OFF、network送信は行いません。tag起点CIのnpm provenance(OIDC Trusted
201
202
  Publishing)で公開し、GitHub Release が Official MCP Registry を再登録します。
202
203
 
203
- **状態:** 開発継続中 · 現行公開版 **v0.37.6** · 動作対象は Linux · WSL2 · macOS · Windows ネイティブ · MIT · [変更履歴](CHANGELOG.md)。
204
+ **状態:** 開発継続中 · 現行公開版 **v0.37.7** · 動作対象は Linux · WSL2 · macOS · Windows ネイティブ · MIT · [変更履歴](CHANGELOG.md)。
204
205
 
205
206
  ### 更新と巻き戻し
206
207
 
package/README.md CHANGED
@@ -62,6 +62,7 @@ Codexの起動プログラムと通常のstdio通信は変更しません。hook
62
62
 
63
63
  `aiterm-setup`は`CODEX_HOME/hooks.json`へ専用の`PostToolUse`と`Stop`を追加し、公式APIでその2件だけを承認・読戻しします。
64
64
  他のhookや承認は保持します。選択と配送の所有記録は`~/.config/aiterm-mcp/codex-parent-hooks/`へ保存します。
65
+ 同じ設定で再実行しても既存hookの順序を変えず、新たな再起動要求を発生させません。
65
66
  既存の中継は新しいhookの確認後に解除し、保存していた`CODEX_CLI_PATH`を復元します。macOSの専用LaunchAgentも解除します。
66
67
  移行前から動いているCodexがあれば`restart_required`(終了コード3)を返します。完全終了・再起動後に
67
68
  `aiterm-setup --codex-steer status`で`ready`を確認してください。旧設定は移行を実行するまで維持します。
@@ -214,7 +215,7 @@ collection is off by default and performs no network I/O. It ships via
214
215
  tag-triggered CI with npm provenance (OIDC Trusted Publishing); the GitHub
215
216
  Release re-registers the Official MCP Registry entry.
216
217
 
217
- **Status:** actively maintained · current public release **v0.37.6** · runs on Linux · WSL2 · macOS · native Windows (tmux on POSIX, the tmux-CLI-compatible [psmux](https://github.com/psmux/psmux) on native Windows — no WSL required) · MIT · see the [CHANGELOG](CHANGELOG.md).
218
+ **Status:** actively maintained · current public release **v0.37.7** · runs on Linux · WSL2 · macOS · native Windows (tmux on POSIX, the tmux-CLI-compatible [psmux](https://github.com/psmux/psmux) on native Windows — no WSL required) · MIT · see the [CHANGELOG](CHANGELOG.md).
218
219
 
219
220
  ### Update and rollback
220
221
 
@@ -51,9 +51,19 @@ export function mergeCodexParentHooks(file, command, previousCommand) {
51
51
  const groups = hooks[event] ?? [];
52
52
  if (!Array.isArray(groups) || groups.some(group => !object(group) || !Array.isArray(group.hooks)))
53
53
  throw new SetupError("codex_hook_config_invalid", `${event}のhook設定を読めません`);
54
- hooks[event] = groups.map(group => ({ ...group, hooks: group.hooks.filter((hook) => !(hook?.type === "command" && ((command !== null && hook.command === command) || (previousCommand && hook.command === previousCommand)))) })).filter(group => group.hooks.length);
54
+ // 既存の位置で置換する。末尾へ移すと同じ設定の再導入でも変更扱いになり、
55
+ // 稼働中のCodexへ不要な再起動を要求してしまう。
56
+ hooks[event] = [];
57
+ let insertionIndex = null;
58
+ for (const group of groups) {
59
+ const remaining = group.hooks.filter((hook) => !(hook?.type === "command" && ((command !== null && hook.command === command) || (previousCommand && hook.command === previousCommand))));
60
+ if (remaining.length !== group.hooks.length && insertionIndex === null)
61
+ insertionIndex = hooks[event].length;
62
+ if (remaining.length)
63
+ hooks[event].push({ ...group, hooks: remaining });
64
+ }
55
65
  if (command !== null)
56
- hooks[event].push({ ...(event === "PostToolUse" ? { matcher: ".*" } : {}),
66
+ hooks[event].splice(insertionIndex ?? hooks[event].length, 0, { ...(event === "PostToolUse" ? { matcher: ".*" } : {}),
57
67
  hooks: [{ type: "command", command, timeout: 20, ...(event === "PostToolUse" ? { additionalContextLimit: 0 } : {}) }] });
58
68
  if (!hooks[event].length)
59
69
  delete hooks[event];
package/docs/DESIGN.md CHANGED
@@ -89,6 +89,7 @@ Steerを選択したmacOS・Windowsでも配送の入口は公式キューとす
89
89
 
90
90
  `aiterm-setup --codex-steer enable|disable|status`は`src/setup-codex-hooks.ts`が所有する。
91
91
  `CODEX_HOME/hooks.json`の他の登録を保持し、専用の同期hookを追加する。
92
+ 再導入ではAitermの既存の登録位置を保ち、内容が同じならhook設定を変更しない。
92
93
  公式`hooks/list`から得た2件のkeyとhashだけを公式`config/batchWrite`で承認し、再読して有効・承認済みであることを確認する。
93
94
  承認省略flagを恒久設定へ書かない。利用者の別hookを承認しない。
94
95
  選択と配送の所有記録は`~/.config/aiterm-mcp/codex-parent-hooks/`に置く。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aiterm-mcp",
3
- "version": "0.37.6",
3
+ "version": "0.37.7",
4
4
  "mcpName": "io.github.kitepon/aiterm-mcp",
5
5
  "description": "Persistent terminal MCP with one harness-based launcher for Claude Code, Codex CLI, Grok CLI, and Cursor Agent CLI, plus durable PTYs for SSH, containers, and REPLs.",
6
6
  "keywords": [