feature/knowledge-index-and-timezone
main
タイムゾーン: SQLite の DATETIME は tzinfo を保存できず、DateTime(timezone=True) を 指定してもバインド時に捨てられるため、API のレスポンスがオフセット無しの ISO 文字列になりフロントがローカル時刻として誤解していた。UtcDateTime (TypeDecorator) を追加し、書き込み時は naive な UTC に正規化、読み出し時は UTC の aware として返すようにする。格納フォーマットは変わらないので既存 データはそのまま正しく解釈でき、マイグレーションは不要。 コンテナは TZ 未設定で UTC だったため、天気通知の cron 時刻・深夜スキップ 判定・「明日」の日付計算が9時間ずれていた。TZ=Asia/Tokyo を指定し、slim イメージに無い tzdata を導入する。 蓄積知識: 層1が最新15件の要約全文を毎リクエスト無条件に注入しており、同じ内容が ローカルKB(層3)にも保存されているため重複していた。層1を「クエリ+ 一行要約」の目次に変え、本文は read_knowledge ツールで読み出す形にする。 一行要約は要約生成時の既存 LLM 呼び出しに相乗りするので呼び出し回数は 増えない。headline を持たない既存エントリは本文の先頭行から導出する。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
要約で長期メモリに移したメッセージをDBから物理削除していたため、 一度要約されると人間も内容を確認できなくなっていた。削除をやめ、 messages に archived_at(要約に取り込まれた時刻)と memory_id (どの要約に取り込まれたか)を持たせる。 モデルからは従来どおり見えない: - get_context_messages() がアーカイブ済みを除外する - maybe_summarize() の閾値判定も現役メッセージだけを数える (ここを除外し忘れると件数が減らず再要約が繰り返される) - backfill_tags() もアーカイブ済みは対象外にする 人間からは確認できる: - GET /chat/sessions/{id}/messages がアーカイブ済みも archived_at 付きで返す。export/import もアーカイブ状態を保持する - チャット画面では半透明で表示し、最後のアーカイブ済みメッセージの 直後に「ここから先がモデルに渡る」区切り線を出す Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
npm install(npm 11 / Node 24)を実行した際の再解決で、lightningcss と その各プラットフォーム向けバイナリ、detect-libc のエントリが外れた。 いずれも vite の optional な peer 依存で、実際には使われていない。 package.json は変更しておらず、追加・バージョン更新も無い(286行の削除のみ)。 この状態で npm run type-check(vue-tsc)が通ることは確認済み。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
No dependencies set.
The note is not visible to the blocked user.
要約で長期メモリに移したメッセージをDBから物理削除していたため、 一度要約されると人間も内容を確認できなくなっていた。削除をやめ、 messages に archived_at(要約に取り込まれた時刻)と memory_id (どの要約に取り込まれたか)を持たせる。 モデルからは従来どおり見えない: - get_context_messages() がアーカイブ済みを除外する - maybe_summarize() の閾値判定も現役メッセージだけを数える (ここを除外し忘れると件数が減らず再要約が繰り返される) - backfill_tags() もアーカイブ済みは対象外にする 人間からは確認できる: - GET /chat/sessions/{id}/messages がアーカイブ済みも archived_at 付きで返す。export/import もアーカイブ状態を保持する - チャット画面では半透明で表示し、最後のアーカイブ済みメッセージの 直後に「ここから先がモデルに渡る」区切り線を出す Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>