リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: エンディングノート LastLetter
最終更新日時の表示と「前回からの変更セクション」バッジ通知
1. 目的
ユーザーが「いつ最後に書いたか」「前回から何を変えたか」を一目で把握できるようにする。定期的な見直し習慣を促し、放置防止・安心感の向上につなげる。
2. 具体的な仕様
【最終更新日時の表示】
- ページ上部の進捗バー直下に「最終更新: 2025年6月14日 13:42」形式で表示する。
- LocalStorageに保存している既存のデータオブジェクトに `lastSavedAt`(ISO 8601文字列)フィールドを追加し、自動保存のたびに更新する。
- 初回保存前は「まだ保存されていません」と表示する。
【前回からの変更セクションバッジ】
- 自動保存時、各セクションのデータをJSON文字列化してハッシュ(簡易チェックサム: 文字列長 + 各文字コードの合計値を利用、外部ライブラリ不使用)をLocalStorageに `sectionHashes` オブジェクトとして保存する。
- ページを開いた際、現在のデータのハッシュと保存済みハッシュを比較し、差分があるセクションのタブ/見出し右に「更新」バッジ(例: 橙色の小丸)を表示する。
- バッジはそのセクションを開いて内容を確認した(タブクリックまたはセクション展開)タイミングで消え、`viewedSections` フラグをLocalStorageに記録する。
- インポート操作後も同様に差分バッジを再計算する。
【見直し促進メッセージ】
- 最終更新から180日以上経過している場合、進捗バー下に「最後の更新から6ヶ月以上経ちました。内容を見直しましょう。」という淡いアンバー色のインフォバナーを1回だけ表示する(`reminderDismissed` フラグで非表示にできる×ボタン付き)。
3. 既存機能との整合
- LocalStorageの既存キー構造に `lastSavedAt`・`sectionHashes`・`viewedSections`・`reminderDismissed` の4フィールドを追加するだけで、既存の入力データ・チェックリスト状態・エクスポート/インポート・印刷機能には一切手を加えない。
- エクスポートJSONには `lastSavedAt` と `sectionHashes` も含めることで、別端末インポート後も更新履歴が引き継がれる。
- 追加フィールドが存在しない旧データを読み込んだ場合は該当フィールドを初期化して正常動作させる。
- 新規CSSクラス(`.update-badge`・`.reminder-banner`)を既存スタイルと衝突しない命名で追加し、印刷用CSSでは両要素を `display:none` にして印刷レイアウトに影響させない。
ユーザーが「いつ最後に書いたか」「前回から何を変えたか」を一目で把握できるようにする。定期的な見直し習慣を促し、放置防止・安心感の向上につなげる。
2. 具体的な仕様
【最終更新日時の表示】
- ページ上部の進捗バー直下に「最終更新: 2025年6月14日 13:42」形式で表示する。
- LocalStorageに保存している既存のデータオブジェクトに `lastSavedAt`(ISO 8601文字列)フィールドを追加し、自動保存のたびに更新する。
- 初回保存前は「まだ保存されていません」と表示する。
【前回からの変更セクションバッジ】
- 自動保存時、各セクションのデータをJSON文字列化してハッシュ(簡易チェックサム: 文字列長 + 各文字コードの合計値を利用、外部ライブラリ不使用)をLocalStorageに `sectionHashes` オブジェクトとして保存する。
- ページを開いた際、現在のデータのハッシュと保存済みハッシュを比較し、差分があるセクションのタブ/見出し右に「更新」バッジ(例: 橙色の小丸)を表示する。
- バッジはそのセクションを開いて内容を確認した(タブクリックまたはセクション展開)タイミングで消え、`viewedSections` フラグをLocalStorageに記録する。
- インポート操作後も同様に差分バッジを再計算する。
【見直し促進メッセージ】
- 最終更新から180日以上経過している場合、進捗バー下に「最後の更新から6ヶ月以上経ちました。内容を見直しましょう。」という淡いアンバー色のインフォバナーを1回だけ表示する(`reminderDismissed` フラグで非表示にできる×ボタン付き)。
3. 既存機能との整合
- LocalStorageの既存キー構造に `lastSavedAt`・`sectionHashes`・`viewedSections`・`reminderDismissed` の4フィールドを追加するだけで、既存の入力データ・チェックリスト状態・エクスポート/インポート・印刷機能には一切手を加えない。
- エクスポートJSONには `lastSavedAt` と `sectionHashes` も含めることで、別端末インポート後も更新履歴が引き継がれる。
- 追加フィールドが存在しない旧データを読み込んだ場合は該当フィールドを初期化して正常動作させる。
- 新規CSSクラス(`.update-badge`・`.reminder-banner`)を既存スタイルと衝突しない命名で追加し、印刷用CSSでは両要素を `display:none` にして印刷レイアウトに影響させない。
💬 返信 (3)
🛠 開発を開始しました (機能追加 lastletter)
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「エンディングノート LastLetter」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=lastletter
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/lastletter/
ご利用ありがとうございます!
ご要望いただいた「エンディングノート LastLetter」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=lastletter
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/lastletter/
ご利用ありがとうございます!
Echo
Iris