概要
今日はCanopyプロジェクトとccmvプロジェクトの双方で多岐にわたる作業を実施しました。Canopyでは、ファイルリストの表示やフィルタリング機能の改善、Sparkleアップデートウィンドウの不具合修正、設定画面(Preferences)の実装、コンテキストバーの視覚的な改善、ステータスバーのVCS情報表示の安定化、そしてローカルファイルリンククリック時のクラッシュ修正など、ユーザー体験と安定性向上のための多くのバグ修正と機能追加を行いました。ccmvプロジェクトでは、Claude Codeの最新データフォーマットへの対応、ファイル書き込み時のmtime保持機能の実装、エラーハンドリングの強化、およびドキュメント更新を実施し、実際にHangarプロジェクトをCanopyにリネームするマイグレーションを行いました。
作業内容
Canopy
@mentionでのファイルリスト表示において、.gitignoreの尊重、インクリメンタルフィルタリング、.gitディレクトリの除外を修正した- Sparkleアップデートウィンドウがメインウィンドウのサイズを使用する問題を、ウィンドウ識別子によるフィルタリングで修正した
- macOSネイティブな設定ウィンドウ(Preferences)を実装し、
respectGitIgnore、useCtrlEnterToSend、initialPermissionMode、allowDangerouslySkipPermissionsの4項目を設定可能にした - リリーススクリプトを改善し、
/releaseコマンドの追加、MODEL_NAME変数の利用、およびAppcast生成フローを修正してリリースノートのプレースホルダー問題を解決した - コンテキスト長表示バーの描画をmacOSの
ProgressViewからカスタムのRoundedRectangleに置き換え、表示の正確性と視認性を向上させた - ステータスバーのVCS情報(jj/gitブランチ)が競合やTCC権限問題で表示されないケースを修正し、安定して表示されるようにした
- 新しいセッションを開いた際にステータスバーのコンテキスト長やモデル名などの情報がリセットされない問題を修正した
- CLIバージョンがステータスバーに表示されないタイミングの問題を、
AppStateでのリセットタイミング調整で修正した - ローカルファイルリンク(
file://)クリック時にアプリがクラッシュする問題を、JavaScriptによるイベントインターセプトとWebContentプロセス回復処理で修正した - Claude Code拡張が送信する
open_fileリクエストをShimProcessでインターセプトし、ContentViewerで開くように修正した
ccmv
- Claude Codeの最新データフォーマット(
history.jsonlの"project"フィールド、sessions/*.jsonの"cwd"、sessions-index.jsonのfullPath/projectPath/originalPath)に対応するよう更新した - ファイル書き込み時に元の更新日時(mtime)を保持するための
writeFilePreserveMtimeヘルパー関数を実装し、セッション履歴の並び順がリ壊れる問題を解決した cursor.js内のSQLiteデータベース操作におけるトランザクション処理とエラーハンドリングを改善したwriteFilePreserveMtimeをutils.jsに移動してコードの重複を排除し、updateSessions()のcatchブロックを読み取りエラーのみスキップするように修正したccmv自身のドキュメント(README.md,CLAUDE.md,ARCHITECTURE.md)を最新の機能とデータ構造に合わせて更新したHangarプロジェクトをCanopyにリネームするマイグレーションを実際に実行し、パス参照の更新とディレクトリ移動が正常に行われることを確認した
Generated by CCDiary