Conversation
#14: セッションバーに PR ボタンを追加。PR が無ければ作成シート (ベースブランチ/タイトル/本文/Draft 既定ON)→ git push -u origin HEAD → gh pr create → 作成した PR をブラウザで開く。PR があればブラウザで開く。 gh の stderr をエラーに載せ、未認証・重複PR などの理由を UI に表示。 #15: ToolDoctor が起動時に git/gh/claude の存在とバージョンを検査 (GUI の乏しい PATH を考慮し Homebrew/mise shims/~/.claude/local も探索)。 設定 > 一般に「ツール診断」セクション(状態・バージョン・再検査)。 claude 不在は起動ボタン、gh 不在は PR ボタンを無効化し理由を help に表示。 Closes #14 Closes #15
コードレビュー(#33)で見つかった「doctor のゲートが実行経路と食い違う」系の 不具合をまとめて対処する。 - ToolLocator にツール解決を集約(固定候補+PATH+ログインシェル)。doctor(gh) の判定と GitHubEngine.locateGH が同じ解決を使い、PR ボタンの有効状態と実際の gh 起動可否が一致する(mise shims / Nix パスの非対称を解消)。 - Claude 起動ボタンの doctor 依存の無効化を撤去。起動は端末(ログインシェル)で claude を解決するため、検出漏れで中核機能を塞がない。未検出時は help で注意喚起。 - ProcessRunner(両パイプ並行 drain+timeout)を共有化し、ToolDoctor.runVersion の 未 drain・無 timeout による恒久ハング(checking が固まる)を解消。 - gh pr create の stdout から URL 行を抽出(助言行が混ざっても PR を開ける)。 - PR 作成失敗時、空 stderr で空エラーラベルにならないよう localizedDescription に フォールバック。 - createPullRequest はセッション未検出時に "" を返さず throw(黙って dismiss しない)。 - GitHubEngine.parsePRURL / parseChecks に単体テストを追加。
#16 の前段。CLAUDE.md の「落ち着いたら .v6 へ」に沿って strict concurrency へ。 - Package の全ターゲットを .swiftLanguageMode(.v6) に。 - アプリの SWIFT_VERSION を 6.0 に。 - プロセス実行の並行 drain で captured var を変異していた 3 箇所(ProcessRunner / GitRunner / GitHubEngine.run)を、ロック付き Sendable な DataBox 経由に統一して #SendableClosureCaptures 警告を解消。 - エンジン/ストア: 警告0・swift test 29 passed。アプリ: concurrency 警告0 (既存の NSSplitViewDelegate シグネチャ警告のみ・本移行とは無関係)。 TCA 化(UI 層のリライト)は #16 の後段として継続。
#17。1 つ目=Claude(hooks)に加え、hooks 無しで degrade する 2 例(Codex/Gemini)を 追加し、能力フラグで UI を出し分ける。 - LaboLaboEngine に AgentAdapter / AgentCapabilities / StatusReporting とレジストリ AgentAdapters(claude/codex/gemini・find/default)を追加。能力: Claude=hooks/resume/ nativeWorktree、Codex=none/resume、Gemini=none/非resume。 - AgentSessionModel をアダプタ駆動に。launchCommand・canResume をアダプタへ委譲し、 hooks 注入(settings.local.json)は statusReporting==.hooks のときのみ行う。 - セッションにアダプタ種別を永続化(DB v3-adapter / SessionRecord.adapterId / RepoSession.adapterID)。復元・新規作成・既存フォルダ/org オープンで引き回し。 - New Session シートにエージェント選択を追加。ライブ状態非対応は注意書きを表示。 - セッションバーの起動ボタンをアダプタ対応(表示名・アイコン・ツールチップ・再開可否)。 - テスト: 能力・launchCommand(resume 出し分け・shell quoting)・レジストリ・DB adapterId ラウンドトリップ(swift test 40 passed / app build 成功)。 Closes #17
#18。同一リポジトリの複数セッション(別 worktree/ブランチ)が同じファイルを編集して いたら警告する。 - LaboLaboEngine に純粋関数 CrossSessionConflicts(同一 repoKey で変更パスが重なるものを 列挙)を追加。 - SessionStore が変更ファイルの逆引き(session→変更パス集合)を保持。多重 repo のセッション だけ git status を 5s 間隔+セッション/repo 解決時にリフレッシュ。 - SessionDetailView 上部に ConflictBanner を追加。件数・ファイル一覧を表示し、どの他 ブランチ/セッションと衝突しているかを help に出す。 - テスト: CrossSessionConflicts 6 件(同一/別 repo・単独・未解決 repoKey・複数他者・空集合)。 swift test 46 passed / app build 成功。 逆引きはライブ git status から都度計算(常に最新)。永続テーブル(session_file)は陳腐化リスク があり本警告には不要なため見送り。 Closes #18
#19。stream-json 不在のため transcript(JSONL) から usage を集計し、推定として表示する。 コストで機能は gate しない。 - LaboLaboEngine に TranscriptUsage(assistant 行の usage 合算)/AgentUsage/ ModelPricing(opus/sonnet/haiku の概算単価)を追加。純粋関数でテスト可能。 - AgentSessionModel が応答完了/終了(Stop/SessionEnd)時に transcript を バックグラウンドで読み usage を更新(hooks 方式のときのみ得られる)。 - セッションバーに使用量ボタン+ポップオーバーを追加。モデル・トークン内訳・推定 コストを表示し「推定・実課金と一致しない場合あり」を明示。 - テスト: TranscriptUsage 7 件(合算・不正行無視・空・コスト推定・ファミリ判定)。 swift test 53 passed / app build 成功。 Closes #19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
0.3.0 リリース統合(dev → main)
前回 0.2.0 以降に dev へ入った変更をまとめて main へ。dev は main の linear な子孫に再構成済み(#33–#38 のみ)。マージ後 release-please が 0.3.0 の version/CHANGELOG/タグを起票する。
含まれる変更
ToolLocator/ProcessRunnerに統一)検証
swift test: 53 passed / app build 成功。運用メモ