LINORIN Changelog

Linked Intelligence Network Orchestrator

v1.26.4 2026-10-16
🧩【重要】記憶が上限を超えると「会話の好み」が AI に届かなくなる不具合を修正

記憶が注入上限(既定4,096文字)を超えている場合、保存されているのに AI に渡っていない部分がありました。切り捨てられるのは、プロンプトが「常に参照」と指示している層からでした。

  • fix 🧩 記憶の注入を「保存順の先頭から切る」方式から「層ごとの予算配分」方式に変更 — 従来は上限超過時に末尾から切られるため、手続き記憶(会話の好み・反応パターン)が真っ先に失われていました。保存7,685文字/上限4,096文字の環境で手続き記憶が1行も渡っていない実例がありました
  • feat 📈 記憶の注入上限を 4,096 → 8,192 文字に引き上げ — 配分方式を入れてもなお各層が圧縮される環境があったため。⚠️ システムプロンプトが最大4,096文字(約5,300トークン)増えるため、従量課金のAI(Claude / ChatGPT など)では入力トークンの費用が増えます(1日30回で月10〜15ドル程度の増加になりうる試算)。Gemini の無料枠やさくらのAIクラウドではほぼ影響ありません
  • fix 🧩 上限に収まっている場合は一切加工しません — 記憶が小さい環境では従来と同じ動作です。見出しのない記憶(旧フォーマット・手編集)も従来どおりの処理にフォールバックします

補足:「長期記憶」→「記憶を確認・修正」で「保存◯◯文字 / 応答時は最大◯◯文字まで参照」と出ている場合、保存のほうが大きければ今回の修正の対象です。

v1.26.3 2026-10-16
🤖【重要】AI自身の記憶が膨張して更新が止まる不具合を修正

v1.26.1 で長期記憶(あなたについての記憶)の停止は直りましたが、AI自身の記憶だけが別の原因で止まるケースが残っていました。アップデートで自動的に復旧します。

  • fix 🤖【重要】AI自身の記憶に整理の指示がなく、無制限に膨張していた問題を修正 — 「あなたについての記憶」側にはあった「重複は統合する」「件数・文字数の上限」が、AI自身の記憶側には一切なく「維持・更新・拡張」だけを指示していました。重複の統合と各セクションの上限を追加しました
  • fix 🤖 AI自身の記憶を書き直す際の入力サイズに上限を設定 — 日記は8000文字で区切る一方、既存のAI記憶は長さ無制限で渡していました
  • feat 🔄 記憶の整理に失敗した場合、Gemini で1回だけ再試行 — 日記生成には以前から入っていた仕組みです。コード特化モデルを選んでいると長文の再生成を諦めることがあり、従来はそこで静かに止まっていました
  • fix 🔧 健全性チェックに、意図的な整理と事故を区別する判定を追加 — 「統合して縮めなさい」と指示しているのに「半分未満なら破棄」では、指示と判定が打ち消し合っていました

補足:「🧠 記憶を整理」は「あなたについての記憶」のみを更新します。AI自身の記憶は日記と同時に更新されるため、急ぐ場合は「📔 日記を生成」を実行してください。

v1.26.2 2026-10-02
🔢 数値設定が空欄表示になる不具合 + 🗑 削除後に発言が残る不具合を修正

いずれも利用者からのご報告をもとに修正しました。ありがとうございます。

  • fix 🔢 「日記生成最大トークン」「最大出力トークン」が再読み込みで空欄表示になる不具合を修正 — 秘匿判定がキー名に TOKEN 等を含むかだけで決まっていたため、秘密情報でない数値設定までマスクされていました。判定を設定項目の型ベースに変更(APIキー・アクセストークン類は従来どおりマスクされます)
  • fix 🗑 「直前の発言を削除」でユーザー側の発言だけ画面に残る不具合を修正 — タイピング表示が内部的にAI発言と同じ扱いで常に末尾にあるため、消す対象がずれていました。削除後にタイピング表示が出なくなる副作用も解消
  • fix 🔊 自動読み上げが無音で終わる不具合を修正 — 同じ原因で読み上げ対象がタイピング表示になり、本文を取得できていませんでした
v1.26.1 2026-09-30
🧠【重要】長期記憶の統合が静かに止まる不具合を修正

長期記憶が育つと、ある日から統合が止まったまま気づけなくなる不具合がありました。会話は普段どおり続きエラーも出ないため、記憶が古いまま固定されていることに気づく手段がほぼありませんでした。アップデートするだけで自動的に復旧します(設定の変更は不要です)。

  • fix 🧠【重要】記憶の統合が途中で打ち切られて破棄されていた問題を修正 — 「日記生成最大トークン」が空欄のとき、日記本体は 8000 トークンで動く一方、記憶の統合だけが 2048 トークンで動く非対称がありました。記憶が育つと出力が途中で切れ、フォーマット検証で破棄され、古い記憶が残り続けます。記憶の統合も日記と同じ既定値を使うようにしました
  • fix 🧠 「日記生成最大トークン」に既定値 8000 を設定 — 新規セットアップ時に空欄にならないようにしました。既存の環境は上記の修正だけで復旧します
  • feat 📅 日記の末尾に「記憶の最終更新」を表示 — 長期記憶がどこまで新しいかを1行表示し、3日以上止まっていれば警告を出します

すでに記憶が止まっていた場合:アップデート後、設定画面の「困った」→「🧠 記憶を整理」を一度実行すると、その場で復旧します。

v1.26.0 2026-09-14
🔍 Webhook拾いこぼしの検知 + 💬 会話ログ編集機能 + 📏 返事の長さピッカー刷新
  • fix 🔍【重要】LINE webhookが event_queue に一切入らないまま消える経路を可視化 — 署名不一致・トークン不一致・非信頼キュー満杯・JSON解析失敗・1イベント過大・未捕捉例外・ポイズンピル破棄の7経路をdebug_logsに記録するようにした
  • feat 💬 直近の会話ログを設定画面から直接確認・編集・削除できるように(「記憶と知識」タブの独立した「会話ログ」セクション)
  • feat 📏 返事の長さ設定を選択式に刷新 — 「ひとこと」「指定(スライダー)」「手紙」の3択に
v1.25.18 2026-09-14
🔧 設定画面の整理(会話ログを独立セクションに)
  • fix 🔧 会話ログを「長期記憶」から独立した「💬 会話ログ」セクションに分離 — 会話ログ(生ログ)と長期記憶(要約・蒸留された記憶)は別物のため
v1.25.17 2026-09-14
🔍 Webhook拾いこぼしの検知 + 💬 会話ログ編集機能 + 📏 返事の長さピッカー刷新
  • fix 🔍【重要】LINE webhookが event_queue に一切入らないまま消える経路を可視化 — 署名不一致・トークン不一致・非信頼キュー満杯・JSON解析失敗・1イベント過大・未捕捉例外・ポイズンピル破棄の7経路をdebug_logsに記録するようにした
  • feat 💬 直近の会話ログを設定画面から直接確認・編集・削除できるように(「記憶と知識」タブ)
  • feat 📏 返事の長さ設定を選択式に刷新 — 「ひとこと」「指定(スライダー)」「手紙」の3択に
v1.25.16 2026-09-14
🛡️ 記憶マージの健全性チェックに「劣化ループ」検知を追加
  • fix 🛡️【重要】LLMの劣化生成が記憶マージの健全性チェックをすり抜ける経路を塞いだ — 同じ短い言葉を無限に繰り返す劣化生成は文字数が減らず見出しも残るため、従来のチェック(空・見出し欠落・半減)をすり抜けて長期記憶に混入することがあった。一度混入すると以後毎回system promptへ注入され同じ壊れ方を誘発し続けるため、反復パターンの検知を追加
v1.25.15 2026-09-13
🐛 日記が切れているのに誰も気づけない不具合を修正
  • fix 🐛【重要】全エンジンがトークン上限による打ち切りを検知できていなかった — 8エンジン全てがAPIの打ち切り理由(finishReason)を取得しながら捨てており、日記が途中で切れているかどうか判定できない構造だった。検知してdebug_logsに記録するよう修正(対処はユーザーの設定引き上げに委ねる方針。上限を上げても課金は増えません)
  • feat 📈 日記生成最大トークンの既定値を引き上げ(4000→8000)
  • feat 🔍 記憶・履歴の可視化診断を追加(調査用)
v1.25.14 2026-09-13
🔧 外部レビュー指摘の修正5件
  • fix 🔊【重要】Geminiの音声読み上げで「声」を選ぶと必ず失敗していた不具合を修正 — speechConfigをgenerationConfigの外に置いていたためAPIに拒否されていた。声を未設定のときだけ偶然動いていた状態
  • fix 🔊 音声読み上げが再生できない可能性があったのを修正 — Gemini TTSが返す生PCM(audio/L16)を常にmp3と偽って返していたため再生できないケースがあった。実際の形式を見てWAVに包むよう修正
  • fix 🔊 読み上げトグルON時に過去の発言を自動再生しないように — 「次の返信から」が自然な期待のため。過去分は各吹き出しの🔊ボタンから再生できます
  • feat 📝 記憶をUIから手編集した履歴を記録 — 「AIが書き換えたのか自分が編集したのか」を後から追えるように(本文は残さず文字数の変化と冒頭のみ)
  • fix 🛡️「空欄に意味がある設定」の判定をスキーマ定義へ — キー名のパターン判定に依存していたため、別の名前のキーが増えたときに同種の事故が再発する余地があった
  • fix 🧹 チャット画面の画像抽出処理の重複を解消
v1.25.13 2026-09-13
🔁 セットアップを再実行しなくても、新機能のトリガーが自動で作られるように
  • fix 🔁 dailyResetに補助トリガーの自己修復を追加 — アップデートしてもsetup()を実行しないと、後から追加された機能のトリガー(週次アーカイブ等)が永久に作られないままだった。1日1回、不足していれば自動で作成する(既存トリガーは削除せず・重複も作らない)
v1.25.12 2026-09-13
🔒 新規インストールはWebUIアクセストークンを既定ONに
  • feat 🔒 新規インストール限定でwebui_access_token_enableを既定ON — トークン未設定だとv1.25.11で塞いだゲート自体が作動せず、/execを知っている全員にWebUIが開いてしまうため。既存ユーザーは既定OFFのままで挙動は変わりません
  • fix 🔗 app_urlがトークン付きURLで保存されるよう修正 — 初回セットアップではトークン生成より先にapp_urlが同期されるため、トークン無しURLが保存されていた。設定画面のapp_urlが常に「そのまま開けるURL」になる
v1.25.11 2026-09-13
🔒【重大】アクセストークンのゲートを迂回してAPIキーが読み出せる経路を塞いだ
  • fix 🔒【重大】拒否ページが HtmlService だったためトークン機構が無効化されていた — HtmlServiceで返したページにはgoogle.script.runのブリッジが載るため、「Access Denied」画面からでもloadAllConfig()等を呼んで設定内の全APIキーが読み出せた。拒否をContentServiceに変更して経路を閉鎖。該当する方はAPIキーの再発行を検討してください
  • fix 🔒 危険な関数をRPC面から撤去 — 設定全体を返す関数、AI名義で任意送信できる関数、本人課金で会話できる関数など9個を末尾_付きに変更し外部から呼べないようにした(公開関数 224 → 215)
  • fix 🔒 トークン確認用関数をゲート — トークンそのものを返す3関数に、匿名呼び出しを弾くゲートを追加
  • fix 🐛 チャット画面でクエリ付きURLが途中で切れる不具合を修正 — ?a=1&b=2形式のURLが&の位置で切れていた
v1.25.10 2026-09-11
🚨【重大】「日記・記憶用のAI」が「メインと同じ」設定でも、モデル更新のたびに勝手に別モデルへすり替わる不具合を修正
  • fix 🐛 モデル解決ロジックの構造的な罠を修正 — 「メインと同じ」設定でも非表示の`SUB_*_MODEL`が優先されてしまう構造だった。「モデル更新」ボタンが、空欄そのものに意味がある`SUB_*_MODEL`/`GEMINI_FALLBACK_MODEL`にまで先頭モデルを勝手に書き込んでいたのが原因。全プロバイダ対象
  • feat 🛡️ 記憶マージの健全性チェック — LLM出力が空・見出し欠落・大幅縮小の場合は保存せず旧記憶を維持
  • feat 🌡️ 要約系の生成温度を分離 — 記憶マージ・要約・AI自己記憶生成はtemperature=0.2固定、日記のみ創作性を維持
  • feat 📦 可搬アーカイブ機能を追加 — 日記・記憶・人格設定・会話ログをZIPで書き出し/復元。週次自動書き出しトリガーも追加
v1.25.9 2026-09-10
🐛 日記が途中で切れる不具合を修正
  • fix 🐛 日記生成の最大トークン数の既定値を引き上げ(2000→4000) — 「長めに、感情豊かに」「最低でも800文字以上」の指示に対し、2000トークンでは日本語で最大1,300〜1,800文字程度しか出力できず、特に思考モデル使用時は文末で力尽きて途中切れすることがあった
  • fix 🐛【重大】日記本文中の"---"が文章の後半ごと誤って削除される不具合を修正 — AI自身の末尾署名("---\nWritten by...")除去処理が、単独の"---"だけでも切り捨てる作りだったため、本文中で場面転換に"---"を使うと以降が丸ごと消滅していた。"Written by"と隣接する場合のみ除去するよう厳密化
内部デプロイ v1.25.9.1(2026-09-11・記憶マージの健全性チェック+要約温度分離+可搬アーカイブ機能)
  • feat 🛡️ 記憶マージの健全性チェック — LLM出力が空・見出し欠落・大幅縮小の場合は保存せず旧記憶を維持
  • feat 🌡️ 要約系の生成温度を分離 — 記憶マージ・要約・AI自己記憶生成はtemperature=0.2固定、日記のみ創作性を維持
  • feat 📦 可搬アーカイブ機能を追加 — 日記・記憶・人格設定・会話ログをZIPで書き出し/復元。週次自動書き出しトリガーも追加
v1.25.8 2026-09-08
🚨 新規インストールのWebhookトークン既定ON化が機能していなかったバグを修正
  • fix 🐛 新規インストール判定が実質デッドコードだったバグを修正 — v1.25.6の機能が実装上の実行順序の問題で一度も発動していなかった。判定基準もバージョン非依存の方式に変更
  • fix 🐛 Reply失敗時の判定をさらに精緻化 — 5xxは確定失敗としてPushへ、ネットワーク例外のみ同一トークンで再試行して判別
内部デプロイ v1.25.7.1(2026-09-08・外部レビュー3点対応)
  • fix 🐛 Reply失敗時の判定をさらに精緻化 — 5xxは確定失敗としてPushへ、ネットワーク例外は同一トークンで再試行して判別するように変更
  • fix 🐛 新規インストール判定が実質デッドコードだったバグを修正 — webhook_access_token_enableの既定ON化が一度も発動していなかった不具合を修正。判定基準もバージョン非依存の方式に変更
v1.25.7 2026-09-08
🐛 UX改善2点(画像受信メッセージ・Webhook URLポップアップの誤再表示)
  • fix 💬 画像受信時の既定メッセージを見直し — 「写真を受け取ったよ、何の話をしたい?」に変更
  • fix 🐛 Webhook URL変更ポップアップが毎回再表示される不具合を修正 — サーバー側判定に変更し、一度きりの表示に
内部デプロイ v1.25.6.2(2026-09-08・Webhook URL変更ポップアップが毎回再表示される不具合を修正)
  • fix 🐛 セットアップ実行のたびにWebhook URL変更ポップアップが再表示される不具合を修正 — 判定に使っていたlocalStorageがsrcdoc iframe(origin="null")で永続化されないブラウザがあった。サーバー側ScriptPropertiesでの判定に変更
内部デプロイ v1.25.6.1(2026-09-08・画像受信時の既定メッセージを見直し)
  • fix 💬 画像受信時の既定自動返信を見直し — 事務的な通知文「画像を受信しました。なにについて話したいですか?」を「写真を受け取ったよ、何の話をしたい?」に変更。設定できても既定値が事務的だと大半のユーザーは気づかず体験してしまう、という外部ユーザーの投稿がきっかけ
v1.25.6 2026-09-08
🐛 モデル選択の初期不具合修正 + 💰 Reply API活用の精緻化 + 🔒 セキュリティ改善
  • fix 🐛 モデル一覧未取得時の案内が「[有料]」に化ける不具合を修正 — 新規セットアップ直後にこれを選んで保存すると返信できなくなっていた
  • feat 💰 Reply API活用の精緻化 — 二重送信リスク回避、画像返信の1回化、経過時間判定の基準修正
  • feat 🔒 新規インストールはWebhookトークンを既定ONに — 既存ユーザーは既定OFFのまま
  • fix 🔒 設定UIのXSS修正1件
内部デプロイ v1.25.5.5(2026-09-08・モデル未取得時のプレースホルダーが「[有料]」に化ける不具合を修正)
  • fix 🐛 モデル一覧未取得時の案内表示を修正 — APIキー入力直後「全エンジン・モデルを更新」を押す前は、モデル選択欄の案内文が「[有料] 」(空欄)という意味不明なラベルに上書きされていた。これを選んで保存するとモデル未設定のまま返信できなくなる実害があった。プレースホルダーは選択不可にして防止
内部デプロイ v1.25.5.4(2026-09-08・設定UIのXSS修正1件)
  • fix 🔒 テラリウムログ表示のXSS修正 — RPCエラーメッセージをescapeHtmlせずinnerHTMLへ挿入していた箇所を修正
内部デプロイ v1.25.5.3(2026-09-08・新規インストールのWebhookトークン既定ON + 経過時間の基準修正)
  • feat 🔒 新規インストールはwebhook_access_token_enableを既定ONに — 既存ユーザーは既定OFFのまま。DIAG_TOKENの有無で新規/既存を判定
  • fix 🐛 replyToken経過時間の基準を修正 — createdAt(キュー移送時刻)ではなく、実際のWebhook受信時刻に近いtimestamp列を基準にするよう修正
内部デプロイ v1.25.5.2(2026-09-08・Reply API活用のさらなる改善3点)
  • feat 💰 画像返信もReply APIを活用 — テキスト+画像を1回のReply(無料)にまとめるsendLineTextAndImage()を新設。従来のPush×2から削減
  • fix ⚡ 期限切れ確定のreplyTokenは最初から試さない — 90秒以上経過した行は無駄なReply試行を省略
  • fix 📝 Slack/Telegramの拒否ログを集約化 — LINEと同じレート制限ロジックを適用
内部デプロイ v1.25.5.1(2026-09-08・Reply失敗時の二重送信リスクを回避)
  • fix 🐛 Reply失敗時のフォールバック判定を精緻化 — 4xx(明確な拒否)はPushへフォールバック。5xx・ネットワーク例外(送信結果が不確定)は二重送信を避けるため自動フォールバックしない
v1.25.5 2026-09-08
🔒 セキュリティ強化 + 💰 LINE課金削減 + 運用限界の解消
  • fix 🔧 event_queueの自動アーカイブ + 毎分トリガーの早期return最適化 — 増え続けるevent_queueがGASクォータを圧迫するリスクを解消
  • fix 🔒 Slack/TelegramにもWebhook認証を追加 — LINEのみだった認証をSlack/Telegramにも適用
  • feat 💰 LINE返信でReply API(無料)を優先使用 — 従来のPush API(課金対象)一辺倒から、可能な限り無料のReply APIを使うように変更。実機確認済み
  • feat 📝 Reply/Push使用状況をdebug_logsに記録
内部デプロイ v1.25.4.6(2026-09-08・Reply/Push使用状況をdebug_logsに記録)
  • feat 📝 LINE送信のReply/Push使用状況をdebug_logsに記録 — 実際にどちらのAPIが使われたかシートで直接確認できるように
内部デプロイ v1.25.4.5(2026-09-08・LINE返信でReply APIを優先し課金を削減)
  • feat 💰 LINE返信でReply API(無料)を優先使用 — 従来は常にPush API(課金対象)を使っていたが、replyTokenが有効な間はまずReply APIを試し、失敗時のみPushへ自動フォールバック
内部デプロイ v1.25.4.4(2026-09-08・Slack/TelegramにもWEBHOOK_ACCESS_TOKEN検証を追加)
  • fix 🔒 Slack/TelegramのWebhook認証を強化 — 従来LINEのみ検証していたWEBHOOK_ACCESS_TOKENをSlack/Telegramにも適用。未設定時は既存の後方互換動作を維持
内部デプロイ v1.25.4.3(2026-09-07・event_queueの無限増殖と毎分フルスキャンを解消)
  • fix 🔧 event_queueの自動アーカイブを追加 — 一度も削除・アーカイブされず無限に増え続けていたevent_queueを、max_event_queue_rows(既定3000)超過時にdone/failed行のみDrive上へアーカイブ。queued/processing行には触れない安全設計
  • fix ⚡ 毎分トリガーの早期return最適化 — 活性行(queued/processing)が無ければ全列読み取りを丸ごとスキップし、トリガー実行時間の増大を抑制
内部デプロイ v1.25.4.2(2026-09-07・外部レビューで見つかった小さな品質不具合5点を修正)
  • fix コメント矛盾・キャラ名ハードコード・中国語混入・STYLE_EXAMPLESの過剰切り詰めなど5点を修正
内部デプロイ v1.25.4.1(2026-09-07・ロック非リエントラント前提を実測で検証)
  • fix GASのScriptLockが同一実行内で再入可能かを実測診断で確認。コード内コメントの誤った前提を修正(動作自体は元々問題なし)
v1.25.4 2026-09-06
🐛 設定トグル表示バグ修正 + 日記生成の自動フォールバック
  • fix 🐛 設定トグルが常にOFF表示になる不具合を修正 — 秘匿情報マスク処理がキー名のパターンだけで判定していたため、webhook_access_token_enable/webui_access_token_enable等の真偽値トグルまでマスクされ、実際の値が保存されていても常にOFFに見えていた
  • fix 🐛 日記生成の空応答をGeminiへ自動フォールバック — コード特化モデルが長い創作文の日記プロンプトに稀に空応答を返し生成が丸ごと失敗する問題を緩和
内部デプロイ v1.25.3.2(2026-09-06・日記生成の空応答をGeminiへ自動フォールバック)
  • fix 🐛 日記生成が空応答で失敗する不具合を緩和 — SUB_SAKURA_MODEL(コード特化モデル)が長い創作文の日記プロンプトに稀に空応答を返し生成が丸ごと失敗していた。空応答/エラー時にGeminiへ1回だけ自動フォールバック再試行するように
内部デプロイ v1.25.3.1(2026-09-06・トークン系トグルがマスクされ常にOFF表示になる不具合を修正)
  • fix 🐛 設定トグルが常にOFF表示になる不具合を修正 — 秘匿情報マスク処理がキー名にTOKENを含むかどうかだけで判定していたため、webhook_access_token_enable/webui_access_token_enableのような真偽値トグルまで(set:Nchars)にマスクされ、チェックボックスが常にOFF表示になっていた(実際の値はv1.25.3で正しく保存されていたが表示だけ壊れていた)。type:'toggle'のキーはマスク対象から除外
v1.25.3 2026-09-06
🐛 設定トグル保存不具合の修正 + 🔑 Webhook認証状態をWebUIから確認可能に
  • fix 🐛 設定トグルが保存されない不具合を修正 — webui_access_token_enable/webhook_access_token_enableのような後から追加した設定項目が、既存ユーザーのconfigシートでは保存できず「勝手にOFFへ戻る」ように見えていた
  • feat 🔑 「困った」タブにWebhook認証状態確認を追加 — GASエディタを開かなくても、WebUIから直接webhookAccessTokenと推奨Webhook URLを確認できるように
  • feat 🔗 診断結果のURLをワンクリックでコピー可能に — LINE Developers ConsoleのWebhook URL欄にそのまま貼り付けられるURL単体コピーボタンを追加
内部デプロイ v1.25.2.3(2026-09-06・診断結果のURLをワンクリックでコピーできるように)
  • feat 🔗 診断結果のURLをワンクリックでコピー可能に(詳細は上記参照)
内部デプロイ v1.25.2.2(2026-09-06・「困った」タブにWebhook認証状態確認を追加)
  • feat ✨ 「困った」タブに🔑Webhook認証状態ボタンを追加 — GASエディタを開かなくても、WebUIから直接webhookAccessTokenの値と推奨Webhook URLを確認できるように
内部デプロイ v1.25.2.1(2026-09-06・トークン系トグルが保存されない不具合を修正)
  • fix 🐛 設定トグルが保存されない不具合を修正 — 既存ユーザーのconfigシートに行が無い設定キー(webui_access_token_enable/webhook_access_token_enable等)は、トグルをONにして保存しても書き込み先の行が無く何も保存されず、次回読み込み時に「勝手にOFFへ戻る」ように見えていた。スキーマ定義済みだがシートに行が無いキーを自動で追記するよう修正
v1.25.2 2026-09-06
🔒 Webhookトークンの自動発行をオプトイン化 + 経過時間バグ修正 + 連投合流の安定化
  • fix 🔒 WEBHOOK_ACCESS_TOKENの無条件生成をオプトイン化 — バージョンアップ後にLINEの返信が来なくなったという報告あり。原因はsetup()がWebhookアクセストークンを無条件で新規発行し、対応するWebhook URLの更新を忘れると全メッセージが無条件拒否されること。設定画面「システム」タブの「Webhookにアクセストークンを必須化」をONにした場合のみ発行されるように変更(既定OFF)。すでに返信が来なくなっている場合は、このトグルをONにして「セットアップ実行」→表示されるURLでLINE Developers ConsoleのWebhook URLを更新してください
  • fix 🐛 自発プッシュ時刻をユーザー発言時刻と誤認するバグを修正 — 詳細下記
  • fix ✅ 連投テキストの合流機能 — LINEで短文を立て続けに送っても1件にまとめて返信するように(一時停止していたが原因無実と判明し復帰)
内部デプロイ v1.25.2.8(2026-09-06・自発プッシュ時刻をユーザー発言時刻と誤認するバグを修正)
  • fix 🐛 経過時間表示の誤りを修正 — システムプロンプトの「【経過時間】〜分経過しています」が、自発プッシュ(寂しさゲージ等)のたびに更新されるuser_stateのlastInteraction列(プッシュのクールダウン用)を参照していたため、プッシュ自身の送信時刻をユーザーの発言時刻と誤認していた。conversation_logsの実際のユーザー発言のみを見るよう修正
内部デプロイ v1.25.2.7(2026-09-06・連投合流機能を再有効化 + 経過時間表示の切り分け診断追加)
  • fix ✅ 連投合流機能を再有効化 — v1.25.2.6でWebhookトークン問題が真因と確定し無実だったため復帰
  • change 🔍 経過時間表示の切り分け用に一時診断を追加 — ?page=diag&target=time-checkでスクリプト/スプレッドシートのタイムゾーン設定の食い違いを確認できるように
内部デプロイ v1.25.2.6(2026-09-04・WEBHOOK_ACCESS_TOKENの無条件生成をオプトイン化)
  • fix 🔒 Webhookアクセストークンの自動発行をオプトイン化 — robot環境の「返信が一切来ない」障害の真因を特定:setup()がWEBHOOK_ACCESS_TOKENを無条件で新規発行し、対応するWebhook URLの更新を忘れると全メッセージが無条件でunauthorized拒否され、しかもdebug_logsには一切記録されなかった。WEBUI_ACCESS_TOKENと同じ既定OFFのオプトイントグル(webhook_access_token_enable)にし、新規発行時はWebUIにURLをポップアップ表示するように変更
  • fix 📝 訂正 — v1.25.2.4で無効化した連投合流機能は無実だった。真因は上記のWebhook URL/トークン不一致
内部デプロイ v1.25.2.4(2026-09-04・🚨緊急停止:連投合流機能を無効化)
  • fix 🚨 連投合流機能を緊急停止 — LINEメッセージが既読にはなるのに応答が一切来なくなる実害が発生したため、v1.25.2.1で追加した連投合流ロジックを機能フラグで無効化。原因は未特定(後にv1.25.2.6で無実と判明)
内部デプロイ v1.25.2.3(2026-09-04・一時ファイルをゴミ箱ではなく完全削除)
  • fix 🔧 一時ファイルを完全削除に変更 — 旧壁紙・OCR用一時ファイル等をゴミ箱に入れるだけだったのを、Advanced Drive Serviceで即時削除するように変更。ゴミ箱は30日間ストレージ容量を消費し続けるため、画像・PDF添付を多用するユーザーほど容量を圧迫していた
内部デプロイ v1.25.2.1(2026-09-04・連投メッセージの合流)
  • fix 🐛 連投テキストの合流 — LINEで短文を立て続けに送ると1通ずつ数分かけて時差返信になっていた不具合を修正。直近30秒以内・同一ユーザーの未処理メッセージがあれば1件にまとめて返信するように
内部デプロイ v1.25.2.2(2026-09-04・明日の予定抽出を会話ログにも対応 + 関数名の是正)
  • fix 🐛 明日の予定(tomorrow_events)の抽出に今日の会話ログを追加 — 従来は設定画面の固定プロフィールからしか抽出しておらず、「明日、面接なんだ」等の当日の会話を拾えていなかった
  • change 🔧 関数名の是正 — 「全ユーザー」向けに見えた`generateDailyDiaryForAllUsers`等を、実装通り「メインユーザー1名」を処理する`generateDailyDiaryForPrimaryUser`に改名。許可ユーザーID欄の説明も明確化
v1.25.1 2026-09-04
WebUIアクセストークン未設定ユーザーへの案内バナー
  • feat 🔒 WebUIアクセストークン未設定時に、画面を塞がずそっと案内するバナーを追加 — チャットは従来通り即使える状態のまま、「設定画面から『WebUIにアクセストークンを必須化』の有効化をおすすめします」と小さく表示。強制ブロックはしない
v1.25.0 2026-09-04
システムプロンプト プレビュー・長期記憶の確認・修正
  • feat 📝 システムプロンプト プレビュー — 設定画面「キャラ」タブ「記憶と知識」から、現在の設定(人格・記憶・時間帯指示など)で組み立てられるシステムプロンプトの全文をその場で確認できるように。会話履歴やその時点のRAGマッチは含まない「今の設定ならこうなる」プレビューであることを画面上に明記
  • feat 🧠 長期記憶の確認・修正 — 設定画面「キャラ」タブに「長期記憶」セクションを追加。「あなたについての記憶」「AI自身の記憶」を確認・直接編集・保存可能に。保存競合検知(revision比較)、重複userId時の保存拒否、フォーマット・参照文字数上限超過の非ブロッキング警告に対応
内部デプロイ v1.25.0.1(2026-09-04・AI自身の記憶の参照上限拡大 + push-testの画像生成コスト対応)
  • fix 🔧 AI自身の記憶の応答時参照上限を2048→16384文字に拡大 — 日記の蓄積で記憶が約9000文字まで肥大化しており、大部分が切り詰められていた
  • fix 🔧 push-testの画像生成テストをデフォルトOFF化 — 課金対象の画像生成APIを疎通確認のたびに無条件実行していたのを修正。明示指定時のみ実行するように変更
内部デプロイ v1.25.0.2(2026-09-04・応答コンテキストを撤回しシステムプロンプトプレビューへ再設計)
  • change 🔧 チャット画面の「応答コンテキスト」機能を撤回し、設定画面の「システムプロンプト プレビュー」に置き換え — 直前の実応答データは別ページの設定画面から原理上読めないため、置き場所の指摘を受けて設計そのものを変更
内部デプロイ v1.25.0.3(2026-09-04・システムプロンプトプレビューのアイコン変更)
  • fix 🎨 「システムプロンプト プレビュー」のアイコンを🧠→📝に変更 — 同じ「記憶と知識」カテゴリ内の「長期記憶」セクションと🧠が重複していたため
v1.24.1 2026-09-03
セキュリティレビュー対応・実装バグ8件修正・リアクション/スタンプ合流の安定化
  • fix 🚨 WebUI RPC認証を統一 — 未認証だった約30個の公開関数にトークン検証を追加(opt-in継続、既存ユーザーへの影響なし)
  • fix 🚨 callUserFunction を許可リスト方式に変更 — custom_ プレフィックス限定 + DIAG_TOKEN必須化。【破壊的変更】custom_で始まらない既存のcustom.gs関数は呼べなくなる
  • fix 🐛 キュー処理のスタック判定レース条件を修正 — 長時間キュー滞留後に処理開始したメッセージが誤ってfailed化される問題を修正
  • fix 🐛 LINE Webhook生ボディの8000文字切り詰めを修正 — 大きいペイロードでのJSON破損・ポイズンピル化を解消
  • fix 🐛 WebUI生成画像のBase64直接保存を修正 — Driveアップロード+短い参照形式に変更
  • fix 🚨 sanitize()の過剰削除を修正 — 本文中に複数のアスタリスク囲みがあると返信の大部分が消える重大バグを含む
  • fix 🐛 メール設定の二重管理を修正 — サーバー側スキーマを唯一の定義元に統一
  • fix 🐛 数式インジェクション対策の対象文字に「-」を追加 / RAGキャッシュキー不一致を修正 / local_llmトークン比較をタイミングセーフ化
  • fix 🐛 Slackリアクション/LINEスタンプ直後にチャットすると返信が2件に分かれる不具合を修正 — 一旦バッファし本人の後続メッセージに合流。合流タイミングのレース条件も修正
  • fix 🐛 自撮り画像生成が完全無反応になる不具合を修正 — 日記用のSUB_LLM_ENGINE設定を誤って共用していたのを、画像生成専用のIMAGE_LLM_ENGINEを明示指定するよう修正
  • fix 🐛 自撮り画像に背景が出ない不具合を修正
  • change 📋 利用規約を更新 — 改変・リファクタリング・商用利用は可、ソースコードとしての再配布・再販売は禁止、第三者向けサービス利用時の責任範囲を明記
v1.24.0 2026-09-02
URL共有・LINEスタンプ認識・Slack絵文字リアクション対応
  • feat ✨ URL共有機能 — メッセージ内のURLを検知してページを取得し、タイトル・説明・本文抜粋をLLMに渡してリンクの内容に自然に反応できるように
  • feat ✨ LINEスタンプ認識 — スタンプの意味(keywords)を検知して短く反応。画像と違いその場で即返信
  • feat ✨ Slack絵文字リアクション対応 — LINEスタンプに相当。利用にはSlackアプリ側でEvent Subscriptions(reaction_added購読)+ Bot Token Scopes(reactions:read)の追加設定と再インストールが必要
内部デプロイ v1.24.0.1(2026-09-02・Slackリアクション直後のチャットが二重返信になる不具合を修正)
  • fix 🐛 リアクション直後にチャットすると返信が2件スタックする問題を修正 — リアクションを一旦バッファし、直後のチャットに合流させて1件の返信にまとめる。何も来なければ従来通り単体反応
内部デプロイ v1.24.0.2(2026-09-02・合流のレース修正 + LINEスタンプにも対応)
  • fix 🐛 まれに合流に失敗して2件に分かれる不具合を修正 — 単体発火に最低50秒の待機時間を追加
  • feat ✨ LINEスタンプにも同じ合流の仕組みを適用
内部デプロイ v1.24.0.3(2026-09-02・外部セキュリティレビュー対応 P0 2件 + 実装バグ2件 + 利用規約更新)
  • fix 🚨 WebUI RPC認証を統一 — 約41個の公開関数のうち未認証だった30個にトークン検証を追加(opt-in継続、既存の未設定ユーザーへの影響なし)
  • fix 🚨 callUserFunction を許可リスト方式に変更 — custom_ プレフィックス限定 + DIAG_TOKEN必須化。【破壊的変更】custom_で始まらない既存のcustom.gs関数は呼べなくなる
  • fix 🔧 local_llmのトークン比較をタイミングセーフ化
  • fix 🐛 数式インジェクション対策の対象文字に「-」を追加
  • fix 🐛 RAGエントリのキャッシュキー不一致を修正 — 追加時は大文字小文字違いで実質無効化されておらず、削除時は無効化処理自体が無かった
  • change 📋 利用規約を更新 — 改変・リファクタリング・商用利用は可、ソースコードとしての再配布・再販売は禁止、第三者向けサービス利用時の責任範囲を明記
内部デプロイ v1.24.0.4(2026-09-03・実装バグ指摘の残り4件に対応)
  • fix 🐛 キュー処理のスタック判定レース条件を修正 — processingStartedAt列を新設し、長時間キュー滞留後に処理開始したメッセージが誤ってfailed化される問題を修正
  • fix 🐛 LINE Webhook生ボディの8000文字切り詰めを修正 — イベント単位で個別保存する方式に変更し、大きいペイロードでのJSON破損・ポイズンピル化を解消
  • fix 🐛 WebUI生成画像のBase64直接保存を修正 — Driveアップロード+短い参照形式に変更し、セル文字数上限超過による書き込み失敗リスクを解消
  • fix 🚨 sanitize()の過剰削除を修正 — 箇条書き除去の範囲限定に加え、調査中に発見した重大バグ(本文中に複数のアスタリスク囲みがあると返信の大部分が消える)も修正
  • fix 🐛 メール設定の二重管理を修正 — ハードコードされた設定カードを削除し、サーバー側スキーマを唯一の定義元に統一
内部デプロイ v1.24.0.5〜.8(2026-09-03・Slack自撮りトリガーの実機デバッグで発見した実バグ2件 + 背景なし画像を修正)
  • fix 🐛 画像プロンプト生成失敗時に無反応になる不具合を修正 — callSubLLMが例外を投げずに空応答を返した場合、これまで完全にスルーされていた。失敗メッセージを返すよう修正
  • fix 🚨 自撮り画像生成が日記用のSUB_LLM_ENGINE設定を誤って共用していた問題を修正 — 画像プロンプト作文にIMAGE_LLM_ENGINEを明示指定するよう変更し、日記用に選ばれたモデル(コード特化等)が画像生成に間借りされる設計ミスを解消
  • fix 🐛 自撮り画像に背景が出ない不具合を修正 — 日記画像テンプレートには背景の指示があったが自撮り側には無かったため、背景・構図の指示を追加
v1.23.2 2026-09-02
LINE複数枚画像送信の不具合修正
  • fix 🐛 LINEで複数枚まとめて画像を送ると「画像を受信しました」が枚数分連投される問題を修正 — 数秒以内の連続画像はまとめて1回だけ通知するように変更
  • fix 🐛 画像バッファが日次日記の予定抽出処理と同じ列に書き込まれていた不具合を修正 — タイミングが重なると画像バッファが消え、AIが「画像を確認できませんでした」と返す原因になり得た
  • fix 🔧 LINE画像コンテンツ取得に1回リトライを追加 — 一過性の取得失敗に対する耐性を向上
内部デプロイ v1.23.2.1(2026-09-02・URL共有 + LINEスタンプ認識 + Slackリアクション、main検証中・未検証)
  • feat ✨ URL共有機能 — メッセージ内のURLを検知してページを取得し、タイトル・説明・本文抜粋をLLMに渡してリンクの内容に自然に反応できるように
  • feat ✨ LINEスタンプ認識 — スタンプの意味(keywords)を検知して短く反応
  • feat ✨ Slack絵文字リアクション対応 — LINEスタンプに相当。Slackアプリ側でreaction_added購読の設定が必要
内部デプロイ v1.23.2.2(2026-09-02・スタンプ反応の長文化を修正)
  • fix 🐛 スタンプ・絵文字リアクションの応答が長文になる問題を修正 — reply_length_level設定が優先されていたのを、スタンプ/リアクション由来のメッセージは強制的に最短反応(一言)にするよう修正
内部デプロイ v1.23.2.3(2026-09-02・SlackでURL共有が機能しない不具合を修正)
  • fix 🐛 SlackでURL共有が機能しない不具合を修正 — Slackが`<url|表示名>`形式でURLを配信するため表示名込みで抽出してしまいフェッチに失敗していた。パイプ以降を除外するよう修正
v1.23.1 2026-08-25
WebUIチャットにタイプライター演出を追加
  • feat ✨ WebUIチャットにタイプライター演出 — AIの返信が1文字ずつ表示されるように。文末・読点・改行では自然な間を入れて速度にゆらぎを演出。表示中にバブルをタップすると即座に全文表示にスキップ可能
  • feat ⚙️ タイプライター表示にON/OFFトグルと速度スライダーを追加 — ツールパネルの表示設定から調整可能(右=はやい、左=おそい)。他の表示設定と同様デバイス間で共有される
  • fix 🎨 トグルスイッチの視認性を改善 — ON時のツマミがテーマの配色次第で見えなくなる問題を修正
  • fix ⏱️ 最遅設定で長文の表示に時間がかかりすぎる問題を修正 — 全体の表示時間が長くなりすぎないよう自動調整
v1.23.0 2026-08-20
セキュリティ監査対応
  • fix 🔒 LINE Webhook 署名なしリクエストの認証を強化 — 署名ヘッダーが欠落した場合でも WEBHOOK_ACCESS_TOKEN(Webhook URL に ?token= で埋め込み)で認証するよう変更。setup() が自動生成し、getWebhookTokenInfo() で確認可能
  • fix 🔒 設定画面でのAPIキー・トークンの平文表示を廃止 — 保存済みの値はマスク表示に変更。未編集のまま保存しても値は保持される
  • feat 🔒 WebUI保存操作にアクセストークン認証を追加 — WEBUI_ACCESS_TOKEN 設定時、設定保存リクエストにトークン検証を必須化
  • fix 🔒 各種トークン比較をタイミングセーフ化
  • fix 🟡 スプレッドシート数式インジェクション対策 — メッセージ本文が = 等で始まる場合に無害化して記録
  • fix 🟡 シミュレーターへの遷移リンクのオープンリダイレクトを修正 — 相対URLのみ許可
  • feat ✨ さくらエンジンでの画像入力に対応 — 従来は画像を送ると常に Gemini にフォールバックしていたバグを修正。設定でON/OFF可(既定OFF)
  • change 📋 channel_merge 設定にシングルユーザー専用の注意書きを追加
v1.22.2 2026-08-19
セキュリティ強化・シミュレーター独立URL化
  • fix 🔒 DIAG_TOKEN・生成ログのログ出力を廃止 — StackDriver(Logging) へのトークン永続残留を防止。トークン確認は getDiagToken() の戻り値で行う形式に変更
  • fix 🔒 doPost の webhook 生bodyログを DEBUG フラグ制御に変更 — ユーザーメッセージを含むペイロードのログ出力(PII)を防止。本番ではリクエスト長のみ記録
  • fix 🔒 トークン比較をタイミングセーフ化 — ?page=diag / ?page=custom / ?page=test のトークン検証を _safeTokenEqual()(定数時間比較)に変更し、タイミング攻撃の余地を除去
  • feat ✨ 寂しさゲージシミュレーターのリンクを GitHub Pages 独立URL化 — 設定UI「困った→寂しさゲージ」が GAS 本体の ?page=simulator 依存から独立した公開URLに変更。匿名アクセス不可の環境でも開けるようになり、CONFIG["simulator_url"] で独自URLに上書き可能
v1.22.1 2026-07-31
日記画像生成バグ修正
  • fix 🔧 日記画像が添付されない問題を修正 — シーン抽出で SUB_LLM_ENGINE(Kimi-K2.7-Code)が使われ空テキストを返していた問題を修正。IMAGE_LLM_ENGINE を使用
v1.22.0 2026-07-31
さくらのAIクラウド モデル更新
  • feat ✨ さくらのAIクラウド モデル追加 — preview/Kimi-K2.7-Code, preview/Qwen3.6-35B-A3B, preview/gemma-4-31b-it を追加
  • change 🗑️ さくらのAIクラウド モデル削除 — Qwen3-Coder-480B, Qwen3-Coder-30B を削除(2026-07-21 で提供終了)
v1.21.4 2026-07-12
経過時間バグ修正
  • fix 🔧 経過時間表示でReferenceErrorを修正 — state変数が未定義だった問題を修正。userIdから直接user_stateシートを参照して経過時間を計算
v1.21.3 2026-07-12
経過時間表示の改善
  • fix 🔧 システムプロンプトに「経過時間」を追加 — {userName}が最後に送信してからXXX分経過していますをtimeBlockに注入。AIが「長時間無視された」と誤認識する問題を改善
v1.21.1 2026-07-12
OpenAIモデルフィルタ改善
  • fix 🔧 OpenAIモデル一覧を gpt-数字 のみにフィルタ — ドロップダウンが gpt-image-* / gpt-realtime-* / gpt-audio-* で溢れるのを修正。gpt-4o, gpt-5, gpt-5.6-* 等のテキストモデルのみ表示
v1.21.0 2026-07-08
新機能:ユーザー定義関数ディスパッチャ(callUserFunction / ?page=custom)
  • new ✨ callUserFunction ディスパッチャ追加 — ユーザーが custom.gs に定義した関数を名前で呼べる汎用エントリ。LINORIN.js をバージョンアップで上書きしても、呼ばれる関数は custom.gs に残りカスタマイズが消えない
  • new ✨ ?page=custom エンドポイント — URL から自作関数を叩ける(?page=custom&name=FUNC&args=JSON&token=DIAG_TOKEN)。ブックマーク/curl/IFTTT 等の外部連携に
  • fix 🔒 予約関数ブラックリスト — 本体の重要関数(doGet/setup/callLLM 等)の誤呼び出しを防止
v1.20.13 2026-07-07
性能改善:WebUIポーリング最適化(タブ間排他・バックグラウンド停止)
  • change ⚡ ポーリング間隔を可変化 — 新着取得を「30秒固定」から「平時90秒 / 送信後5秒(最大60秒)」に変更。1日の実行回数を約1/3に削減しつつ、送信後の応答遅延を最悪30秒→5秒に短縮
  • change 🔧 複数タブのポーリング重複を解消 — localStorageでリーダー選出(heartbeat方式)。複数タブを開いてもAPIを叩くのは1タブのみ、新着は storage イベントで全タブに配信
  • change 🔋 バックグラウンド時のポーリング停止 — タブ非表示時は停止してリーダーを解放、復帰時に即ポーリングで未読を取得
  • change 🔧 バージョンチェックを時間ベース化 — 「ポーリング10回に1回」を「5分ごと」に変更(間隔が可変になったため)
  • change 🔧 日次リセット時刻を設定化 (1.20.13.1) — dailyReset トリガー時刻が atHour(17) ハードコード(setup() 再実行で手動変更が消える問題あり)だったのを config daily_reset_hour(デフォ17)参照に変更。設定UIから変更可能に
  • fix 🐛 日次リセット時刻の空文字フォールバック修正 (1.20.13.2) — daily_reset_hour 未設定(空文字)時に Number("")===0 で0時トリガーが作られる問題を修正。空文字/未設定/範囲外は17時にフォールバック
v1.20.12 2026-07-01
バグ修正:連続プッシュ防止(updateUserState デッドロック修正)
  • fix 🐛 連続プッシュを引き起こすデッドロックを修正 — scheduledCheck() が ScriptLock を保持した状態で updateUserState() が同じロックを取得しようとして10秒タイムアウト後に何も更新せずリターン。lastInteraction が更新されずプッシュが連続発火していた問題を修正
  • fix 🐛 プッシュ後クールダウンを確保 — デフォルト設定で lastInteraction が now-silenceMin に設定されており即再プッシュ可能な状態だった。retention=0 のとき lastInteraction=now とすることで silence_threshold_min 分間のクールダウンを確保
v1.20.11 2026-06-28
バグ修正:AI返信の先頭欠損 + 二重プッシュ防止
  • fix 🐛 AI返信の先頭文字が欠損する問題を修正 — 「3日後また来るね」→「日後また来るね」のように数字・記号始まりの返答の先頭が消えていた問題を修正。英字が含まれる場合のみ除去するよう条件を改善
  • fix 🐛 二重プッシュの防止強化 — GASの並行トリガー実行で同一メッセージが2回送信されるケースを、スクリプトロック追加で解消
v1.20.10 2026-06-22
直前発言削除機能 + 「感情の深み」廃止
  • new ✨ WebUI: 直前の発言を削除 — ツールパネルに削除ボタンを追加。最後のユーザー発言とAI応答をペアで conversation_logs から削除(確認ダイアログ付き)
  • chore 🗑 「感情の深み」(add_emotion) を廃止 — AI自己記憶機能が代替するため削除。既存ユーザーの設定値はエラーなく無視されます
v1.20.9 2026-06-19
バグ修正・パフォーマンス改善・セキュリティ強化
  • fix 🐛 正規表現バグ修正 — 誕生日/記念日/行事のイベント移動判定でマッチしない不具合を修正
  • fix 🐛 getCONFIG() 重複呼び出し削除 — 日記ジョブ処理の無駄な2回呼び出しを修正
  • perf ⚡ row-by-row setValue をバッチ化 — 6箇所で getRangeList/setValues に変更、データ量増加時のパフォーマンスを改善
  • perf ⚡ processQueue ロック TTL を 30s → 120s に延長 — Thinking モデルの応答時間に対応
  • new 🔒 WebUI アクセストークン認証(オプション) — ScriptProperties に WEBUI_ACCESS_TOKEN を設定すると WebUI に ?token=... が必要に。未設定なら従来通り
  • fix 🔒 config_ui XSS エスケープ追加 — バックアップエクスポートのファイル名表示に escapeHtml() 追加
  • chore 🧹 var → const/let 統一、"Asia/Tokyo" を TZ 定数化(29箇所)
v1.20.8 2026-05-28
LINE プッシュ通知・診断/テスト機能のバグ修正(5件)
  • fix 🐛 LINE Push が届かない根本原因を修正(channel_merge=ON 時) — channel_merge=ON のユーザーで LINE Push が一切届かない不具合を修正。getCONFIG() が統合時に webui_user_id を先頭の LINE userId で上書きするため、scheduledCheck の WebUI スキップ判定が LINE ユーザーを WebUI ユーザーと誤認して Push をブロックしていた。WebUI スキップ guard を channel_merge=OFF 専用に変更(統合時は getAllUserStates が localuser 行を除外するため二重 Push の懸念なし)
  • fix 🐛 プラットフォーム状態確認・プッシュテストの設定キー名を統一 — 診断/テスト関数の LINE トークンキー名が送信関数と不一致(LINE_CHANNEL_ACCESS_TOKEN)だったため、正しく入力しても「未設定」と表示されていた。送信関数と同じ LINE_ACCESS_TOKEN に統一
  • fix 🐛 LINE トークン検証 API を正しいエンドポイントに変更 — LINE Login 用の /v2/oauth/verify を使っていたため Messaging API の Channel Access Token を検証できず「NG(unknown)」になっていた。/v2/bot/info(Bearer 認証)に変更し、成功時は bot の @ID を表示
  • fix 🐛 プッシュテストの LINE 送信が実際には送られていなかった不具合を修正 — 存在しない設定キー LINE_USER_ID を参照しており常に静かにスキップされていた(「LINE: OK」はトークン確認の結果で実送信ではなかった)。getAllUserStates() で user_state の LINE ユーザーを取得し、各ユーザーへ実際に Push して結果を表示するよう変更
v1.20.7 2026-05-19
サイコロ間隔リネーム + シミュレータ大幅改善
  • change 🎲 「確率割り算」→「サイコロ間隔(分)」にリネーム — 「N分に1回だけサイコロを振る」という直感的な意味に再定義(数学的には旧仕様と等価)。max値も 20→60 に拡張。既存設定値はそのまま動作
  • feat 📊 寂しさゲージシミュレータ大幅改善 — オレンジ点線で「累積期待発火回数」可視化 / 「期待1回」水平線 / X軸を 0-24h 固定 + 6h刻みラベル / 「話しかけ開始」紫縦線追加 / 統計欄に「期待発火/周期」追加
  • feat 🏷 モデル未更新時のフォールバック表示 — 初回セットアップ時などモデル更新未実行の場合、モデル選択プルダウンが空になっていた問題を改善。空の場合は案内メッセージと gemini-flash-latest サンプルを表示
  • feat 🧪 Gemini 生レスポンステスト追加 — 設定画面の個別診断ツールに追加。Gemini APIを直接叩いて生JSONレスポンスを表示し、API側の問題を証明できる
v1.20.6 2026-05-16
Push 2連発の不具合を本修正
  • fix 🐛 channel_merge=ON 時に localuser と外部チャネル両方からPushが発火する不具合を修正 — channel_merge=ON のユーザーは user_state の localuser 行と外部チャネル(Slack/LINE等)行の両方が「必ず話しかける時間」到達時に push 発火していた。「ほぼ同時刻に2通」「数十分ずれて2通」両方の症状の根本原因。WebUIはプル型なので localuser 行からの外部 Push を常にスキップするよう修正
v1.20.5 2026-05-16
Push 2連発の不具合修正(dedup版) + トリガー稼働診断ツール
  • fix 🐛 Push が同時刻に2連発する不具合を修正(防御的) — user_state シートに同一userIdの行が複数あった場合に同時刻に Push が2通届くケースに対する防御策。重複行を自動で排除
  • fix 🐛 必ず話しかける時間で force_next_push が余計に立つ不具合を修正 — 例外時に二重発火するリスクを低減
  • feat ⏰ トリガー稼働状況の診断ツール — 「困ったタブ」に新ボタン。scheduledEveryMinute のハートビートをチェックして HEALTHY / SLOW / BROKEN / MISSING を判定。権限切れによるサイレント停止を一発で検知
v1.20.4 2026-05-14
Geminiモデル選択の整理 + 日記AIのドロップダウンフィルタ
  • fix Geminiモデル一覧から非テキストモデルを除外 — テキストLLM用ドロップダウン(メイン / フォールバック / 日記用)から画像生成・動画・音楽・TTS・埋め込み・ロボティクス・Computer Use・Deep Research などを自動除外
  • fix 「[有料]」ラベル判定 — gemini-2.5-pro-preview-* など preview / latest 接尾辞付きのproモデルも正しく有料扱いに
  • change モデル並び順を整理 — 無料グループ→有料グループ、各グループ内はバージョン降順→variant(pro>flash>flash-lite>gemma)→安定版優先→日付降順
  • feat 無料/有料フィルタの動的反映 — GEMINI_FREE_TIER_ONLY トグルがページリロードだけで即反映(モデル再取得不要)
  • feat 日記・記憶用AIのドロップダウンフィルタ — エンジン選択に応じて関係ないサブモデル欄を自動で隠す(空欄=メインと同じなら全部非表示)
  • change Gemini essentials を最新化 — gemini-3-pro / gemini-3-pro-preview / gemini-3-flash を追加
v1.20.3 2026-05-14
プラットフォーム状態確認を「困ったタブ」に追加
  • feat 「困ったタブ」に プラットフォーム状態確認 追加 — Slack / LINE / Telegram のBOT状態を診断ボタン1つで確認
v1.20.2 2026-05-14
プラットフォーム状態確認 + Slack送信テスト
  • feat Slack / LINE / Telegram の状態確認 — WebUIツール画面から各プラットフォームのBOTトークン有効/無効をワンクリックで確認
  • feat LINE送信テスト(push API)とTelegram送信テスト(sendMessage API)を実装
  • fix 「返事が来ない診断」キュー状態判定改善 — queued:3件以下をOKに
v1.20.1 2026-05-14
Slack送信テスト + デバッグ改善
  • feat WebUIツール画面に Slack送信テスト を追加 — BOTインストール状態(auth.test)とメッセージ送信をワンクリックで確認
  • fix Slack送受信のデバッグログ追加(doPost / handleSlackEvent / チャンネル不一致)
  • fix 日記生成プロンプトの自己記憶ラベル改善 — 「客観的な情報」と「自意識の記録」を明確に分離
  • fix Slack送信テストのエラー出力改善 — 設定不足や誤りがある場合、出力できる情報を使って詳細なエラーを表示
v1.20.0 2026-05-12
AI自己記憶システム + モデルフィルタ改善
  • feat AI自己記憶(ai_long_memory) — 日記からAI自身の経験・感情・成長を自動記録し、system promptに注入
  • feat 日記生成プロンプトに自己記憶セクション追加 — AIが過去の自分を振り返りながら日記を書く
  • feat user_stateシートS列(col 19)にAI記憶を保存、dailyReset時に全ユーザー分自動生成
  • fix さくらのAIクラウド モデル更新 — Kimi-K2.5 → Kimi-K2.6
  • fix スタンドアロンスクリプト対応 — getLinorinSS() ヘルパー追加
  • fix TTS/画像生成モデルフィルタ — エンジン別完全分離
  • fix ID照合のString()化、ヘッダーmigration修正、memoryBlock undefined連結修正
v1.19.3 2026-05-11
大規模バグ修正 + モデルフィルタ改善
  • fix shouldPush() 未定義変数(boostMin/boostMax/curvePower/lonelyFactor/probDivisor)修正
  • fix 日記画像生成 — callSubLLM の不適切レスポンスフィルタリング + フォールバック追加
  • fix secret_spice Base64文字化け → 生UTF-8テキスト化(Claude NG判定問題対応)
  • fix Gemini Imagen API — :predict エンドポイント + レスポンス形式修正
  • fix TTSモデルフィルタ — エンジン別(OpenAI/Grok/Gemini)完全分離
  • fix 画像生成モデルフィルタ — エンジン別(ChatGPT/Grok/Gemini)完全分離
  • fix linorin_src/ 二重定義 — .claspignore 追加 + GASから10ファイル削除
  • fix セットアップウィザード — ScriptProperties: .env + clasp push 方式に変更
  • fix セットアップウィザード — WebアプリURL抽出に clasp deployments fallback追加
  • fix add_emotion — 「いのちの電話禁止」指示削除(Claude NG判定問題対応)
v1.19.2 2026-05-11
セットアップウィザード追加
  • feat linorin_wizard/ 追加 — Python標準ライブラリのみで動くセットアップウィザード(python -m linorin_wizard wizard)
  • feat status コマンド — 全コンポーネントの健康状態をチェック
  • feat デプロイID自動保存 — 初回デプロイ時にデプロイIDを .linorin_deploy.json に保存し、追記デプロイ時に -i オプションを案内
  • feat Windows/mac 両対応
不具合修正
  • fix shouldPush() 未定義変数(boostMin/boostMax/curvePower)修正
  • fix 日記画像生成 — callSubLLM の不適切レスポンスフィルタリング + フォールバック追加
  • fix secret_spice Base64文字化け → 生UTF-8テキスト化(Claude NG判定問題対応)
  • fix Gemini Imagen API — :predict エンドポイント + レスポンス形式修正
v1.19.1 2026-05-10
LINE画像送信修正
  • fixuploadLineImageToDrive の関数名修正(getWorkspaceFolder() → getLinorinWorkspace())
  • fixLINE_IMAGE_FOLDER_ID 設定不要に(LINORIN_Workspace/images を自動作成)
  • fixpush-test LINEフィルタをuserId長さ判定(33文字=LINE)に変更
  • featsendTelegramImage 関数追加、画像生成トリガー/push-testでTelegram画像送信対応
  • choreSlack画像送信を files.getUploadURLExternal → upload → files.completeUploadExternal のv2フローに正式移行
v1.19.0 2026-05-10
自撮り画像生成 機能強化
  • new画像生成プロンプト作成時に直近24時間の会話を参照(毎回同じような画像になる問題を解消)
  • new「照れてる」「恥ずかしい」などの感情・ムード指定を画像生成に反映
  • improveSlackの画像送信にfiles.upload(multipart/form-data)を使用するように復旧
  • newpush-testに画像生成テストを追加(生成+全プラットフォーム送信)
LINE画像生成修正
  • fixLINE Messaging APIはdata URL非対応のため、Google Driveにアップロードして公開URLで送信する方式に変更(LINE_IMAGE_FOLDER_ID にフォルダIDを設定)
画像生成会話ログ修正
  • fix画像生成トリガー時にAI返答がconversation_logsに保存されていなかった問題を修正(全プラットフォーム対応)
Gemini TTS修正
  • fixGemini TTSモデルフィルタを /^gemini.*tts/ に変更し、TTS対応モデルのみ抽出
  • improve_callGeminiTTS_ にデバッグログ追加
内部改善
  • choreSlack画像送信を files.getUploadURLExternal → upload → files.completeUploadExternal のv2フローに正式移行
  • choreデバッグログ強化(画像トリガー/Slackハンドラ/TTS)
  • choreINTERNAL_VERSION管理改善(checkVersion で内部バージョン変更も検出)
v1.18.3 2026-05-08
画像生成機能強化
  • new自撮りトリガー単語を設定から変更可能に(IMAGE_GENERATION_TRIGGER_WORD、正規表現対応)
  • new画像生成時のデフォルト台詞を設定可能に(IMAGE_GENERATION_DEFAULT_MESSAGE)
  • improve自撮りトリガー時、サブLLMが画像プロンプトと同時にキャラクターの台詞を生成
  • improve画像生成プロンプト作成時に直近24時間の会話を参照してバリエーションを出すように改良(毎回同じような画像になる問題を解消)
  • improve「照れてる」「恥ずかしい」などの感情・ムード指定を画像生成に反映
  • fix自撮りトリガー時にWebUIではなくSlackに画像を送信するように修正
  • fixLINE画像生成:LINE Messaging APIはdata URL非対応のため、Google Driveにアップロードして公開URLで送信する方式に変更(LINE_IMAGE_FOLDER_ID にフォルダIDを設定)
  • newsendSlackImageにデバッグログ追加(Slack画像送信トラブルシューティング用)
寂しさゲージ / app_url 修正
  • fixキューエラー自動クリア時に force_next_push フラグが残留して深夜Pushする問題を修正
  • fixscheduledCheck()/processQueue() の user_state 読み書き競合を LockService で保護
  • fix_autoUpdateDeployedUrl が app_url を自動上書きする問題を修正 — 設定済みのURLを保護
  • fix?page=config 直接アクセスと buildConfigHTML() で {{SIMULATOR_URL}} テンプレート置換漏れを修正
  • fixCacheServiceの1時間キャッシュによる古い値の読み込み問題を、手動クリアエンドポイントで対応
画像生成バグ修正
  • fixGrok APIで画像生成が常に失敗する問題を修正 — _callOpenAICompatImage_ が送信する size パラメータをGrok APIには送らないように修正
Webチャット AI音声読み上げ
  • newTTSエンジン対応(OpenAI / Grok / Gemini) — TTS_ENGINE で選択、TTS_MODEL、TTS_VOICE で設定
  • newWebチャットのAIメッセージに🔊再生ボタン、ツールパネルにON/OFFトグル追加
  • new「困った」タブに音声生成テストボタン追加(生のHTTPエラー表示付き)
  • improveトグルONで新着AIメッセージを自動で音声化
チャット画像共有修正
  • fix画像生成結果が「[画像]」テキストのみ表示される不具合を修正 — Slackはfiles.upload APIで画像アップロード、WebUIはbase64画像データを会話ログに埋めてインライン表示
ビルド改善
  • chorepush-testの llm_reply が [object Object] になる問題を修正
  • chore.claspignore 追加でpush対象ファイルを限定(docs/, debug_tools.js, changelog.html 等を除外)
v1.18.2 2026-05-05
寂しさゲージ リンク修正
  • fixconfig_uiからシミュレーターへの遷移を target="_blank" で新ページ開くに変更
  • fixsrcdoc iframe 内の location 参照によるクロスオリジンエラーを解消
  • fix?page=config 直接アクセスと buildConfigHTML() で {{SIMULATOR_URL}} テンプレート置換漏れを修正
  • fix_autoUpdateDeployedUrl が app_url を自動上書きする問題を修正 — 設定済みのURLを保護
  • fixCacheServiceの1時間キャッシュによる古い値の読み込み問題を、手動クリアエンドポイントで対応
ビルド改善
  • chore.claspignore 追加でpush対象ファイルを限定(docs/, debug_tools.js, changelog.html 等を除外)
v1.18.0 2026-05-05
寂しさゲージ 可視化ツール
  • feat?page=simulator で寂しさゲージの確率カーブをリアルタイム可視化
  • feat鋸のこぎり波パターンで Push→リセット→再上昇 のサイクルを確認
  • feat設定画面からワンクリックでアクセス可能
確率割り算
  • featlonely_probability_divisor 追加(デフォルト1、範囲1-20)
  • feat確率を割り算で下げられる — 寂しがり度が低い場合の調整が容易に
v1.17.1 2026-05-04
Bug Fix
  • fix深夜の自発Pushが時間帯重み0でも発火する問題を修正 — force_next_push フラグが時間帯重みチェックをバイパスしていたため、夕方に確率が当たると深夜にPushが発火する問題を解消
  • fixloadAllConfig で数値0が空文字列に変換される問題を修正 — String(v || "") で v=0 のとき "" になっていたため、weight_night などの数値設定が空文字列として保存されていた問題を解消
v1.17.0 2026-04-29
DeepSeek 安定化
  • fixDeepSeek thinkingモードの明示的制御 — APIデフォルトがONのため、OFF時に明示的にdisabledを送るように修正
  • fixフォールバックモデルリストから旧モデル名を削除
日記・会話ログ改善
  • fix過去日記のuserId合算 — LINE+WebUI両方の会話ログを参照するように修正
  • fix日付フィルタの安定化 — 日付比較が不安定だった問題を修正
UI修正
  • fixバブル文字色リロード修正 — 画面リロード時にバブル文字色が白にリセットされる問題を解消
Bug Fix (v1.17.0.1)
  • fixヘルスチェック user_state エラー修正 — _migrateUserStateHeaders_ が undefined.length でクラッシュする問題を解消
  • fix日付指定日記の stale ジョブ自動クリア — 失敗した日記ジョブが残り「既に生成中」になる問題を解消
  • fix日記通知のロール修正 — 日記の成功・失敗メッセージを role: "system" に変更し会話履歴から除外
  • feat「困った」タブに「日記の生成情報をクリア」ボタンを追加
v1.16.19 2026-04-28
New Feature
  • featDeepSeek API 対応 — LLM_ENGINE に「DeepSeek」を追加。OpenAI 互換 Chat Completions API で通信
  • featDeepSeek 推論モード — thinking: enabled + reasoning_effort: high に対応
  • feat動的モデル取得 — /models API からモデル一覧を自動取得。到達不能時はフォールバック
Bug Fix
  • fix過去日記の会話参照修正 — AI側の発言が会話ログに含まれておらず、日記内容が貧弱になっていた問題を解消
  • fix日記生成のデフォルトAI修正 — 設定画面の「日記・記憶用AI」を尊重するように修正(以前は Gemini 固定だった)
Improvement
  • change日記・記憶用サブAIにも DeepSeek を選択可能に
  • changeテラリウムボット設定に DeepSeek エンジンを追加
v1.16.18 2026-04-25
New Feature
  • featシャドウ強度スライダー追加 — チャットUI・設定UIにシャドウ強度スライダー(0〜100%)を追加。箱影と文字シャドウを一元制御
Bug Fix
  • fixメール通知のタイミングプルダウン修正 — オプションラベルが逆になっていた問題を修正
  • fixシャドウ設定の残存参照修正 — applyShadowToggle() → applyShadowIntensity()
  • fixプッシュが来ない診断のシート読み込みエラー修正 — getAllUserStates() に変更
  • fix日記ができない診断のDriveフォルダチェック修正 — getDiaryFolder() の実行チェックに変更
Improvement
  • change「困った」タブのボタンデザイン修正 — 背景色を var(--accent) に変更
  • changeAPIキー診断に grok/openrouter/glm/sakura を追加
  • changeforce-pushツールで processQueue() を即実行
  • changedoGet ルーティングに diag ターゲットを追加
  • changeGemma 4 reasoning→content merge — reasoning_only出力時にreasoningをcontentにマージ
  • changelocal_llm_settings.html 削除 — Mac側自動更新のため不要に
  • changelocal_llm.js 簡素化 — sidebar/UI関連関数全て削除
v1.16.17 2026-04-24
Important Fix
  • fixuserStateMap ビルドエラー修正 — processQueue() 内の userStateMap 構築で undefined.length エラーが発生する問題を修正
  • fixキュー滞留自動処理 — silence_threshold_min を超えたキュー滞留メッセージは force_next_push を自動セットし、次の processQueue() で処理されるように修正
UI Improvement
  • featシャドウ強度スライダー追加 — チャットUI・設定UI両方にシャドウ強度スライダー(0〜100%)を追加。箱影と文字シャドウの両方を一元制御
  • fixメール通知のタイミングプルダウン修正 — オプションラベルが逆になっていた問題を修正。「オフ」「リアルタイム」に修正
Diagnostic Tool Fix
  • fix「困った」タブのボタンデザイン修正 — 背景色をaccentカラーに変更し、セクションと区別しやすく修正
  • fixAPIキー診断にgrok/openrouter/glm/sakuraを追加 — LLM_ENGINE=grokなどを選択中に「APIキー: 未設定」と誤表示される問題を修正
  • fixforce-pushツールでprocessQueueを即実行 — 「今すぐ話しかける」実行後、キューの処理が次のトリガー待ちになっていた問題を解消
Diagnostic API Fix
  • fixdoGet のルーティングに diag ターゲットを追加 — ?page=diag&target=no-reply などが runDiag()/runTool() を呼ぶように修正
Diagnostic Tool Fix
  • fixプッシュが来ない診断のシート読み込みエラー修正 — getSheet('user_state') の直接読み込みを getAllUserStates() に変更し、空シート時のエラーを解消
Config UI Fix
  • fixシャドウ設定の残存参照を修正 — applyShadowToggle() を applyShadowIntensity() に変更し、ページ読み込みエラーを解消
Diagnostic Tool Fix
  • fix日記ができない診断のDriveフォルダチェック修正 — CONFIG['diary_folder_id'] の直接チェックを getDiaryFolder() の実行チェックに変更
v1.16.16 2026-04-24
Important Fix
  • fix返信遅延ロジック修正 — reply_loneliness_mode=TRUE 時、寂しさゲージ落選はランダム遅延を設定せずキューに残留し、次ループで再判定。これで「寂しさゲージで当選するまで待機」する挙動に
  • fixPush 抑制ロジック強化 — scheduledCheck() が EventQueue の scheduledAt=0(寂しさゲージ待機中)も検知し、Push を抑制
  • fixv1.16.16.2 — processQueue() 内の getSheet("user_state") → getUserStateSheet() 修正。_migrateUserStateHeaders_() で undefined.length エラーを修正
  • fixv1.16.16.2 — silence_threshold_min を超えたキュー滞留メッセージは force_next_push を自動セットし、次の processQueue() で処理されるように修正
  • fixv1.16.16.2 — runDiag() と runDiagFromUI() に user_state (アンダースコア) ルーティングを追加
Feature
  • feat「困った」タブに実行コマンドを追加 — 💬 今すぐ話しかける、📔 日記を生成、🧠 記憶を整理、🔄 全エンジン・モデルを更新
  • featリリースノートリンク追加 — GitHub Pages へのリンクを「困った」タブに追加
UI
  • ui「外観」タブにメール通知設定を復活 — ブラウザ画面設定の下に配置
  • ui「他」タブにバックアップ設定を移動 — メンテナンスセクションに配置
v1.16.15 2026-04-24
Feature
  • feat困ったタブを追加 — 設定画面に「困った」タブを追加、診断ツールをまとめ
  • feat症状から診断 — 「返事が来ない」「プッシュが来ない」「日記ができない」の 3 症状に対応
  • feat個別診断ツール — ヘルスチェック(11 項目)、キュー詰まり解除、全プラットフォーム送信テスト
Fix
  • fixv1.16.15.3 — 寂しさゲージ統合。自発 Push も返信も同じ寂しさゲージ確率で判定、当選時は `force_next_push=true` をセットして統一処理
  • fixv1.16.15.2 — 返信遅延・寂しさゲージ設定修正。`_calcLonelinessDelayMin_` のデフォルト値を修正(silence_threshold_min: 240 分、lonely_ceiling_min: 1440 分)
  • fixv1.16.15.1 — 寂しさゲージ設定反映。返信遅延に `silence_threshold_min` を使用
v1.16.14.5 2026-04-24
Fix
  • fixConfig UI 説明文を修正 — reply_loneliness_mode の説明を「OFF は返信遅延・上限で動作」に修正
v1.16.14.3 2026-04-24
Fix
  • fixConfig UI 説明文を修正 — reply_delay_max_min と reply_loneliness_mode の説明を、実際の挙動と一致するよう修正
v1.16.14 2026-04-23
Important Fix
  • fix返信遅延ロジックの分離 — ユーザーメッセージへの返信は reply_delay_max_min でランダム遅延、自発 Push は寂しさゲージで制御。両者の影響を完全分離し、設定が意図通りに動作するよう修正
Feature
  • feat返信遅延ロジックの見直し — ユーザーの返信遅延設定を再評価し、より自然な応答リズムに調整
  • featWebUI シャドウ効果トグル — 外観設定からシャドウの表示/無効を切り替え可能に。無効にすると描画をオフにして軽量化
v1.16.13 2026-04-23
Important Fix
  • fix返信遅延が効いていない問題を根本修正 — scheduledCheck の遅延中判定で ISO 文字列を Number() で変換し NaN 化していたバグを修正、_calcLonelinessDelayMin_ のデフォルト補正を削除し reply_delay_max_min=0 が即返信として機能するよう修正
Bug Fix
  • fixprocessQueue シート名タイポ修正 — getSheet("user_states") → getSheet("user_state")、ユーザー状態取得できず寂しさゲージ機能していなかった問題を解消
  • fix返信遅延上限の自動補正 — reply_delay_max_min が 0 または空欄でも、寂しさゲージ ON 時はデフォルト 10 分を自動適用、Slack 即時返信問題を解消
  • fixevent_queue カラム定義更新 — scheduledAt 列を正式に追加、遅延時刻を安全に保存
  • fixキュー詰まり検知に scheduledAt チェック追加 — 遅延待ちのメッセージをスタックと誤認しないよう除外
  • fixスプレッドシート指数表記丸め修正 — scheduledAt を ISO 文字列で保存し、13 桁ミリ秒数値の指数表記変換による精度劣化を防止
  • fixuserStateMap 重複保護 — ユーザー状態マップ構築時に重複行をスキップし、常に最新の行を優先して読み込み
Feature
  • feat設定 UI 説明文を改善 — reply_delay_max_min と reply_loneliness_mode の説明を誤解を招かない表現に修正
v1.16.11 2026-04-22
Bug Fix
  • fixSlack/LINE source 形式を修正 — オブジェクト→文字列「user」に変更、conversation_logs 未記録・Push 未発生問題を解消
  • fixPush 時の system ログを削除 — __LONELY_EVENT__ 時のログが trimConsecutiveAiMessages を阻害し、AI が連続 Push を認識できない問題を解消
  • fixchatWebUITemp の重複コード削除 — 一時セッション関数終了後に重複コードが残留し SyntaxError: Illegal return statement を発生していた問題を修正
v1.16.10 2026-04-22
Bug Fix
  • fixbuildMetadata 状況認識を根本修正 — 「あなたが返事をしていない時間」と「ユーザーから返事がない時間」を出し分け
  • fixtrigger-check 診断API の isEnabled() エラーを修正 — 存在しないメソッドを削除
v1.16.9 2026-04-22
Bug Fix
  • fixprocessQueue 返信遅延ロジックを正常化 — reply_loneliness_mode=TRUE で _calcLonelinessDelayMin_() を使用
  • fixbuildMetadata() の silenceHours 計算を修正 — AI/ユーザー最終発言の新しい方を基準に経過時間
  • fixPush 時会話履歴取得範囲を拡張 — 最低 24 時間分を取得
  • fixhandleMessage 競合ロックの例外処理を改善 — ロック競合時に例外スローしキューを queued に戻す
  • fixscheduledCheck pendingUserIds 判定を厳密化 — scheduledAt(列 13)で遅延待機中を判定
v1.16.8 2026-04-21
Bug Fix
  • fixチャネル統合:user_states 重複行を根本解消 — getAllUserStates() にデデュプリケーションロジックを追加
v1.16.7 2026-04-21
Bug Fix
  • fixチャネル統合時 Push 通知:LINE 未配信バグ修正 — platformOrigin="webui" の行を完全にスキップ、重複実行を防止
v1.16.6 2026-04-21
Bug Fix
  • fix日記 PDF 生成:LLM 出力の末尾 "---" / "Written by" を安全に除去 — replace から lastIndexOf + substring に変更、本文中の誤爆防止
v1.16.5 2026-04-20
Feature
  • featLLM エンジン別 推論モード制御 — Gemini/OpenAI/Anthropic/OpenRouter 各エンジンの思考プロセス(Chain of Thought)出力を ON/OFF 可能に
  • featWebUI 思考プロセス表示 — 思考プロセスをアコーディオン UI で表示。普段は隠れていて、クリックすると展開可能
Improvement
  • changeCONFIG 追加:GEMINI_THINKING, OPENAI_THINKING, ANTHROPIC_THINKING, OPENROUTER_THINKING
  • changecallLLM 系関数更新:各モデルの thinking/reasoning パラメータに対応
  • changesanitize 関数強化:英語思考プロセス・メタテキスト(Draft/Plan/Analysis)を自動除去
  • changechat_ui.html 更新:renderMessageHtml 関数で思考プロセスを自動検出し <details> タグで表示
Bug Fix
  • fixAnthropic 温度パラメータ:Claude 3.7+ の思考モード有効時は temperature を送信しないように修正
  • fixOpenAI 推論モデル:o1/o3-mini で temperature が無効な問題に対応
  • fix一時チャット表示バグ:一時セッション中にメッセージが表示されない問題を修正
v1.16.3 2026-04-19
Improvement
  • changeスロット抽選ロジック削除 — ユーザーメッセージに対する「即返信/遅延返信/既読スルー」抽選を削除。すべての返信を自発 Push のタイミングに統一
  • changePush ロジックへの統一 — ユーザーメッセージ到達時は会話ログ記録 + lastInteraction 更新のみ実行。返信は scheduledCheck の孤独度判定に委ねる
Bug Fix
  • fix寂しさゲージ遅延が効いていない問題を根本修正 — スロット抽選により常に最大遅延が適用されていた問題を、Push ベース返信へ統一することで解消
v1.16.2 2026-04-17
Bug Fix
  • fixPush 通知が Slack/LINE ユーザーに送信されない問題を修正 — isWebuiUser 判定を MESSAGING_PLATFORM === "webui" の場合のみに制限
Internal
  • v1.16.1.x の累積修正を正式リリース(遅延ロジック・日記生成・スロット返信・署名二重出力など)
v1.16.1 2026-04-17
Bug Fix
  • fixユーザーメッセージが競合ロックで消滅する問題を修正 — throw Error でリトライさせるように変更
  • fix遅延 0 設定でも 1 分遅延する問題を修正 — 0 分を許容するように計算式を修正
  • fix日記生成でサブ AI エンジンが使用されない問題を修正 — OpenRouter keyCheck を改善し SUB_OPENROUTER_MODEL 対応
  • fix寂しさゲージによる遅延が効いていない問題を修正 — _calcLonelinessDelayMin_ の Math.max(1,...) 除去、孤独度に応じた遅延を有効化
  • refactor寂しさゲージ遅延ロジック統一 — Push/返信を共通関数に統合、低孤独度時は「次の Push まで待機」を実装
  • feat返信ロジックをスロット抽選に改善 — 「即返信 20%」「遅延返信 60%」「既読スルー 20%」の 3 択をランダム抽選。既読スルー時はログのみ記録
  • fix既読スルー時に lastInteraction を更新 — lonely_ceiling_min(天井時間)のタイマーを正しく動作させ、指定時間経過後に必ず自発 Push が発動するように修正
  • fix日記生成で署名が二重出力されるバグ修正 — getPastDiarySnippet で署名を除外、generateDailyDiary で LLM 出力をサニタイズ
  • fixチャネル統合時に Push が 2 重送信される問題を修正 — scheduledCheck で WebUI ユーザーからの Push 発火をスキップ
  • fixPush が送信されない問題を修正 — isWebuiUser 判定が Slack 等でも誤って発動していたため、MESSAGING_PLATFORM === "webui" の場合のみに制限
v1.16.0 2026-04-17
Bug Fix
  • fixSlack メッセージが event_queue で処理されない問題を根本修正 — source 判定をオブジェクト対応に変更
  • fix孤独モードでユーザーメッセージが滞留する問題を修正 — 孤独度ベースの遅延時間計算に変更(永続滞留なし)
  • fix遅延中の自発 Push 抑制 — event_queue に未処理メッセージがある間は Push を送らない
New Feature
  • newconversation_logs 自動アーカイブ — max_log_rows 超過時、先頭 80% を別スプレッドシートに退避
  • new_calcLonelinessDelayMin_() — 孤独度に基づく遅延時間計算(寂しい→短い遅延、寂しくない→長い遅延)
v1.15.12 2026-04-16
Improvement
  • improveRAG エントリ追加・削除を軽量化 — 保存処理をスキップし、セクション更新のみで反映。入力値も保持されるようになった
Internal Builds
  • v1.15.12.10 (2026-04-17): fix: trimLogs のアーカイブロジック改善 — 超えた分だけでなく、先頭から 80% をアーカイブし 20% を残すように変更。頻繁なトリムを防止
  • v1.15.12.9 (2026-04-17): add: check-archives 診断 API — Drive にアーカイブされた会話ログを確認できる
  • v1.15.12.8 (2026-04-17): add: add-test-logs 診断 API — テスト用に会話ログを 100 行追加
  • v1.15.12.7 (2026-04-17): fix: convlogs 診断 API — getCONFIG() を呼び出して max_log_rows を正しく取得
  • v1.15.12.6 (2026-04-17): add: convlogs 診断 API — ?page=diag&target=convlogs で会話ログの行数を確認
  • v1.15.12.5 (2026-04-17): add: trimlogs 診断API — ?page=diag&target=trimlogs で trimLogs() を手動実行可能に
  • v1.15.12.4 (2026-04-17): new: conversation_logs の自動アーカイブ — trimLogs() が行数制限を超えたログを別スプレッドシートに保存してから削除。LINORIN_Workspace フォルダに保存
  • v1.15.12.3 (2026-04-16): fix: RAG エントリが空文字列の場合に表示されない問題を修正 — getConfigSchema() の RAG 検出ロジックを改善
  • v1.15.12.2 (2026-04-16): fix: addMetaTag のキャッシュ制御を削除 — GAS HtmlService で使用できないメタタグのため、HTML ファイル側の meta タグに依存
  • v1.15.12.1 (2026-04-16): fix: HTML キャッシュ問題に対応 — doGet() で addMetaTag() を使用してキャッシュ無効化ヘッダーを追加
  • v1.15.12.0 (2026-04-16): 本リリース
v1.15.11 2026-04-16
Fix
  • fixRAG エントリ追加時にキャッシュをクリア — addRagEntry() と deleteRagEntry() にキャッシュクリア機構を追加。RAG エントリを追加・削除しても設定画面に反映されない問題を解消
Internal Builds
  • v1.15.11.0 (2026-04-16): 本リリース
v1.15.10 2026-04-16
Improvement
  • changeRAG エントリ追加・削除時に自動保存 — 入力値を保存してから RAG 追加・削除を実行。編集中の内容が消える問題を解消
Fix
  • fixapp_ui.html のスクロール問題修正 — iframe 内の overscroll-behavior:none を削除し、PC ブラウザで設定画面がスクロールできるように
Internal Builds
  • v1.15.10.10 (2026-04-16): fix: RAG 追加時にキャッシュクリアを追加
  • v1.15.10.9 (2026-04-16): config_ui.html 更新
  • v1.15.10.8 (2026-04-16): RAG 診断 API 追加
  • v1.15.10.7 (2026-04-16): fix: RAG 保存時に collectValues 渡す
  • v1.15.10.6 (2026-04-16): fix: RAG 自動保存ボタンの null 対策
  • v1.15.10.5 (2026-04-16): changelog 更新
  • v1.15.10.4 (2026-04-16): fix: RAG エントリ追加削除の自動保存 — 保存ボタンを自動的に押してから処理を実行
  • v1.15.10.3 (2026-04-16): fix: HTML ファイルのバージョン表記更新 — config_ui.html 他 5 ファイルを 1.15.8→1.15.10 に更新
  • v1.15.10.2 (2026-04-16): fix: RAG エントリ追加削除の UI 改善 — リロードではなくセクション更新のみ
  • v1.15.10.1 (2026-04-16): fix: app_ui.html スクロール修正 — overscroll-behavior 削除
  • v1.15.10.0 (2026-04-16): リリース開始
v1.15.9 2026-04-16
Feature
  • feat長期記憶「<以前>」の改善 — event_queue から過去の発言を抽出。summarizeForMemory() が 7 日前より前のユーザー発言を自動抽出し、実際の会話に基づいた「<以前>」を生成
Internal Builds
  • v1.15.9.6 (2026-04-16): fix: 設定 UI のスクロール操作性を改善 — overscroll-behavior:none を削除し、画面内でスクロール可能に。.section の overflow:hidden も削除
  • v1.15.9.5 (2026-04-16): docs: サポート返信テンプレート追加 — Slack/WebUI ID 分裂問題に関するユーザー回答案を LINORIN_Workspace に保存
  • v1.15.9.4 (2026-04-16): new: ワークスペースフォルダ名の自動変更機能 — spreadsheet_name.txt でスプレッドシート名を照会。不一致時は自動的に「{スプレッドシート名}_Workspace」に切り替え
  • v1.15.9.3 (2026-04-16): fix: 長期記憶「<以前>」を日付なし箇条書きに修正 — summarizeForMemory / mergeLongTermMemory / _seedLongTermMemoryFromProfile_ を統一。repairLongMemory ドキュメント更新
  • v1.15.9.1 (2026-04-16): change: event_queue からの抽出を日付なし箇条書きに変更 — 1970 年問題回避 + LLM が日付を推測して付与
  • v1.15.9.0 (2026-04-16): new: _getPastEventsFromQueue() 関数追加 — event_queue から status="done" かつ 7 日前より前のイベントを抽出。最大 20 件に制限し重複を除外
v1.15.8 2026-04-15
Feature
  • featOpenRouter の自動ルーティングオプションを追加 — openrouter/auto(自動選択)と openrouter/free(無料モデル自動選択)をモデル選択に追加。有料ユーザーでも自動ルーティングが使えるようになった
Internal Builds
  • v1.15.8.9 (2026-04-16): fix: 長期記憶「<以前>」を根本修正 — summarizeForMemory() のプロンプトを改善。会話に 7 日前のデータがなくても user_profile から「不明:」付きで基本情報を補完
  • v1.15.8.8 (2026-04-15): fix: user_state 列ズレ修正 — REFLECTION タグ保存先を P 列(16)→ Q 列(17)に修正
  • v1.15.8.6 (2026-04-15): fix: 長期記憶「<以前>」が空になる問題を修正 — 初回実行時に user_profile からシード記憶を生成する _seedLongTermMemoryFromProfile_() を追加。mergeLongTermMemory() で oldMemory 空時に自動的に意味記憶・手続き記憶・<以前>エピソードを先行生成
  • v1.15.8.5 (2026-04-15): fix: tomorrow_events の文脈ずれ修正 — 日記生成時の「明日」と表示時の「今日/明日」の文脈ずれを修正。tomorrow_events を YYYY-MM-DD フォーマットで保存し、表示時に日付比較
  • v1.15.8.3 (2026-04-15): fix: user_state シートヘッダー不整合 — _migrateUserStateHeaders() でヘッダー不足を自動補充
  • v1.15.8.2 (2026-04-15): レビューレポート修正(記憶品質・プロンプト最適化)— response_language, sanitize(), _callSubLLMInner_, buildBaseContext(), buildReplyPrompt() 等
  • v1.15.8.1 (2026-04-15): improvement: LLMベースの明日イベント検出 — generateDailyDiary() で正規表現からLLM 抽出に変更
v1.15.7 2026-04-12
Fix
  • fixconfig_ui.html のアップデート自動検知を LINORIN_VERSION のみに変更 — INTERNAL_VERSION 変化でも発火していた問題を修正
v1.15.6 2026-04-12
Fix
  • fixcheckVersion() の判定を LINORIN_VERSION のみに変更 — 内部デプロイのたびにバッジが出る問題を解消
v1.15.5 2026-04-12
Fix
  • fix保存せずにボット追加すると入力内容が消える問題を修正 — DOM同期を追加
  • fix誤って「既存設定からインポート」を押してしまう問題を修正 — 旧データなしでボタン非表示 + 確認ダイアログ
v1.15.4 2026-04-11
Improvement
  • new長期記憶を3カテゴリに構造化 — 認知科学に基づく記憶設計(エピソード記憶/意味記憶/手続き記憶)。summarizeForMemory / mergeLongTermMemory のLLMプロンプトを改善
  • new記憶の重み付けルール追加 — <今週>のエピソード最優先、意味・手続き記憶は常に参照。LLMが自然に区別
  • newシステムプロンプトに層ラベル追加 — 【キャラ定義】【関係性】【現在状況】【蓄積記憶】など各ブロックに性質を明示
v1.15.3 2026-04-11
Fix
  • fixキャラクター編集ツールで既存ボットが読み込まれない問題を修正 — _ensureModelOptions 未定義エラーで読込ハンドラがクラッシュしていた
  • fix全HTMLファイルに Cache-Control メタタグを追加(ブラウザキャッシュ問題防止)
  • fixgetTerrariumBotsConfig を getValues() に戻す(getDisplayValues で JSON が壊れる可能性)
New
  • newSlackチャンネルポーリング機能追加 — Events APIに依存せずWeb APIで人間の発言を自動検知してキューにエンキュー
  • newテラリウムキュー診断エンドポイント追加 — terrarium-queue ターゲットでキュー状態・トリガー動作・時間枠リソースを一括確認
  • newキャラクター編集ツールUI改善 — 「+ ボット追加」をフッターに配置し初回から表示。「クリア」ボタンも追加
v1.15.2 2026-04-09
Fix
  • fixキャラクター編集ツールで既存ボットが読み込まれない問題を修正 — _ensureModelOptions 未定義エラーで読込ハンドラがクラッシュしていた
  • fix全HTMLファイルに Cache-Control メタタグを追加(ブラウザキャッシュ問題防止)
  • fixgetTerrariumBotsConfig を getValues() に戻す(getDisplayValues で JSON が壊れる可能性)
New
  • newテラリウムキュー診断エンドポイント追加 — terrarium-queue ターゲットでキュー状態・トリガー動作・時間枠リソースを一括確認
  • newSlackチャンネルポーリング機能追加 — Events APIに依存せずWeb APIで人間の発言を自動検知してキューにエンキュー
  • newキャラクター編集ツールUI改善 — 「+ ボット追加」をフッターに配置し初回から表示。「クリア」ボタンも追加
v1.15.1 2026-04-09
New Feature
  • featテラリウムキャラクターを JSON 配列で管理 — 無制限にキャラクター追加・削除が可能に
  • featキャラクター編集ツール — モーダル UI で直感的にキャラクターを管理
  • feat関係性(relation)フィールド — 各キャラクターの掲示板内での立場を設定可能(デフォルト:「ここの掲示板の住人」)
  • featパートナー用関係性設定 — terrarium_partner_relation を追加
Fix
  • fix_getGuestBots() を JSON 配列解析に変更(後方互換モード付き)
Internal
  • newterrariumMigrateBots() — 旧形式から JSON へ移行
  • newgetTerrariumBotsConfig() / saveTerrariumBotsConfig() — 編集ツール用 API
  • changeConfig UI にキャラクター編集モーダルを追加
  • changeキャラクター絵文字をテキスト入力からプルダウン選択に変更(約60種類)
  • newボットごとにモデル選択プルダウンを追加(エンジン連動フィルタ付き)
  • fixterrarium_partner_emoji をconfigスキーマに追加
  • fix全HTMLファイルにCache-Controlメタタグを追加(ブラウザキャッシュ問題防止)
v1.15.0 2026-04-08
New Feature
  • featテラリウム機能をベータから正式リリースへ昇格 — 複数 AI ボットによるスレッド会話システムが完成
  • featSlack ts 桁落ち防止機構を完全実装 — 正規表現抽出・setFormula・getDisplayValues の 3 段階ガード
Fix
  • fixテラリウム スレッド内会話が継続しない問題を根本修正 — synthetic reply を疑問形に強化・extra.synthetic/force フラグで minMsg チェックをバイパス・スレッド初手(history ≤ 2)の返信確率を 100% に
  • fixthread_ts の float 比較バグを修正 — _padTsLocal_() で両辺を正規化(Sheets が末尾ゼロを落とす問題に対応)
  • fixSlack 生 JSON から ts を文字列抽出 — 正規表現で "ts":1775649326.499519 形式を抽出し、JSON パース前の文字列として保持 (v1.14.5.12)
  • fixterrarium_queue の ts 保存を数式に変更 — setFormula('="値"') でテキスト扱いし、Sheets による数値変換を完全回避 (v1.14.5.11)
  • fixSlack ts 正規表現を数値形式にも対応 — "ts":1775649326.499519 形式にもマッチ (v1.14.5.10)
  • fixSlack ts の桁落ちを根本防止 — doPost で生 JSON から ts を正規表現で抽出 (v1.14.5.9)
  • fix_logTerrarium で setNumberFormat("@") を使用 — 数値形式での桁落ちを防止 (v1.14.5.8)
  • fix_getThreadHistory 等を getDisplayValues() で修正 — セルの表示形式をそのまま取得 (v1.14.5.7)
  • fix_logTerrarium の thread_ts 保存を修正 — setValue と setFormula で明示的にテキストとして保存 (v1.14.5.6)
  • fixthread_ts を文字列として Slack API に送信 — 数値変換による精度落ちを防ぎ、スレッド認識を正しく動作させる (v1.14.5.5)
  • fixusername 指定を削除 — Slack API で別ユーザー扱いされスレッド認識が失われる問題を解消 (v1.14.5.4)
  • fixsynthetic reply を強化 — テキストを「(name)…どう思う?」に変更 (v1.14.5.3)
  • fixスレッド初手の返信確率を 100% に — _processTerrariumReplyEvent に _extra 引数追加 (v1.14.5.2)
  • fixスレッド開始時に 2 発目の force enqueue を追加 — 別 Bot の返信を確実に誘発 (v1.14.5.1)
Improve
  • improve_generateGuestReply にスレッド継続指示を追加 — 「必ずスレッド内で会話を続けること」を system prompt に明示
  • improvesynthetic / force イベントの遅延をスキップ — 会話の種となるイベントが terrarium_reply_delay_max で遅延しないよう修正
v1.14.5 2026-04-08
  • fixSlack 生 JSON から ts を文字列抽出 — 正規表現で抽出し JSON パース前の文字列として保持 (v1.14.5.12)
  • fixterrarium_queue の ts 保存を数式に変更 — setFormula('="値"') でテキスト扱いし、Sheets による数値変換を完全回避 (v1.14.5.11)
  • fixSlack ts 正規表現を数値形式にも対応 — "ts":1775649326.499519 形式にもマッチ (v1.14.5.10)
  • fixSlack ts の桁落ちを根本防止 — doPost で生 JSON から ts を正規表現で抽出 (v1.14.5.9)
  • fix_logTerrarium で setNumberFormat("@") を使用 — 数値形式での桁落ちを防止 (v1.14.5.8)
  • fix_getThreadHistory 等を getDisplayValues() で修正 — セルの表示形式をそのまま取得 (v1.14.5.7)
  • fix_logTerrarium の thread_ts 保存を修正 — appendRow だと ' プレフィクスが無視されるため、setValue と setFormula で明示的にテキストとして保存 (v1.14.5.6)
  • fixthread_ts を文字列として Slack API に送信 — 数値変換による精度落ちを防ぎ、スレッド認識を正しく動作させる (v1.14.5.5)
  • fixusername 指定を削除 — Slack API で username 指定があると別ユーザー扱いされ、スレッド認識が失われる問題を解消 (v1.14.5.4)
  • fixsynthetic reply を強化 — テキストを「(name)…どう思う?」に変更 (v1.14.5.3)
  • fixスレッド初手の返信確率を 100% に — _processTerrariumReplyEvent に _extra 引数追加 (v1.14.5.2)
  • fixスレッド開始時に 2 発目の force enqueue を追加 — 別 Bot の返信を確実に誘発 (v1.14.5.1)
  • fixテラリウム スレッド内会話が継続しない問題を根本修正 — synthetic reply を疑問形に強化・extra.synthetic/force フラグで minMsg チェックをバイパス・初手(history ≤ 2)の返信確率を 100% に
  • fixthread_ts の float 比較バグを修正 — _padTsLocal_() で両辺を正規化(Sheets が末尾ゼロを落とす問題に対応)
  • fixスレッド開始時に 2 発目の force enqueue を追加 — 別 Bot の返信を確実に誘発
  • improve_generateGuestReply にスレッド継続指示を追加 — 「必ずスレッド内で会話を続けること」を system prompt に明示
  • improvesynthetic / force イベントの遅延をスキップ — 会話の種となるイベントが terrarium_reply_delay_max で遅延しないよう修正
v1.14.4 2026-04-06
  • fixスレッド内返信を修正(thread_ts を文字列化)
  • fixキュー処理のデバッグログを追加
  • fixテラリウム thread_ts 精度バグ修正 — Sheets 数値変換で末尾ゼロが消失し Slack スレッドマッチ失敗→新規スレッド投稿になる問題を解消
  • improveチェーン返信(再帰呼び出し)を廃止(トークン消費抑制)
  • fixテラリウム Slack スレッド返信安定化(再修正) — _postTerrariumMessage() で thread_ts を小数点以下6桁へゼロパディング(Sheets 数値変換で末尾ゼロ脱落→スレッド不一致を解消)
  • improveテラリウムログに thread_ts デバッグ情報を追加 — Slack 応答の ts/thread_ts を記録しスレッド追跡を容易に
v1.14.3 2026-04-06
  • featテラリウムにスレッド管理シートを追加(terrarium_threads)
  • featSlack の新規スレッドを自動記録(ユーザー作成スレッドも管理)
  • improveテラリウムの人間への反応を 100% に(人間関与時は必ず返信)
  • improve人間発言後の AI チェーンを抑制(1 回で停止)
  • improveスレッド履歴取得を高速化(直近 200 行のみスキャン)
  • improveキュー処理のデバッグログを強化
v1.14.2.1 2026-04-06
  • featテラリウムにスレッド管理シートを追加(terrarium_threads)
  • featスレッド自動アーカイブ機能(7 日間活動なしで archived)
  • improveテラリウムの人間への反応を 100% に(人間関与時は必ず返信)
  • improve人間発言後の AI チェーンを抑制(1 回で停止)
  • improveスレッド履歴取得を高速化(直近 200 行のみスキャン)
v1.14.2 2026-04-04
  • fixdailyReset()のバックアップ順序を修正 — trimLogs()でログ削除より先にバックアップ+PDF出力を実行
  • fixevent_queueのprocessing詰まりを自動解消(5分超過でfailedに変更)
  • fixキュー詰まり解除時にWebUIで通知メッセージを表示
  • fix外観設定の色が空欄でコンソールエラー
  • improvedailyResetにPDF自動出力を統合(バックアップON時)
  • improveConfig UIの実行タブにバックアップセクションを移動
  • improvePDF出力HTMLのモバイル対応
  • improve1日のリズム「反応やすさ」→「自発のしやすさ」に表現変更
v1.14.0 (2026-04-04)
✨ 新機能
  • featスプレッドシート全体の自動バックアップ機能を追加: Config で backup_enabled を ON にすると毎日自動でスプレッドシート全体(会話ログ・設定含む)を LINORIN_Workspace/backups/ フォルダにバックアップ。古いバックアップの削除は手動で行う仕様。
  • feat手動バックアップボタンを追加: Config UI の「バックアップ」セクションから「今すぐバックアップ」で即座にバックアップを作成可能。
  • featバックアップからのPDF出力機能を追加: バックアップ一覧を取得→選択→WebUI風チャット形式のHTMLを生成。生成されたHTMLをブラウザで開いて「印刷→PDFに保存」でPDF化できる。会話ログを見やすい形で保存・共有可能に。
v1.13.5 (2026-04-04)
🐛 バグ修正
  • fixWebUI の userId 変更時に過去の会話履歴が表示されなくなる問題を修正: setup() 実行時に localuser や過去の webui_user_id を現在の webui_user_id に自動統合。WebUI で「AIの回答が消えた」ように見える問題を解決。event_queue の userId も統合対象に追加し、大量ログ対応のため2000行ずつ分割処理。
v1.13.4 (2026-04-04)
✨ 新機能
  • featWebUI チャットにエラー時の再送信ボタンを追加: エラー発生時にリトライボタンを表示。最後のメッセージを再送信(会話ログから重複削除して再実行)し、AIから見て重複発言にならないよう改善。
  • featWebUI チャットに画面リロードボタンを追加: ヘッダーに常時表示(一時セッションボタンの左側)。タップで画面全体をリロード。
  • featWebUI チャットにタイムアウト処理を追加: 送信後60秒経過でタイムアウトエラーを表示。「入力中...」インジケータが永遠に残る問題を解決。
  • featWebUI チャットのエラーメッセージを詳細化: 503エラー、タイムアウト、その他エラーを判別して適切なメッセージを表示。エラー原因がわかりやすく。
v1.13.3 (2026-04-01)
🐛 バグ修正
  • fixメッセージが数時間後に再送される問題を根本修正: clear503State や updateUserState が一時的な SpreadsheetApp エラーで例外を投げると handleMessage が終了し、メッセージ未送信のままキューに戻っていた。両関数を try-catch で保護し、エラーが発生してもメッセージ送信(sendByPlatform)は必ず実行されるよう変更。
v1.13.2 (2026-04-01)
🐛 バグ修正
  • fixキュー遅延後の返信でAIが時間帯を誤認する問題を修正: メッセージ受信から30分以上経って処理された場合、システムプロンプトに「このメッセージはXX:XXに受信」という注記を注入。処理時刻ではなく受信時刻を質問の時間帯として判断するように。
  • fix同じメッセージが数時間後に再送信される問題を修正: processQueue で handleMessage 成功後にクリーンアップ例外が発生するとキューエントリが queued に戻り再処理されていた。成功/失敗の判定を独立した try-catch に分離し、成功時は必ず done にマークするよう変更。
  • fix深夜プッシュ停止設定で他の時間帯もミュートになる問題を修正: 「夜の開始時刻」を 0 や 1 に設定すると夕方〜夜の時間帯もミュート扱いになっていた。深夜判定を midnight wrap 対応に変更。
  • fixチャネル統合 ON 時に旧 localuser が孤立 ID として push される問題を修正: webui_user_id を設定済みの場合、旧 localuser エントリを push 対象からスキップするよう変更。
  • fixチャネル統合 ON にしても会話履歴が引き継がれない問題を修正: 設定保存時に channel_merge が OFF→ON に変化した場合、または ON のまま webui_user_id が変更された場合、conversation_logs と user_state の既存エントリを新しい ID に自動マイグレーション。メッセージアプリを変更しても会話履歴・記憶が引き継がれるように。
✨ 新機能
  • feat返答言語を固定設定できるように: 設定「キャラクター設定」内に 返答言語 ドロップダウンを追加。auto(AIが判断)/ ja(常に日本語)/ en(Always reply in English)から選択可能。英語圏ユーザー向け。
v1.13.0 (2026-03-31)
🐛 バグ修正
  • fix診断の daily_push_limit チェックで ReferenceError が発生する問題を修正: _healthCheck_ 内で conf が未定義のまま参照していた。CONFIG["daily_push_limit"] に修正。
  • fixヘルスチェックのトリガーハートビートが常に ℹ️(3分超)になる問題を修正: ハートビート記録が10分間隔の scheduledCheck() 内にあったため常に閾値超えになっていた。1分間隔の scheduledEveryMinute() の先頭に移動。
  • fix非アクティブなプラットフォームのチェック失敗が診断 overall を warn にする問題を修正: MESSAGING_PLATFORM で使用していないプラットフォームのトークンが未設定でも overallOk に影響していた。アクティブなプラットフォームのみに限定。
  • fixLINE以外の環境で line_quota チェックが overall に影響する問題を修正: activePlatform === "line" のときのみ overallOk に影響するよう変更。
  • fixchannel_merge 時にポモドーロ終了通知がメッセージアプリに届かない問題を修正: webui_user_id にメッセージアプリのユーザーIDを設定すると isWebuiUser が true になり通知がブラウザチャット側にのみ飛んでいた。platform !== "webui" を使うよう変更。
  • fix返信遅延設定時にAIが「X時間も音沙汰なし」と誤認する問題を修正: 孤独プッシュの「沈黙時間」をユーザーの最終発言ではなく「AIの最終返信からの経過時間」に変更。返信遅延中の場合はその旨をプロンプトに注記し、ユーザーへの誤った言及を防止。
🎨 UI改善
  • uiヘルスチェック結果の表示を整形済みテキストに変更: 生JSONではなく、先頭に ✅/⚠️ 全体サマリー → 要確認項目(強調)→ 正常項目の順に整形して表示。問題箇所が一目でわかるように。
  • feat許可ユーザーID設定欄に「最近会話したユーザー候補」を表示: user_state から最近会話した上位5件のユーザーIDを候補チップで表示。クリックで許可ユーザー欄に追記(重複なし)。channel_merge ON時も正しく動作。
v1.12.0 (2026-03-30)
✨ 新機能
  • feat設定画面に「症状から診断」を追加: 「返事が来ない」「プッシュが来ない」「日記ができない」の3ボタンで healthチェック+ユーザー状態を一括取得し、コピーしやすいテキストレポートを生成。「デバッグ・メンテナンス」セクション内に統合。
  • feat診断API queue-clear — 滞留キューのクリア: ?page=diag&target=queue-clear で10分以上滞留している queued/processing 行を failed に更新。詰まったキューを即座に解消できる。
  • feat診断API push-test — 全プラットフォーム疎通確認: ?page=diag&target=push-test でLLMを使ったテストメッセージを LINE/Slack/Telegram/WebUI に送信し、各APIのレスポンスを確認。会話ログ・lastInteraction に影響なし。
  • feat診断API health(計12項目): キュー詰まり・トリガーハートビート・LLM API疎通・プラットフォーム接続・必須シート・必須configキー・LockService・push_enable・LINE月間quota・トリガー設定・モデルキャッシュ・日次push上限超過 を一括チェック。
🐛 バグ修正
  • fix「必ず話しかける時間」が到達後も発火しないことがある問題を修正: lonely_ceiling_min 到達後も確率抽選が走っており、条件次第で長時間発火しなかった。ceiling 到達時は抽選をスキップして強制発火するよう変更(timeWeight=0 深夜ミュートは尊重)。
  • fixGemini フォールバック機能が動作しない問題を修正: 旧実装はリクエストをまたいだカウンター方式のため、503/429 が N 回続くまでユーザーにエラーが届いていた。503/429 発生時に同一リクエスト内で即座に代替モデルへ切り替える方式に変更。
  • fixLINEで画像受信時の確認メッセージが届かない問題を修正: 高速処理パスへの移行時に pushMessage の呼び出しが漏れていた。
  • fixSlackで画像+テキスト同時送信時に画像が無視される問題を修正: 画像読み取り失敗時にユーザーのテキストが上書きされていた。元テキストを保持しつつ「画像を確認できなかった」旨のインストラクションをAIに渡すよう変更。
  • fixMESSAGING_PLATFORM=slack 環境でシステム通知がSlackに届かない問題を修正: webui_user_id に Slack ユーザーIDと同じ値を設定していると、さみしさpush・ポモドーロ終了通知・日記生成通知・記憶生成エラー通知がすべて webui 扱いになって Slack に届かなかった(4箇所修正)。
  • fix返信遅延中のユーザーへの孤独pushが二重送信される問題を修正: reply_delay_max_min 設定時、返信待ち中に scheduledCheck が孤独pushを送ってしまっていた。
🎨 UI改善
  • ui「感情の振れ幅」と「Temperature」を統合: char_temp_bias(感情の振れ幅)は temperature に乗算するだけの冗長な設定だったため削除。temperature のラベルを「感情の振れ幅」に変更し、1つのスライダーで完結するよう整理。
  • ui診断レポートのpush表示を 8/5 ⚠️上限超 形式に変更: 日次push上限の消費状況が一目でわかるように。
  • refactor設定 active_mode を廃止し messaging_mode / webui_mode に分割: メッセージアプリとブラウザチャットそれぞれで「遠距離/近距離」の振る舞いを独立して設定可能に。チャネル統合(旧 unified)はデフォルト動作になり設定不要。
  • refactorUI全体の「WebUI」表記を「ブラウザチャット」に統一: ラベル・説明文・ユーザー向けメッセージを統一。コードの識別子(config キー・関数名・platform値)は変更なし。
  • refactorDRY整理(内部リファクタリング): LLMエンジンディスパッチテーブル導入(callLLM/callSubLLMの3箇所重複if-elseを統一)、EQ_COLS/EMPTY_USER_MSG_FALLBACK 定数化、_getWebUIUserId_/_webuiResponse_/_logWebUIQueue_/_getMaxTokens_/_tsFull_ 等ヘルパー関数化。(1.12.0.7)
  • fix診断レポート daily_push_limit チェックの ReferenceError を修正: _healthCheck_ 内で conf が未定義のまま参照していたバグを修正。CONFIG["daily_push_limit"] に変更。(1.12.0.8)
  • fixヘルスチェックのトリガーハートビートが常に ℹ️ になる問題を修正: ハートビート記録を scheduledCheck()(10分間隔)から scheduledEveryMinute()(1分間隔)の先頭に移動。(1.12.0.9)
v1.11.5 (2026-03-29)
🐛 バグ修正
  • fixLINEで画像受信時の確認メッセージが届かない問題を修正: 高速処理パス(_processLineSingleEvent)への移行時に pushMessage の呼び出しが漏れていた。
  • fixSlackで画像+テキスト同時送信時に画像が無視される問題を修正: 画像読み取り失敗時にユーザーのテキストが上書きされていた。元テキストを保持しつつ「画像を確認できなかった」旨のインストラクションをAIに渡すよう変更。
  • fixMESSAGING_PLATFORM=slack 環境でシステム通知がSlackに届かない問題を修正: webui_user_id に Slack ユーザーIDと同じ値を設定していると、さみしさpush・ポモドーロ終了通知・日記生成通知・記憶生成エラー通知がすべて webui 扱いになって Slack に届かなかった(4箇所修正)。
  • fix返信遅延中のユーザーへの孤独pushが二重送信される問題を修正: reply_delay_max_min 設定時、ユーザーのメッセージへの返信を待っている間に scheduledCheck が孤独pushを送ってしまっていた。キュー待ち中のユーザーをスキップするよう変更。
🎨 UI改善
  • ui設定画面の「診断」タブに「症状から診断」セクションを追加: 「返事が来ない」「プッシュが来ない」「日記ができない」の3ボタンで healthチェック+ユーザー状態を一括取得し、コピーしやすいテキストレポートを生成。
  • ui「感情の振れ幅」と「Temperature」を統合: char_temp_bias(感情の振れ幅)は temperature に乗算するだけの冗長な設定だったため削除。temperature のラベルを「感情の振れ幅」に変更し、1つのスライダーで完結するよう整理。
🐛 バグ修正
  • fix「必ず話しかける時間」が期限到達後も発火しないことがある問題を修正: lonely_ceiling_min に達した後も確率抽選(Math.random())が走っており、設定条件によっては長時間発火しないことがあった。ceiling 到達時は抽選をスキップして強制発火するよう変更(timeWeight=0 の深夜ミュートは引き続き尊重)。
  • fixGemini フォールバック機能が動作しない問題を修正: 旧実装はリクエストをまたいだカウンター方式のため、503/429 が N 回続くまでユーザーにエラーが届いていた。503/429 発生時に同一リクエスト内で即座に代替モデルへ切り替える方式に変更。gemini_503_retry 設定は廃止。
✨ 新機能
  • feat診断API queue-clear — 滞留キューのクリア: ?page=diag&target=queue-clear で10分以上滞留している queued/processing 行を failed に更新。詰まったキューを即座に解消できる。
  • feat診断API push-test — 全プラットフォーム疎通確認: ?page=diag&target=push-test でLLMを使ったテストメッセージを LINE/Slack/Telegram/WebUI に送信し、各APIのレスポンスを確認。会話ログ・lastInteraction に影響なし。
  • feat診断API health の強化(計11項目): 従来の7項目に加えて以下を追加。①push_enable オフ検出(メッセが来ない原因)、②LINE月間push上限の残量確認(/v2/bot/message/quota で quota/consumed を比較、上限超過でerror、80%超でwarn)、③dailyReset トリガーの存在確認(日記でない原因)、④モデルキャッシュ(MODEL_OPTS_* ScriptProperty)の陳腐化検出(現在のエンジン設定と一致しない古いキャッシュを検出、モデル更新されない原因)。
v1.11.4 (2026-03-28)
🐛 バグ修正
  • fix「全エンジン・モデルを更新」で getLocalLLMModelList is not defined エラーが発生する問題を修正: local_llm.js を持たない環境(Drive SOURCE から手動セットアップした場合など)やローカルLLMが無効な環境でボタンを押すとクラッシュしていた。typeof ガードと LOCAL_LLM_ENABLED チェックを追加してスキップするように修正。
  • fix「今すぐ話しかける」が無音で何も起きない問題を修正: 自発話しかけ(Push)がオフの状態でボタンを押しても無反応だった。オフの場合はエラートーストを表示するように修正。
✨ UI 改善
  • uiAI選択 — 使用中エンジンのモデル設定のみ表示: エンジン切り替えドロップダウンに連動して、そのエンジンのモデル設定だけが表示されるように変更。全プロバイダーのモデルが並ぶ圧迫感を解消。
  • ui応答スタイル / 距離感と孤独 に「詳細設定 ▼」を追加: 高度な設定(履歴系・Temperature・TopP・確率調整など)を折りたたんで視覚的に軽量化。
  • ui応答スタイルの返信設定を前に移動: 返信遅延・返信タイミングをよく使う設定として先頭グループへ移動。Temperature / Top P は詳細設定に移動。
  • ui距離感と孤独の「1日の最大Push回数」を自発ON/OFFの直後に移動: コア設定として最上位に配置。
  • uiAI選択のモデル並び順を変更: ローカルLLMを最下部に移動。Gemini / ChatGPT / Anthropic / Grok / GLM / さくら / OpenRouter / ローカルLLM の順に統一。
  • fixLINEで画像受信時の確認メッセージが送られなくなっていた問題を修正: 高速処理パス(_processLineSingleEvent)への移行時に pushMessage の呼び出しが漏れていた。
  • fix画像フェッチ失敗時にユーザーの元テキストが消える問題を修正: Slack で画像+テキストを送った際、画像の読み取りに失敗するとユーザーのテキストが上書きされて会話が進んでいた。元テキストを保持しつつ「画像を確認できなかった」旨のインストラクションをAIに渡すよう変更。
  • fixMESSAGING_PLATFORM=slack 環境でシステム通知がSlackに届かない問題を修正: webui_user_id に Slack ユーザーIDと同じ値を設定していると、さみしさpush・ポモドーロ終了通知・日記生成通知・記憶生成エラー通知がすべて webui 扱いになって Slack に届かなかった。isWebuiUser(userId 判定)ではなく platform === "webui" で送信先を決定するよう修正(scheduledCheck / pomodoroTimerCheck / generateLongTermMemoryForAllUsers / generateDailyDiaryForAllUsers の4箇所)。
  • fix返信遅延中のユーザーにpushが二重送信される問題を修正: reply_delay_max_min(返信遅延)設定時、ユーザーがメッセージを送ってから bot が実際に返信するまでの間に scheduledCheck が「長時間無音」と判定して別途 push を送ってしまうことがあった。scheduledCheck 冒頭で event_queue を一括チェックし、queued/processing 状態のユーザーをスキップするよう修正。古いスタック行による誤ブロックを防ぐため createdAt で遅延ウィンドウ内の行のみを対象とし、返信遅延設定がない場合はチェック自体をスキップするよう改善。
v1.11.3 (2026-03-27)
📄 PDF・ファイル処理の修正
  • fixPDF テキスト抽出が動作しない問題を修正: GAS で Drive を Advanced Service として追加すると v3 がデフォルトになるが、コードが v2 API(Files.insert)を使っていたため PDF が読み取れなかった。Files.create / pageSize / files に更新して v3 に対応。LINE・WebUI 両方で修正。
  • 改善Drive API テストを自動テストに追加: Drive の疎通確認・Google Docs 変換が正常に動作するかを ?page=test エンドポイントで自動チェック。
v1.11.2 (2026-03-27)
🚨 ScriptProperties 容量問題の修正
  • fixdoPost 無応答インシデントを修正: _diag_dopost_ デバッグログが ScriptProperties に蓄積し 500KB 上限に達していた根本原因を除去。Slack でメッセージを大量送信すると返答が来なくなる問題が解消。
  • fixdedup キー蓄積の早期抑制: _cleanupDedupKeys_ の閾値を 500→200・保持件数を 300→100 に引き下げ。
  • fixdailyReset ロックキー無限蓄積を修正: _dailyReset_ran_YYYYMMDD キーを実行時に当日分以外すべて削除するよう変更。
  • fixRSSキャッシュを CacheService に移行: rss_cache を ScriptProperties(9KB/値上限)から CacheService(TTL 2時間・100KB上限)に移行。
  • fix全エンジンのモデルリスト保存件数を制限: MODEL_OPTS_* キーを一律先頭100件に制限。OpenRouter など数百件のリストが9KB上限を超える問題を修正。
v1.11.1 (2026-03-26)
🔧 日記・記憶のプラットフォーム汎用化
  • fixunified モードの日記・記憶生成が Slack / Telegram でも正しく動作するよう修正: 「全ユーザーのログ」でなく「設定中のメッセアプリユーザー + WebUI」の組み合わせに限定。LINE 専用の設計を汎用化。
  • fixunified モードで記憶統合が WebUI のログを含むよう修正: getConversationForMemory / generateLongTermMemory を複数ID対応に変更。
🚨 インシデント対応 (internal 1.11.1.1)
  • fixdoPost が無応答になるインシデントを修正: _diag_dopost_ デバッグログが ScriptProperties に蓄積し続け 500KB 上限に達していた根本原因を除去。
  • fixdedup キー蓄積の早期抑制: _cleanupDedupKeys_ の閾値を 500→200・保持件数を 300→100 に引き下げ。
  • fixdailyReset ロックキー無限蓄積を修正: _dailyReset_ran_YYYYMMDD キーを実行時に当日分以外すべて削除するよう変更。
📦 ScriptProperties 容量対策 (internal 1.11.1.2〜1.11.1.3)
  • fixRSSキャッシュを CacheService に移行: rss_cache を ScriptProperties から CacheService(TTL 2時間)に移行。9KB/値上限を回避。
  • fix全エンジンのモデルリスト保存件数を制限: MODEL_OPTS_* キーを updateModelDropdown で一律先頭100件に制限。OpenRouter など数百件のリストが9KB上限を超える問題を修正。
v1.11.0 (2026-03-26)
📔 日記システム刷新
  • refactorAI一人格設計に変更: 全ユーザーループを廃止し、外部ユーザー優先の1件処理に簡略化。日記・記憶ともに AI は1つの人格として扱われるよう統一。
  • featunified モードで全セッションのログを合算して日記生成: LINE と WebUI 両方の会話が1つの日記に反映されるよう改善。
  • feat日記の会話ログを HH:mm タイムスタンプ付きで時系列取得: 新関数 getConversationForDiary を導入。最大50件に制限してプロンプト肥大化を防止。
  • feat日記に過去日記スニペットを参考情報として追加: ランダムに選んだ過去日記の冒頭を「関連/ネタ不足時のみ使う」任意ブロックとして挿入。
  • fixさくらのAIクラウドが日記・chat で正しく選択されない問題を修正: hasConfig の1引数バグを修正し、Sakura が正しくルーティングされるように。
  • fixさくらのAIクラウドの認証エラー(401)を修正: ACCESS_TOKEN:SECRET 連結形式から ACCESS_TOKEN 単体 Bearer に修正。
  • fixWebUI 日記生成ボタンがモバイルで「実行中」のまま固まる問題を修正: 即時トリガーで非同期化し、完了をチャットに通知するよう変更。
v1.10.10 (2026-03-26)
🔧 日記API修正
  • fix日記生成で Gemini に空の user コンテンツを送っていたバグを修正: Anthropic / ChatGPT と同様にフォールバックテキストを設定。
  • fixdiary_max_tokens 設定が日記生成に適用されていなかったバグを修正: callSubLLM の resolvedMaxTokens が各 API 呼び出しに正しく渡されるよう修正。
  • fix日記のサブLLMでさくらのAIクラウドを指定しても Gemini にフォールバックしていたバグを修正: hasConfig("SAKURA_MODEL") が1引数呼び出しのため常に false を返す問題を修正。
  • fixさくらのAIクラウドの認証が誤った形式になっていたバグを修正: ACCESS_TOKEN:SECRET 連結形式(401エラー)から ACCESS_TOKEN 単体の Bearer 認証に修正。
  • fixchat でも Sakura が正しく呼ばれるよう callLLM の Sakura 分岐を修正: hasConfig 1引数バグを callLLM 側でも修正。
  • fixunified + LINE モードで日記通知が WebUI に届いていた問題を修正: generateDailyDiaryForAllUsers に外部ユーザー存在時の WebUI スキップロジックを追加。
  • fixLINE push 失敗時のエラーがサイレントに無視されていた問題を修正: HTTP レスポンスコードを確認してログ出力するよう変更。
v1.10.9 (2026-03-26)
🔧 バグ修正まとめ
  • fixWebUI + unified モードで「今すぐ生成」が機能しなかった問題を修正: getAllUserStates が allowed_line_users フィルタで WebUI ユーザーを除外、generateDailyDiaryForAllUsers が LINE platform で通知していた 2 つのバグを修正。
  • fixWebUI + unified モードでのプッシュが LINE で上書きされる問題を修正: scheduledCheck / generateLongTermMemoryForAllUsers に effectivePlatform パターンを適用。
  • fix会話ゼロの日も日記を生成するよう変更: 会話ログが 0 件の場合、「今日は会話がなかった」待ち日記プロンプトに自動切替して生成。
  • fixカスタム壁紙が再読み込み後に消える問題を修正: アップロード画像を Drive に永続保存し、localStorage をキャッシュとして利用するハイブリッド方式に変更。
  • fixさくらのAIクラウドのモデルが WebUI に表示されなかった問題を修正: SAKURA_MODEL / SUB_SAKURA_MODEL の選択肢をスキーマに直接埋め込み、初回から選択可能に。
  • fixDrive API 経由の PDF テキスト抽出が機能していなかった問題を修正: isDriveApiAvailable() の Drive v2 フィールド名誤り(files→items)を修正。
  • fixテラリウムがユーザー発言に反応しない問題を修正: Google Sheets が "TRUE" を boolean true に自動変換するため is_bot 判定が全 bot メッセージで false になり、hourly limit を使い切ってからユーザーに無反応になっていた。
v1.10.8 (2026-03-26)
🔧 バグ修正 & 内部整理
  • fixさくらのAIクラウドのモデルが WebUI に表示されなかった問題を修正: SAKURA_MODEL / SUB_SAKURA_MODEL の選択肢をスキーマに直接埋め込み、初回から選択可能に。
  • fixDrive API 経由の PDF テキスト抽出が機能していなかった問題を修正: isDriveApiAvailable() の Drive v2 フィールド名誤り(files→items)を修正。extractTextViaDrive() を Drive.Files.insert() 直接変換方式に簡略化。
  • fixテラリウムがユーザー発言に反応しない問題を修正: Google Sheets が "TRUE" を boolean true に自動変換するため is_bot 判定が全 bot メッセージで false になり、bot 同士の連鎖で hourly limit を消費してからユーザーに無反応になっていた。
  • fixローカルLLMサーバー停止中のタイムアウト問題を修正: LOCAL_LLM_ENABLED=FALSE でサーバー接続をスキップしてフォールバックへ即切替。
  • refactorLINORIN.js のセクション順を整理: SETUP を先頭近く・buildSystemText を MESSAGE BUILD 直前・エントリーポイントをまとめ・デバッグ関数を debug_tools.js へ集約。
  • fixWebUI + unified モードで「今すぐ生成」が機能しなかった問題を修正: getAllUserStates が allowed_line_users フィルタで WebUI ユーザーを除外、generateDailyDiaryForAllUsers が LINE platform で通知していた 2 つのバグを修正。
  • fixWebUI + unified モードでのプッシュが LINE で上書きされる問題を修正: scheduledCheck / generateLongTermMemoryForAllUsers に effectivePlatform パターンを適用。
  • fix日記の二重生成を防止: ScriptProperties による当日分のデデュープロックを追加(WebUI 再生成機能は対象外)。
v1.10.7 (2026-03-24)
🔧 バグ修正
  • fixローカルLLMサーバー停止中のタイムアウト問題を修正: LOCAL_LLM_ENABLED をOFFにするとサーバーへの接続をスキップし、フォールバックエンジンに即切替。設定UI「API設定」タブから切替可能。
  • fixさくらのAIクラウドのモデルが WebUI に表示されなかった問題を修正: SAKURA_MODEL / SUB_SAKURA_MODEL の選択肢をスキーマに直接埋め込み、「全エンジン・モデルを更新」未実行の環境でも初回から選択可能に。
  • refactorLINORIN.js のセクション順を整理: SETUP を先頭近く・buildSystemText を MESSAGE BUILD 直前・doGet/doPost をエントリーポイントとしてまとめ・デバッグ関数を debug_tools.js へ集約。
  • fixDrive API 経由の PDF テキスト抽出が機能していなかった問題を修正: isDriveApiAvailable() が Drive v2 の正しいフィールド名(items)を参照するよう修正。extractTextViaDrive() を Drive.Files.insert() 直接変換方式に簡略化。
  • fixテラリウムがユーザー発言に反応しない問題を修正: Google Sheets が "TRUE" 文字列を boolean true に自動変換するため is_bot 判定が全 bot メッセージで false になり、bot 同士の連鎖で hourly limit を消費してからユーザーに無反応になっていた。
v1.10.6 (2026-03-23)
✨ 機能追加
  • feat💞 感情の深み(add_emotion)機能を追加: 設定UI「キャラクター設定」タブからON/OFF切替可能。以下4つの機能が有効化されます。
    • 日記生成時に翌日への引継ぎメモ(REFLECTION)を自動生成・保存し、翌日の会話でさりげなく活用
    • 感情的な苦しみへの共感を強化 — 専門機関への誘導表現を使わず、そばにいる存在として寄り添う
    • ユーザーの発言量に返答長を同調(短文には短く、長文には長く返す)
    • Push時に過去の日記からランダムにエピソードを引用し、不意打ちで思い出話を振る
v1.10.5 (2026-03-23)
✨ 機能追加
  • feat壁紙パターンを6種追加: タータン(紫/茶)・ギンガム(青/茶)・チェック・ハート — ライト/ダークテーマ自動対応
  • feat壁紙カスタムアップロードを改善: ファイル選択で即プレビュー、localStorage保存で確実に反映
  • featWebUIからテキスト・PDFアップロードに対応
  • featPush停止トグルを追加: 設定UIから自発話しかけのON/OFFを制御
  • featWebUIでのポモドーロを明示的に非対応化: バックグラウンドタブのタイマー制限のため非対応と案内
🎨 UI改善
  • improveチャットツールパネルを2行レイアウトに統一: ラベル→選択UIの順に改行配置
  • improve設定UIのタブアイコンを縮小(28px→20px)
  • improve時間帯プロンプト入力を1列化: 2列グリッド→1列フル幅で読みやすく
  • improveRAG「常に注入」トグルを別行に配置
  • improve一時セッションボタンをヘッダーに移動、バナーをチャットエリア上部に
  • improveアイコンサイズ「極小」追加、フォントサイズ選択に9px追加
  • improve不要な「設定を開く」ボタン行を削除
🔧 バグ修正
  • fix壁紙パターンがライトテーマで見えない問題を修正: テーマ輝度に応じて色を動的生成
  • fix日記生成の日付入力が読めない問題を修正
  • fix一時セッションバナーが途切れる問題を修正: 画面幅で自然に折り返すよう変更
  • fixメール通知のカウントをAI自発メッセージのみに変更
  • fixタブ復帰時に即時ポーリング追加: トリガー通知の遅延を軽減
  • fixSlack/Telegramからの画像付きメッセージが連鎖エラーになる問題を修正: handleMessage内でplatformがCONFIG設定値に上書きされ、SlackのファイルIDをLINE APIに送信していた
  • fix?page=diag にトークン認証を追加: setup()でDIAG_TOKENを自動生成、未認証リクエストは拒否
  • refactorLLM リトライロジックを統一: ChatGPT/Anthropic/Grok/GLM に callWithRetry ラッパーを適用(429/503で最大2回、1秒待機)
  • fixpostMessage 送信元チェックを追加: app_ui の message リスナーが自分の子frameからのメッセージのみ受け付けるよう修正
  • fixXFrameOptions を SAMEORIGIN に変更: changelog・config ページを外部サイトからの iframe 埋め込み不可に
  • featadd_emotion スイッチ実装: CONFIG key "add_emotion" = TRUE で4機能が有効化 / Plan1: 内省メモ(REFLECTION)を日記生成時に保存→翌日引継ぎ / Plan2: システムプロンプトへ内省メモ注入+共感強化ルール / Plan3: ユーザー発言長に応じた返答長ミラーリング / Plan4: Push時に過去日記からランダムスニペットを注入(不意打ち記憶)
v1.10.4 (2026-03-20)
✨ 機能追加
  • featローカルLLMモデルを「全モデル更新」で自動更新: 「全エンジン・モデルを更新」ボタンがローカルLLMサーバーにも問い合わせ、Configシートのプルダウンを最新に更新
  • featチャットUIに壁紙設定機能を追加: ドット・ストライプ・グリッド・チェック・ハート・スター・カスタムURLから選択可能
  • featポップテーマ7種を追加: コットンキャンディ・ブルーベリー・チョコチェリー・バニラストロベリー・抹茶ミルク・レモンキャラメル・ストロベリー
🎨 UI改善
  • improveテーマ選択を4グループに整理: ダーク・ポップ・パステル・カスタムの optgroup で分類
  • improveツールパネルの保存ボタンをアクセントカラー塗りつぶしに変更: どのテーマでも視認性を確保
🔧 バグ修正
  • fixPCブラウザでフォント読み込みがクラッシュする問題を修正: loadChatGoogleFont の変数宣言ホイスティングによる TypeError を解消
  • fixポップ/ダークテーマでバブルのテキストが読めない問題を修正: バブルごとに背景色から自動コントラスト計算
  • fixメール通知の件名を変更: 「ロボとの会話まとめ」→「N件のメッセージがあります」
  • fixトーストの文字色が読めない問題を修正: 設定UI・チャットUIともに固定白に変更
v1.10.3 (2026-03-18)
🔧 バグ修正
  • fixモデル更新時にAPIキーが消える問題を修正: 設定UIのパスワードフィールドが空で送信された際に、既存のAPIキー・トークン・シークレット類を上書きしないよう保護
  • fixモデルリストが空の場合に更新処理が例外で停止する問題を修正
v1.10.2 (2026-03-17)
🔧 バグ修正
  • fixWebUIの返信遅延設定が効いていなかった問題を修正: 遅延設定がある場合にチャットUIが即時応答を返していたバグを修正。遅延設定時はキューに積んでポーリングで受信する方式に変更
v1.10.1 (2026-03-17)
🔧 バグ修正
  • fix「1日のリズム」設定が保存されない問題を修正: セットアップを複数回実行すると時間帯・インストラクション設定が重複・初期化されるバグを修正。既存の重複行も自動クリーンアップされます(再セットアップ推奨)
  • fix「1日のリズム」設定項目のdescription欄が空だった問題を修正: 【変数】/【システム指示】の区別と対象時間帯を明示するよう変更
⚡ APIエラーハンドリング強化
  • fixレート制限エラーのラベルを「リクエスト上限」に変更: 課金上限エラー(HTTP 429)も含まれるため、より正確な表現に修正
  • feat課金上限エラー(error_api_402)を新規追加: OpenRouter等の課金上限に特化したエラーメッセージを個別設定できるように
✨ システムプロンプト改善
  • improvebuildSystemText() 全面改善: 各ブロックを「ラベル」から「AIへの具体的な指示文」に改善。能力の低いモデルでも意図が伝わりやすい構造に
  • improve現在時刻を常時注入: TIME_BEHAVIORがなくても現在時刻(JST)と時間帯が必ずシステムプロンプトに含まれるように
  • improveAIの名前(partner_name)を常時注入
  • improveRAG・記憶ブロックに利用指示文を追加: 「事実として扱う」「記憶にない内容の創作は禁止」等の指示を明記
v1.10.0 (2026-03-17)
⏱️ 返信遅延(間合い演出)
  • feat返信遅延設定: メッセージ受信後にランダム1〜N分の待機時間を設定可能。人間らしい間合いを演出(応答スタイルセクション)
  • feat寂しさゲージ連動モード: 「距離感と孤独」の確率曲線に基づいてAIが返信タイミングを決める。ランダム遅延より優先
  • fixLINE遅延配信修正: 遅延処理時にreplyTokenが失効してメッセージが届かない問題を修正(Push APIに自動切替)
🌿 テラリウム強化
  • featテラリウム返信遅延: Botが返信するまでランダムに待機する上限時間を設定可能
  • featテラリウム寂しさ判定: 静寂が続くとBotが自動で話しかける。返信遅延より優先
  • fixスレッド誤作成を修正: テラリウムが返信ではなく新規スレッドを立ててしまう問題を修正
🤖 GLM改善
  • fixthinking制御修正: GLM_THINKINGがONのとき非対応モデル(FlashX・Air等)でエラーになる問題を修正
  • featモデルリスト改善: APIが返さないモデルも静的リストで確保。glm-5-code・glm-ocrを追加
🔧 バグ修正・改善
  • fixメール本文トグル修正: OFFにしても本文が送られるバグを修正
  • fixunified push重複修正: 全チャットをまとめるモードでLINEとWebUI両方に別々push飛ぶ問題を修正
  • changeデフォルト値改善: 新規セットアップ時の会話モードを「全チャットをまとめる」、自発話しかけ時履歴参照をONに変更
v1.9.0 (2026-03-15)
🖥️ 新UI標準化
  • change新UIをデフォルトに: /exec で直接新しいタブ型UIが開くように。旧URLのブックマークも新UIにリダイレクト
🎨 テーマ・外観強化
  • featカスタムテーマ(1〜3): ユーザーが独自の配色を最大3パターン保存・呼び出せるカスタムプリセットスロットを追加
  • fixライトテーマ対応: シュガーなどのライトテーマで設定UIの文字・ボーダーが消える問題を修正
  • fixテーマプレビュー修正: テーマ選択でリアルタイムプレビューが反映されなかった問題を修正
🔔 アップグレードフロー改善
  • featアップグレードバッジ: 設定タブのアイコンに赤丸バッジでアップデートを通知。バナーなしで気づけるように
  • change手動実行方式に変更: アップグレードはユーザーがボタンを押して実行する方式に。バックグラウンド自動処理は廃止
  • fix白画面問題修正: アップグレードやテーマ保存後に画面が真っ白になる問題を修正(iframeのみリロードする方式に変更)
⚙️ 設定UI改善
  • featタブナビゲーション: 設定画面をキャラ/AI/外観/実行/他の5タブに再構成
  • feat文字数制限を明記: システムプロンプトの推奨・最大文字数(推奨3,500字・最大約6,000字)を設定画面に記載
  • fixGASバナー被さり修正: GASが挿入するバナーがUIに重なる問題を修正
  • fixトースト折り返し修正: トースト通知のメッセージが横に切れる問題を修正
🌿 テラリウム
  • change時間制限バケツ方式: 投稿数制限をデイリー制から1時間あたりの上限(デフォルト5投稿)に変更。リセットトリガー不要で自動リセット
v1.8.0 (2026-03-14)
⏱️ スケジューラ最適化
  • fix毎分トリガー統一: scheduledEveryMinute を常に1分間隔に。LINEが5分間隔だったためポモドーロ・孤独プッシュが最大5分遅延していた問題を解消
  • fix孤独プッシュ誤送信防止: プッシュ判定を10分間隔のフラグ制御に変更。1分ごとに呼ぶと連続送信されるリスクがあった
  • featテラリウム独立トリガー: テラリウムのスケジュールチェックを15分の独立トリガーに分離
  • change重複トリガー廃止: scheduledCheck の30分独立トリガーを廃止し、scheduledEveryMinute 内の制御に統合
🖼️ 画像処理統一
  • featLINE/Telegram画像フロー統一: 画像受信後 N 分以内にテキストがなければ自動解析返信。LINE と Telegram で同じ動作に(photo_reaction_timeout_minutes で設定)
  • fix画像の会話継続: 画像送信後の会話ログに [画像] プレフィックスを追加。次のターンでAIが画像のやりとりを参照できるように
  • changeコードDRY化: プラットフォーム別の画像フェッチを _fetchImageBase64_() ヘルパーに統一
🧠 長期記憶改善
  • feat日付付き記憶: 長期記憶を「<今週>(日付付き)」+「<以前>(キーワードのみ)」の2段構成に。1週間以上前の記憶はキーワードに圧縮
  • feat思い出優先: 記憶の優先基準をありふれた日常から「印象的な思い出・感情的に残るもの」に変更
v1.7.3 (2026-03-14)
🐛 安定性修正
  • fix新規インストール安定化: 新規インストール時にLINE Webhookが応答しない問題を修正
v1.7.2 (2026-03-12)
⚙️ 設定UI改善
  • changeセクション名改訂: 「AIコア」→「AI選択」、「記憶のエンジン」→「日記・記憶用のAI選択」、「ブラウザUI」→「ブラウザ画面設定」
  • changeOpenRouterを末尾へ: エンジン選択肢でOpenRouterを一番下に並び替え
  • featクイックコマンド強化: 「今すぐスレッドを建てる」をクイックコマンドに追加
  • featメール内容表示切替: メール通知に「会話内容を含める」トグルを追加。OFFにすると件名のみ送信
  • changeテーマカラー対応: メニュータイトルの文字色がテーマカラーに馴染むように調整
🐛 バグ修正
  • fixSlack別スレ記憶: Slackの別スレッド(テラリウム等)でユーザーが発言した内容がAIの記憶に残らない問題を修正
v1.7.1 (2026-03-12)
🤖 テラリウム(ベータ)
  • AIテラリウム: 複数のAIボットがSlackスレッドで自律的に会話を続ける機能をベータとして追加
  • 自己返信バグ修正: ボットが自身のメッセージに返信してしまう問題を修正
  • 会話継続強化: チェーン継続(1トリガーで複数ターン連続返答)と継続確率引き上げにより会話がより長く続くように
  • キャラクター一貫性: ボット固有の過去発言サンプルをプロンプトに注入
  • パートナーボット修正: 時間帯・モード・チャンネル設定を正しく反映するように
  • その他バグ修正: タイムスタンプ精度ズレ・二重ログ記録を修正
🐛 LINE Webhook 修正
  • 302タイムアウト解消: 受信時に即200を返し処理を非同期化。Webhookの安定性が大幅に向上
  • ヘッダー消失対応: GASリダイレクト時にシグネチャヘッダーが消える問題に対応
v1.7.0 (2026-03-09)
✨ 新機能
  • RSSフィード: フィードを最大10件登録。時間帯切り替わりを検知してキャラクターが好きそうな記事を自然に話しかける(時間帯ごとにON/OFF)
  • RSS自動翻訳: 英語記事を Google 翻訳(LanguageApp)で日本語化。LLMコスト不要
  • RSS話のネタ注入: ヘッドライン+概要をシステムプロンプトに差し込み、AIが話題に困った時に自然に使う(Push時・ニュース問いかけキーワード検知時)
  • 文脈スコアリング: バイグラム照合で会話内容に近い記事を優先選択(ON/OFFトグル)
  • 日記へのネタ補填: 会話が少ない日でもRSSネタを日記に織り込み可能
  • チャット画面アップグレードバナー: デフォルト画面がチャットになったため、チャット側でもバージョン更新を通知
🎨 デザイン
  • グロー/シャドウ演出: セクションヘッダー・アイコン・入力フォームに光彩エフェクトを追加
  • セクション名刷新: AIコア/記憶のエンジン/人格・世界観/一日のリズム/距離感と孤独 など感覚的な名称に変更
  • 時間帯名称変更: 夕方→夕方〜夜、夜→深夜(内部キーは変更なし)
🐛 バグ修正
  • OpenAI日記エラー: 空の user コンテンツを送信していた問題を修正(503/429)
  • 設定を開くリンク: ?page=config なしで開いていた問題を修正
  • INTERNAL_VERSION更新通知: 内部バージョン変化でもアップグレード画面が出るように
v1.6.0 (2026-03-08)
🐛 バグ修正
  • セレクト日本語化: buildFieldHtml のセレクト描画で item.l(日本語ラベル)が無視されていた根本バグを修正。会話モード・通知タイミングなど全フィールドが正しく表示されるように
  • 会話モード pre ブロック: 説明欄の Away / Home / Unified を外出中 / 在宅 / 統合 に日本語化
  • テーマ文字色: calculateAccentTextColor をアクセント輝度基準→背景色輝度基準に変更。ワインなど暗背景+明アクセントで文字が黒くなる問題を解消
  • アクションボタン: .act-btn の背景を透明→テーマカラー薄掛けに変更。ライトテーマで枠だけに見える問題を修正
  • フォントサイズ適用: applyFontSize の全 CSS ルールに !important を追加。inline style による上書きを防止
  • pre フィールド: テキスト色を var(--muted)→var(--text) に変更、font-weight:600 を追加(読みにくい問題を解消)
  • 保存ボタンが「保存中」のまま詰まる: 削除済み要素 f_webui_theme_color の null 参照による TypeError を修正
✨ 新機能 / 改善
  • 時間帯設定: 24 時間を朝/昼/夕方/夜の 4 帯に分けるビジュアルスライダーを追加。境界時刻をドラッグ調整、時間帯ごとにインストラクションを設定可能
  • 時間帯システムプロンプト: getCurrentTimePeriod() を追加。現在時刻に応じた時間帯の指示をシステムプロンプトに自動追記
  • フォントサイズスライダー: A-/A+ ボタン→スライダーに変更(width:192px)、8 段階(11〜25px)に拡張
  • アップグレードバナー: マトリックスグリーン(#020f02 / #00ff41)固定デザインに変更。どのテーマでも干渉しない
  • テーマプリセット: プルダウン化(webui_selected_theme)。ヘッダーの選択と設定フォームを双方向同期
v1.5.1 (2026-03-04〜06)
✨ 機能追加 / 改善
  • WebUI カラー設定: 背景色・AI 吹き出し・ユーザー吹き出し・ヘッダー・入力バー・アクセント色を設定画面から変更可能に
  • フォント拡張: ヘッダーにフォントファミリー選択(8 種)とサイズ調整を統合
  • 詳細設定トグル: 詳細設定を折りたたんで基本設定だけを表示するトグルを追加
  • ヘルプツールチップ: 各設定項目にヘルプアイコンを追加
  • レスポンシブアイコン: モバイル/タブレット向け自動スケーリングアイコン(5 段階)
  • 必須設定ハイライト: 未入力の必須 API キーを自動ハイライト表示
  • UI 構造の見直し: 頻繁に変更する設定とシステム設定を分離
🐛 バグ修正
  • アップグレードボタン: スコープ外変数参照の ReferenceError で runSetup() が呼ばれない問題を修正
  • ボタン文字色: 白 #fff→ソフトグレー #e0e0ec、text-shadow を追加
  • CSS 整合性: --fg/--bg2 未定義変数を var(--text)/var(--ibg) に修正
v1.5.0 (2026-03-03)
✨ チャネル・モード設定
  • active_mode: away(LINE 等)/ home(WebUI 等)/ unified(全チャネル統合)の 3 モードを追加
  • mode_instruction: Away/Home ごとにシステムプロンプト先頭に挿入する状況説明を設定可能
  • channel_instruction: LINE / Slack / Telegram / WebUI ごとに補足指示を設定可能
  • Unified モード: 全チャネルの会話履歴を統合参照(72h / 最大 50 件)
✨ RAG UI 改善
  • キーワード直接編集: RAG エントリをキー・コンテンツの 2 フィールド構成に刷新
  • 追加・削除ボタン: UI からエントリを追加・削除可能、セクション部分再描画に対応
✨ その他
  • WebUI event_queue 統合: WebUI メッセージを event_queue に記録し監査ログを統一
  • type:'pre' フィールド: 等幅フォントの ASCII アート表示フィールドを追加
v1.4.15 (2026-03-02)
🐛 バグ修正
  • pushConversationLog に LockService を追加: スケジュールトリガーと WebUI の同時書き込みによる競合を防止
  • compressImageToBase64: 例外発生時に Drive 一時ファイルが残存するバグを finally ブロックで修正
v1.4.11〜14 (2026-03-01〜02)
✨ チャット UI 改善
  • フォント選択 8 種: システム / Noto Sans JP / BIZ UD / M PLUS / 丸ゴシック / クレー / 明朝 / ロック(Google Fonts)
  • アイコンサイズ切替: 小/中/大をチャット UI の⚙パネルから変更可能(localStorage 保存)
  • バージョン自動検出: 5 分ごとに稼働バージョンをポーリング、変化があれば更新バナーを表示
  • 設定 UI リンク: チャット UI の⚙パネルから設定画面を開けるボタンを追加
v1.4.4〜10 (2026-03-01)
🐛 アップグレード・設定 UI 安定化
  • 自動アップグレード無限ループ解消: バナー表示のみに変更し、ユーザーがボタンを押したときだけ実行する方式に
  • LAST_SETUP_VERSION を ScriptProperties に移行: config シートの読み取りタイミング問題を根本解決
  • SPA 方式リロード: window.top.location.href の cross-origin ブロック問題を解消。_refreshAndReload() で DOM をその場で書き換え
  • updateModels フロー整理: 保存 → モデル更新 → _refreshAndReload() の 1 本道に統一
  • Gemini 無料モデルフィルタ: GEMINI_FREE_TIER_ONLY 設定を追加。Flash / Gemma / Lite 系を無料判定
  • 設定 UI コマンドボタン整理: 今すぐ話しかける・日記生成・モデル更新に絞り込み。その他はデバッグセクションへ
v1.3.0〜3.14 (2026-02-27〜03-02)
✨ WebUI チャット新規追加
  • chat_ui.html: LINE/Slack/Telegram 不要でブラウザから会話。iOS/Android モバイルファースト、safe-area 対応
  • localStorage キャッシュ: 2 回目以降の起動をほぼ即時表示。差分マージで画面ちらつきなし
  • ブラウザ通知: 新着メッセージ時に Web Notification API で通知・タブバッジ表示
  • 固有名詞ハードコード全廃: CONFIG["partner_name"] / CONFIG["user_name"] を全箇所で使用
  • scheduledEveryMinute() 統合: processQueue + pollTelegramUpdates + pomodoro の 3 トリガーを 1 つに統合
v1.0〜1.2 (2026-02-25〜26)
✨ 初期リリース
  • LINE / Slack / Telegram 対応: マルチプラットフォームメッセージ処理
  • Telegram ポーリング方式: Webhook の GAS cross-origin 問題を解消
  • マルチモーダル: 画像+テキスト送信対応(LINE / Slack / Telegram)
  • Slack 二重送信修正: dedup を CacheService→PropertiesService(永続)に変更
  • メール通知: realtime / 6h_summary / daily_summary の 3 モードを追加