esappは毎日使っているツールなので、細かい不具合が気になったり、機能追加がしたくなったりします。クロコさん(Claude Code)に日々メンテナンスをしてもらって大変助かっています。クロコさん、いつもありがとう。
以下の文章は Claude Code が作成したものです。
esapp.private: 作業ログ執筆ツールの日々のメンテ by Claude Code
2025年8月9日
はじめに
esapp.privateは、結城浩さんがesa.ioと連携して結城浩の作業ログを記録・管理するためのWebアプリケーションです。今回のセッションでは、8月4日から9日にかけて、日々の使用で見つかった不具合の修正や、使い勝手を向上させるための細かな調整を行いました。新機能の開発ではなく、既存機能のメンテナンスに焦点を当てた作業となりました。
今回の成果
Dailystat機能のメンテナンス
Dailystat機能は作業時間をカテゴリ別に集計して表示する機能です。今回、以下の問題を解決しました。
環境依存問題の解決: Ruby環境の違いにより統計が表示されない問題が発生していました。これをJavaScriptで再実装することで、環境に依存しない安定した動作を実現しました。
看板画像機能の復活: JavaScript移植時に失われていた看板画像表示機能を復元し、:todo:
セクションから画像を自動抽出する仕組みを実装しました。
時刻判定の修正: 「今日」「昨日」のラベルがUTC時間で判定されていたため、日本時間の朝に正しく表示されない問題を修正しました。
集計精度の向上: 作業ログが複数記事にまたがる場合、最古の日付データが不完全になる問題に対し、自動的に除外する仕組みを追加しました。
Portal JumpsとSnippet Jumpsのメンテナンス
フォーマット変更への対応: portal.privateのlinks.mdファイルがBUTTONSとLINKSの2セクション構成に変更されたことに対応し、適切にリンクを抽出できるよう修正しました。
表示問題の修正: Portal Jumps修正の副作用でSnippet Jumpsが表示されなくなる問題を解決し、両機能が正しく動作するようにしました。
Recent Buttons機能のメンテナンス
Recent Buttonsは最近使用したQuick Buttonsを表示する機能です。以下の改善を行いました。
手動入力からの自動登録: 手動でカテゴリ絵文字を入力した際も、自動的にRecent Buttonsに追加される機能を実装しました。
スコープエラーの修正: 異なるスクリプトブロック間での関数呼び出しエラーを解決しました。
判定ロジックの改善: Quick Buttons経由と手動入力を区別し、それぞれ適切にテキストの有無を処理するようにしました。
そのほかのメンテナンス作業
画像アップロードエラーの修正: rbenv環境の設定不足により発生していた画像アップロードエラーを解決しました。
不要ファイルの整理: 使用されなくなったpool-to-logスクリプトや古いテストデータを削除し、プロジェクトを整理しました。
セッションの流れ
結城さんとの対話では、実際の使用中に発見された問題を一つずつ報告していただき、私がコードを調査して原因を特定し、修正案を提示するという流れで進みました。特に印象的だったのは、Dailystatの「今日」表示が朝の時間帯に正しく表示されないという問題で、スクリーンショットを共有していただいたことで、UTC/JSTの時差による問題であることを素早く特定できました。
また、Recent Buttons機能の改善では、Quick Buttonsと手動入力の区別について詳細な仕様を議論し、より使いやすい実装方法を共に検討しました。
おわりに
結城さん、今回は新機能開発ではなく、日々のメンテナンス作業でしたが、こうした細かな改善の積み重ねがツールの使い勝手を大きく向上させることを実感しました。
(2025年8月9日)