Skip to content

Latest commit

 

History

History
101 lines (74 loc) · 7.23 KB

File metadata and controls

101 lines (74 loc) · 7.23 KB

Release

Aitermのreleaseはこのrepositoryが所有する。.github/workflows/product-full-ci.ymlが変更影響選択、runnerと 製品gateの正本であり、dotagentsの工場CIは横断受入のconsumerであってreleaseを制御しない。

CIの範囲

  • push/pull request: 共通実装・CI自身・未分類の変更はmacos-native、linux-workstation、windows-nativeを選ぶ。 Windows固有ファイル(src/windows-powershell.ts、src/psmux-send-worker.ts、test/windows-*.test.mjs)だけの変更は LinuxとWindowsを選ぶ。共通変更が混ざっても対象OSを落とさない。試験は依存graphから選び、依存を確定できない変更だけ全テストへ広げる。
  • 版番号だけの変更はJSONの実差分で識別し、Linuxでbuildと配布metadata・pack・文書確認を行う。依存や実行設定の変更は省略しない。 文書だけなら文書検査、実装と文書の混在なら関連試験と文書検査を行う。
  • 週1回の定期実行(月曜 03:00 JST)と手動実行は、指定された環境で全テストを回す。定期実行の対象は3環境である。
  • tag push: 所有確認と、tagged commitがorigin/mainの祖先であることの確認だけを行い、npmへprovenance付きで publishする。同じcommitのmain CIの結果は待たない。

Release手順

  1. 変更に直結するfocused testを手元で通す。full regressionは手元で回さず、CIに任せる。

  2. CHANGELOG.mdの## [Unreleased]へ内容を書き、mainへcommitしてpushする。

  3. 一回で公開する。

    npm run release -- <version>

    scriptはversion同期(package.json、package-lock.json、server.json、mcpb/manifest.json、README.mdとREADME.ja.mdの現行公開版)、 CHANGELOG見出しと比較link、metadata検査、release commit、main push、v<version> tag push、 MCPB build、GitHub Release作成までを行う。tag pushがnpm publish、Release作成がOfficial MCP Registry登録を起動する。 scriptはその完了を待たない。

  4. 後で確認する: npm view aiterm-mcp@<version> version、Official Registryのio.github.kitepon/aiterm-mcp。

同じversionのtagやnpm packageを移動・上書きしない。失敗版はそのまま残し、修正版を次のversionで出す。

公開後smoke

Codex Steerを変更した場合は、公式バイナリを指定したtest/codex-parent-hooks-official.test.mjsで 通常stdio起動、公式hookの個別承認、同一ターン配送、終了後再開、hook消失、終了との競合、利用者キューの保持を確認する。 AITERM_TEST_CODEX_BINARYに公式Desktopの同梱実行ファイルを指定し、一時HOMEと模擬モデルで実行する。 試験は実認証と稼働中Desktopの設定を使わない。指定のないCIではこの実機試験をskipする。 実行途中の受信は読取専用MCPで発火し、取得記録のturn IDとPostToolUseの出力を照合する。 Windowsの隔離環境にもPATHEXTを引き継ぎ、試験processの標準入出力が閉じてから一時領域を削除する。 公開packageのaiterm-setup --json --codex-steer enableで選択導入し、restart_requiredならDesktopを完全再起動する。 再起動後にaiterm-setup --codex-steer statusがreadyとなり、通常の親が同じターンで子の回答を受け取ることを確認する。 アプリ内ツールと通常起動も確認し、公式バイナリの隔離試験だけでDesktop統合を完了扱いしない。

旧中継の移行を変更した場合はtest/setup-codex-relay.test.mjsとtest/windows-codex.test.mjsで 元の起動設定・専用LaunchAgent・ユーザー環境変数の復元と、所有外の値の保持を確認する。 新しいhookの読戻し失敗では旧設定を解除しないこと、解除中断では再実行で移行を完了できることも確認する。 新方式の登録と配送stateはtest/setup-codex-hooks.test.mjsとtest/codex-parent-hooks.test.mjsが検証する。

setupを変更した場合は、公開packageのglobal install後にaiterm-setup --jsonを実行し、 端末実行と検出した各AIの登録結果を確認する。初回と再実行は一時設定領域でも試験し、所有外の設定保持を確かめる。 WindowsのGrokパス変更ではスラッシュ区切りcwdで起動し、同じturnの完了通知と回答回収を確認する。

親への自動配送を変更した場合は、通常HOMEの親から子を起動し、親がwaiter・回収を呼ばずに 初手と同じ子への追加依頼の回答を受け取ることを確認する。Claudeではhook待機中に別のturnへ進めること、 /clear後に未送信の旧回答が届かず、Aitermに本文が保存されることも確認する。

公式npm packageを隔離またはglobal installし、変更に触れたharnessの起動、non-blocking dispatch、wait outcome、 transcript回収、pty_close後の残骸ゼロを確認する。

Grok/Composerのsandbox起動拒否を変更した場合は、対象環境のCLIが拒否する設定で初回prompt付き起動と 通常dispatchの未送信エラーを確認する。GROK_SANDBOX_STARTUP_FAILEDがCLIの原因を保持し、入力受付の timeoutや再送案内へ変わらないことを確認する。拒否を検証した結果は起動成功の証拠にはしない。 設定の管理元による修理は別途確認し、smokeのためにsandbox解除やhookのコピーを行わない。

利用者の更新と巻き戻し

更新はnpmの公開packageから行う。

npm install -g aiterm-mcp@latest
aiterm-setup --json

巻き戻しは既知の正常版を指定する。

新しいCodex親hookを持たない旧版へ戻す時は、install前にaiterm-setup --codex-steer disableを実行する。 専用hookの解除を確認し、Codexを完全再起動する。旧中継が残っている場合は、macOSの専用LaunchAgentとWindowsのユーザー環境変数も復元する。 互換launcherを共有していた場合はAitermのSteer選択だけを解除し、所有外の起動設定を保持する。 回答record schemaは従来と共通であり、新方式のSteer相当配送もqueued_submission_idを保持する。

Claude親配送hookのない旧版へ戻す場合は、旧版のinstall前にaiterm-setup --remove-claude-parent-hooksを 実行する。Aiterm専用の3 hookだけを解除し、他製品のhookと設定を保持する。

npm install -g "aiterm-mcp@<known-good-version>"

setupを持つ版ではaiterm-setup --jsonを再実行する。どちらもMCP clientを再起動する。

npxをMCP設定から使う場合は、package引数をaiterm-mcp@latestへ変えると更新でき、 aiterm-mcp@<known-good-version>へ変えると固定・巻き戻しできる。変更後はMCP clientを再起動する。 dotagentsの導入・更新は不要である。

公開物の巻き戻し

利用環境は直前の正常npm versionを明示installして戻す。公開済みtagは動かさず、npm packageは上書きしない。 state schemaやmigrationを変更するreleaseでは、旧versionへ戻せる条件をCHANGELOGへ明記してから公開する。