2026年1月30日の開発日記
今日はgogcli(Google Workspace CLIツール)の全サービス制覇と、tax-assistantのクレカ明細画面の大改修を並行して進めた。gogcliは朝からChat・Sheets・Calendarを一気に触り、面談自動化フローまで組み上げた。tax-assistantは午後からクレカ明細の確定ステータス追加に着手し、テーブル再設計・右パネル再設計・バグ修正・NG明細ルール自動提案計画まで一気通貫で進めた。mdx-playgroundではブログカレンダーの月末日バグ修正と検索ページの軽量化も実施。
今日やったこと
1. gogcli: Chat Delete機能のGo実装とフォーク管理
gogcli本家にないChat messages deleteコマンドをGoで実装した。フォーク管理も整備し、origin→upstreamリネーム、feat/chat-deleteブランチ作成、GitHubプッシュ、LOCAL_OPS.md作成まで一通り対応した。keyringバックエンド問題(WindowsのコロンNG)の解決やDrive検索の制限事項の把握も行った。
主な成果:
- Chat messages delete コマンドをGoで実装・ビルド・動作確認
- Gitフォーク管理の整備とLOCAL_OPS.md作成
- GAS→Python移行手順の公開記事作成(Codexレビュー・honda-sakubun校正済み)
詳細: gogcli Chat Delete機能の実装とGoogle Chat API活用ガイド
2. gogcli: Chat・Sheets・Calendar操作と面談自動化フロー
gogcliでChat API設定(Cloud Console構成タブ)からSheets操作(新規作成・データ入力・数式読み取り)、Calendar操作(予定作成・Meet自動生成・private-prop管理)まで全サービスを触った。最終的にfreebusy→Meet付き予定作成→Chat通知の面談自動化フローを構築した。
主な成果:
- Google Chat: 構成設定、メッセージ送信、スレッド投稿、Drive画像リンク共有
- Google Sheets: 新規作成、データ入力、数式の3モード読み取り(FORMULA/FORMATTED_VALUE/UNFORMATTED_VALUE)
- Google Calendar: 予定作成、--with-meetでMeet自動生成、private-propによるバッチ管理
- 面談自動化フロー: freebusy→Meet付き予定→参加者招待→Chat通知
詳細: gogcliでGoogle Chat・Sheets・Calendarを操作:面談自動化フローまで一気に構築
3. ブログカレンダーの月末日バグ修正
ブログカレンダーで月末日の記事が表示されないバグを発見・修正した。publishedAtがISO文字列("2026-01-30T00:00:00.000Z")としてクライアント側に渡され、"2026-01-31" との文字列比較で月末日の記事が除外されていた。
主な成果:
- 原因特定: SSRとCSRでpublishedAtの形式が異なる(YYYY-MM-DD vs ISO 8601)
- 修正:
.slice(0, 10)で日付部分のみに正規化してから比較 - 全ての月末日で発生しうるバグだった
詳細: Nuxt Contentブログカレンダーで月末日の記事が表示されないバグの原因と修正
4. 検索ページパフォーマンス改善
検索ページの軽量化を実施した。FlexSearchライブラリを削除し、.select() による必要フィールドのみの取得に切り替えた。payloadが約20MBから数十KBに削減された。
主な成果:
.select()でbody ASTを除外(payload: 20MB → 数十KB)- FlexSearch依存の完全削除
- タイトル・説明文の部分一致検索に変更(filter + includes)
詳細: Nuxtブログの検索ページ軽量化 - FlexSearch削除とselect()による最適化
5. tax-assistant: クレカ明細の確定ステータス実装と右パネル再設計
午後はtax-assistantに集中。クレカ明細画面のreceipt_confirmed/rule_confirmedステータス追加、rule_matchedステータス統一、テーブル5カラム化、右パネル2分割再設計、仕訳編集UI、UX改善(Ctrl+Enter、月またぎナビ、タブ状態復元)、多数のバグ修正、NG明細ルール自動提案計画まで一気に進めた。
主な成果:
- DBマイグレーション + バックエンド + API + フロントエンドの全レイヤー対応
- テーブル簡略化(5カラム)と右パネル2分割再設計
- 仕訳ルールと同じ編集UI(select/input)の実装
- Ctrl+Enter確定、月またぎナビ、selectedIndex復元
- 5件のバグ修正(SearchableSelect、onUnmounted変数名漏れ等)
- NG明細ルール自動提案計画(Gemini API連携)の策定
詳細: 会計アプリ開発記録:クレカ明細の確定ステータス実装から右パネル再設計・NG明細ルール自動提案まで
今日の学び
- gogcliのChat API設定は「構成」タブの保存が必要。API有効化だけでは動かない
--private-propによる識別子管理は、CLIでの一括操作を安全にする良い仕組み- ISO文字列と日付文字列の比較は形式を揃えてから行うべき(月末日バグの教訓)
- onUnmountedフック内の変数参照は、リネーム時に見落としやすい
- 確定/取消のUIは「状態表示(バッジ)」と「操作(ボタン)」を分離すると整理される
明日やること
- tax-assistant: NG明細ルール自動提案(Gemini API連携)のPhase 1実装
- tax-assistant: 仕訳出力機能との統合
- gogcli: Chat Delete機能のPR作成(本家へのコントリビュート検討)
- mdx-playground: 日記記事の表示確認