Skip to content

Kiro認証情報を永続化しtmuxのコピー操作を改善する - #154

Merged
takemi-ohama merged 4 commits into
mainfrom
fix/kiro-auth-persistence
Sep 4, 2026
Merged

takemi-ohama merged 4 commits into
mainfrom
fix/kiro-auth-persistence

Conversation

@takemi-ohama

@takemi-ohama takemi-ohama commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

Pull Request

概要

Kiro CLI 2.x の認証状態をアカウントグループ単位の named volume に保持し、コンテナ再生成後もログイン状態を引き継げるようにします。あわせて、tmux の履歴をドラッグ選択して Ctrl+C でコピーできる操作を既定設定へ追加します。

関連仕様

  • docs/specifications/kiro-auth-persistence-and-tmux-copy.md

変更点

  • ~/.local/share/kiro-cli を /persistent/group 配下へリンクし、初回適用時には既存データを永続領域へコピーする
  • Kiro CLI の状態をアカウントグループ間で分離し、ホーム由来データを /persistent/ai から誤ってシードしない
  • tmux のドラッグ選択を保持し、Ctrl+C でコピーして copy-mode を終了できるようにする
  • 永続化とtmux操作の回帰テスト、利用者向けドキュメント、確定仕様書を更新する

Test plan

  • .venv/bin/python -m pytest -q(1792 passed)
  • .venv/bin/python -m pytest -q tests/containers/test_entrypoint_ai_settings.py tests/containers/test_tmux_conf.py(44 passed)
  • bash -n containers/base/entrypoint.sh
  • ShellCheck
  • git diff --check
  • 稼働中のtmuxで、履歴スクロール・ドラッグ選択・Ctrl+Cによるコピーを確認
  • CI 5ジョブが green である
  • codex / agy クロスレビューがともに APPROVE、未解決thread 0件

静的解析

変更対象に対するRuffとShellCheck、およびGitHub Actionsの全チェックが成功しています。

補足

Kiro CLI の認証方式やログイン操作は変更しません。既存の永続先にデータがある場合は、ホーム側のデータで上書きしません。Ctrl+Home のtmux bindingは定義しません。

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | codex | REQUEST_CHANGES

仕様適合のため、tmux の操作変更を実装計画へ組み込むか、独立した PR へ分離してください。

Comment thread issues/kiro-auth-persistence.md Outdated
Comment thread containers/base/tmux.conf

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | agy | REQUEST_CHANGES

修正提案

  • containers/base/entrypoint.sh:401: DEVBASE_GROUP_SETTINGS に .local/share/kiro-cli を追加したことで、default グループ初回起動時に devbase_seed_group_settings が /persistent/ai/.local/share/kiro-cli からのシードを試み、skip (シード元なし) が出力されます。/persistent/ai 由来でないエントリは devbase_seed_group_settings の対象から除外することを推奨します。
  • containers/base/tmux.conf:12: 16行目以降でドラッグ終了時の自動コピーを解除し Ctrl+C による明示コピーへ変更したため、12行目の既存コメント(「選択してボタンを離せば OSC 52 でクリップボードへ入る」)が新挙動と矛盾しています。コメントの記述を新挙動に合わせて更新してください。

Comment thread containers/base/entrypoint.sh
Comment thread tests/containers/test_entrypoint_ai_settings.py
@takemi-ohama

Copy link
Copy Markdown
Contributor Author

🔧 /ndf:fix サマリ

対応件数: critical=0 / major=2 / minor=3 (合計 5 件)
deferred: 0 件 / rejected: 0 件
commit: 742f0af8e4b561d09281cf148ced541aa216f364
CI: SUCCESS(push 前の既存チェック。新しいチェックは起動中)

詳細

  • issues/kiro-auth-persistence.md: tmux の仕様・受け入れ条件・検証・切り戻しを計画へ統合
  • containers/base/entrypoint.sh: ホーム由来の Kiro データを共有 volume のシード対象から除外
  • containers/base/entrypoint.sh: 同一ホームの既存 symlink を辿るグループ間コピーを防止
  • tests/containers/test_entrypoint_ai_settings.py: 同一ホームでのグループ切替とシード元選択の回帰テストを追加
  • containers/base/tmux.conf: ドラッグ選択と Ctrl+C コピーの説明へ更新

検証: 対象テスト 44 passed / 全体テスト 1792 passed / bash -n / ShellCheck / git diff --check

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 2 | agy | APPROVE

Round 1 で指摘した entrypoint のホームシード除外処理および tmux.conf のコメント整合性が適切に対応されていることを確認しました。全テストも通過しており問題ありません。

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 2 | codex | APPROVE

修正が必要な指摘はありません。

@takemi-ohama
takemi-ohama merged commit ebad34d into main Sep 4, 2026
5 checks passed
@takemi-ohama takemi-ohama mentioned this pull request Sep 4, 2026
7 tasks
@takemi-ohama

Copy link
Copy Markdown
Contributor Author

リリース後テスト

対象の版: v3.2.1(2026-09-04 10:41 JST公開)
導入経路: mainを取得し、devbase build base --no-cache → devbase build ai-plugins --project-no-cache → devbase up ai-plugins

受け入れ条件 実行したこと 実行時刻 結果
公開版を取得できる mainとrefs/tags/v3.2.1をgit ls-remoteで照合 2026-09-04 10:42 JST 合格。ともにfbba0a3
Kiro認証を再作成後も保持する 再作成前後にkiro-cli whoamiを実行 2026-09-04 10:49 JST 合格。前後ともexit=0
Kiro状態をgroup volumeへ置く 新コンテナでsymlinkとmountを確認 2026-09-04 10:49 JST 合格。~/.local/share/kiro-cli → /persistent/group/.local/share/kiro-cli
新イメージを使用する container image IDとai-plugins:latestを照合 2026-09-04 10:49 JST 合格。ともにsha256:101bead...
tmuxの確定操作を提供する 新コンテナの/etc/tmux.confでmouse、両copy-modeのCtrl+C、Ctrl+Home未定義を検査 2026-09-04 10:49 JST 合格 / exit=0

合否: 合格(5件中5件)
起票したもの: なし(cross-reviewランチャのmacOS bash問題は別リポジトリの範囲外候補として記録。外部issue起票は同意待ち)

@takemi-ohama

Copy link
Copy Markdown
Contributor Author

振り返り(2026-09-04)

対象: PR #154 / PR #157 / v3.2.2

Kiro CLIの認証状態をアカウントグループ単位で永続化し、tmuxのコピー操作を整備しました。v3.2.1のリリース後テストでAI CLIのalias設定を一般ユーザーが読めない事象を検出したため、修正をPR #157で追加し、v3.2.2として再配布しました。

何が起きたか

  • PR #154のクロスレビューは2ラウンドで収束し、5件の指摘を修正しました。最新HEADの最終スイープでは未解決threadが0件でした。
  • マージ前テストはDockerfile内のaliasファイル配置を静的に確認していましたが、未作成の親ディレクトリを含むno-cacheビルド後のpermissionまでは確認していませんでした。
  • v3.2.1の公開版から実イメージをno-cacheで構築した結果、/etc/devbaseが0644になり、一般ユーザーが配下を探索できないことを確認しました。この時点でIssue #156を起票しました。
  • PR #157ではDockerfileの作成順を固定する退行テストと実イメージ確認を追加しました。クロスレビューは2ラウンドとも両レビュアーが指摘0件で承認しました。
  • v3.2.2の公開版から再度no-cacheビルドし、/etc/devbase=0755、aliasファイル0644、Bash読込成功、コンテナ再作成後のkiro-cli whoami成功を確認しました。受け入れ条件6件中6件が合格です。

次に変えること

変えること 落とし先 状態
親ディレクトリを暗黙作成するCOPYを変更した場合、静的検査に加えてno-cacheイメージのpermissionと一般ユーザーでの読込を確認する ndf:quality-gatesの結合・端から端までの検証項目 PR #157とv3.2.2の検証で適用済み
認証永続化は保存ファイル数の推測ではなく、コンテナ再作成前後のkiro-cli whoamiで判定する リリース後テストの受け入れ条件 PR #154とv3.2.2の検証で適用済み
macOS標準Bashでcross-review launcherの空配列展開が失敗する事象を配布元で追跡する devbasex/ai-pluginsの課題 別リポジトリへの起票承認待ち

途中で起票した課題

番号 何を見つけたか 見つけた場面
#156 /etc/devbaseが0644で作られ、Bash起動時にalias設定を読めない v3.2.1のリリース後テスト

@takemi-ohama
takemi-ohama deleted the fix/kiro-auth-persistence branch September 4, 2026 03:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant