Releases: aveluneverse/EverOtome
Release list
EverOtome v0.4.0-beta
如果你之前已 Clone 或 Fork EverOtome,請更新至 v0.4.0-beta。
這是一個功能更新版,給已經有自己 AI 伴侶的人:伴侶照舊在原本的伺服器或電腦上跑,人設和記憶檔一個都不用搬,EverOtome 接上去就是它的新窗戶。
- Clone:
git pull - Fork:按 Sync fork
相容性:設定檔、素材與後端都不需要修改。 三顆固定顯示的按鈕規則也沒變;沒有語音功能時,把 ttsEndpoint 設為空字串即可。
中文
更新
-
接入指南:一頁寫給你的 AI 助手看的說明
- 新增 docs/integration-guide.md。交給 Claude 或 Codex,它就知道要做的只有兩件事:把
engine/資料夾端給瀏覽器,以及收到一句話就回一則 JSON 訊息。 - 頁上整理了五個最容易出錯的地方:畫面和聊天要來自同一個來源、AI 本體不用搬、bot 的輪詢迴圈怎麼跟網頁伺服器共存、三顆固定顯示的按鈕、歷史紀錄的格式。
- 接法三選一:跑 HTTP 翻譯官、把 WebSocket 加進伴侶自己的程式(附 Python 與 Node 各約 30 行、實際跑過的範例),或用反向代理。
- 只要伴侶跑在你自己的伺服器或電腦上(Telegram bot、自刻前端、Python 腳本都算)就接得上;只住在 Claude.ai、ChatGPT 這類跑不了程式的平台裡的伴侶,目前接不了,頁上有寫明。
- 新增 docs/integration-guide.md。交給 Claude 或 Codex,它就知道要做的只有兩件事:把
-
接線自檢:讓你的 AI 看得到接線狀態
- 新增
tools/check_integration.py。你的 AI 看不到畫面,這支工具替它檢查:指向你的伺服器之後,逐項顯示 EverOtome 頁面能不能開、WebSocket 聊天接不接得上、回覆格式對不對,以及語音、照片、通話、相冊目前各是什麼狀態。 - 每一項失敗都附一行怎麼修。
- 只用 Python 標準函式庫,不用另外裝套件。
- 新增
-
HTTP 翻譯官:伴侶只要有一個「收一句、回一句」的路由
- 新增
examples/http-bridge/。翻譯官替你提供 EverOtome 畫面、接好 WebSocket 聊天,再把每則訊息轉成 HTTP POST 送給原本的伴侶。 - 欄位名稱不同(例如
message/reply)也不用改伴侶,在翻譯官指定名稱就好。 - 同樣不用裝套件;另附一個會原樣回話的 echo 測試伴侶,先確認整條連線正常,再接真正的伴侶。
- 新增
-
Everthine 範例
- 新增
examples/everthine-adapter/,示範在不修改 Everthine 本體的情況下,把它的 Telegram 伴侶接成翻譯官可以呼叫的路由。 - 這只是其中一種示範;任何「文字進、文字出」的伴侶都能用同樣的方法接上 EverOtome。
- 新增
-
README 啟動提醒
python serve.py上方新增一句:它只會啟動預覽用的靜態伺服器,不會連接聊天後端,免得把預覽成功誤認為聊天已接通。- 指令改成
python serve.py 8300,並說明最後那個數字是連接埠,被占用時換一個就好。 - 「給開發者」段的第一個連結改為接入指南,接線入口更好找。
回報問題
卡住、發現 bug 或有想法,都可以匿名告訴我,不需要帳號:
https://marshmallow-qa.com/a4u0myommjpyzup
日本語
これまでに EverOtome をクローンまたはフォークした方は、v0.4.0-beta へ更新してください。
今回は、すでにご自身の AI コンパニオンをお持ちの方に向けた機能追加版です。コンパニオンを今の環境で動かしたまま、人格や記憶を移すことなく EverOtome という新しい顔を追加できます。
- Clone:
git pull - Fork:Sync fork をクリック
互換性:設定ファイル、素材、バックエンドの変更は不要です。 常時表示される 3 つのボタンに関するルールも変わりません(音声機能がない場合は、ttsEndpoint を空文字列に設定してください)。
更新
-
接続ガイド:AI アシスタントに読ませるためのページ
- docs/integration-guide.md を追加しました。Claude や Codex に渡せば、連携に必要なのは「
engine/フォルダを配信すること」と「メッセージを 1 件受け取り、JSON を 1 件返すこと」の 2 点だと理解できます。 - つまずきやすい 5 項目もまとめています:画面とチャットを同一オリジンにすること、AI 本体を移さないこと、Bot のポーリングループと Web サーバーを同居させる方法、常時表示される 3 つのボタン、履歴データの形式。
- 接続方法は 3 通りから選べます:HTTP ブリッジを使う、コンパニオンのプロセスに WebSocket 対応を追加する(Python 版と Node 版のサンプルはそれぞれ約 30 行で、動作確認済み)、リバースプロキシを使う。
- コンパニオンがご自身のサーバーや PC で動いているなら(Telegram Bot、自作フロントエンド、Python スクリプトなど)接続できます。Claude.ai や ChatGPT のように、コードを動かせないサービスの中だけにいるコンパニオンは、今のところ接続できません。ページにもその旨を書いています。
- docs/integration-guide.md を追加しました。Claude や Codex に渡せば、連携に必要なのは「
-
接続チェッカー:AI の代わりに接続状態を調べる
tools/check_integration.pyを追加しました。AI アシスタントは画面を直接確認できないため、このツールが代わりに調べます。サーバーを指定すると、EverOtome の画面を表示できるか、WebSocket でチャットに接続できるか、返答形式が正しいか、音声/写真/通話/アルバムが利用できる状態かを 1 項目ずつ表示します。- 失敗した項目には、すべて修正方法を 1 行で添えます。
- Python の標準ライブラリだけで動作するため、追加パッケージは不要です。
-
HTTP ブリッジ:「1 件受け取り、1 件返す」ルートがあれば足ります
examples/http-bridge/を追加しました。ブリッジが EverOtome の画面を配信し、WebSocket 接続を受け付け、各メッセージを HTTP POST としてコンパニオンへ渡します。- フィールド名が違っていても(
message/replyなど)、ブリッジ側に指定するだけで、コンパニオンを変更する必要はありません。 - こちらも追加パッケージは不要です。入力をそのまま返す echo コンパニオンも同梱しているため、実際のコンパニオンにつなぐ前に接続全体を確認できます。
-
Everthine の例
examples/everthine-adapter/を追加しました。Everthine 本体を変更せずに、Telegram コンパニオンをブリッジから呼び出せる HTTP ルートとしてつなぐ方法を示しています。- これは一例で、「テキストを受け取り、テキストを返す」コンパニオンなら同じ方法で EverOtome に接続できます。
-
README の起動時の注意
python serve.pyの上に注意書きを追加しました。このコマンドで起動するのはプレビュー用の静的サーバーだけで、チャット用バックエンドは中継しません。画面が開いても、このコマンドだけではチャットには接続されません。- コマンドは
python serve.py 8300の形にし、最後の数字がポート番号で、使われているときは別の番号にできることも書き添えました。 - 「開発者の方へ」の先頭には接続ガイドへのリンクを置き、連携手順をすぐに見つけられるようにしました。
フィードバック
困ったこと、バグ、アイデアなどを匿名で送れます。アカウント不要です。
https://marshmallow-qa.com/a4u0myommjpyzup
English
If you have already cloned or forked EverOtome, please update to v0.4.0-beta.
A feature release for people who already have an AI companion: give it an EverOtome face without moving its persona or memory; it keeps running where it is.
- Clone:
git pull - Fork: click Sync fork
Compatibility: no changes are required to your config files, assets, or backend. The behavior of the three persistent buttons is unchanged (if there is no voice, set ttsEndpoint to an empty string).
Changed
-
Integration guide: one page written for your AI assistant
- Added docs/integration-guide.md. Give it to Claude or Codex and it learns the two things the interface needs: serve the
engine/folder, and answer each incoming message with one JSON frame. - It also covers five easy-to-miss details: same-origin setup, keeping the AI itself where it is, running the web server alongside a bot's polling loop, the three buttons that stay on screen, and the format of the chat history.
- Three ways in: run the HTTP bridge, add WebSocket support to the companion's own process (with tested Python and Node examples of about 30 lines each), or put a reverse proxy in front.
- Any companion running on a server or computer you control (a Telegram bot, a custom front end, a Python script) can be connected. A companion that lives only inside a service you cannot run code on, such as Claude.ai or ChatGPT, cannot be connected yet; the page says so.
- Added docs/integration-guide.md. Give it to Claude or Codex and it learns the two things the interface needs: serve the
-
Integration checker: it sees the connection for your AI
- Added
tools/check_integration.py. Your AI cannot see the screen, so this tool checks the connection on its behalf. Point it at your server to see whether the EverOtome page is served, the WebSocket connects, replies are well formed, and voice, photos, calls, and the album are ready to use. - Each failure comes with a one-line
fix:suggestion. - It uses only the Python standard library, so there is nothing to install.
- Added
-
HTTP bridge: one "text in, text out" route on the companion is enough
- Added
examples/http-bridge/. The bridge serves the EverOtome page, accepts the WebSocket connection, and forwards each message to the companion as an HTTP POST. - If your field names differ, say
messageandreply, specify them in the bridge instead of modifying the companion. - Nothing to install here either, and an echo companion that returns its input unchanged is included, so you can test the full connection before attaching your real companion.
- Added
-
Everthine example
- Added
examples/everthine-adapter/, which shows how to expose an Everthine Telegram companion through an HTTP route the bridge can call, without modifying Everthine itself. - This is only one example; any "text in, text out" companion can connect to EverOtome in the same way.
- Added
-
README startup note
- A note above
python serve.pynow says it starts a static preview server only, with no chat backend behind it, so a working preview is not mistaken for a working chat. - The command is now
python serve.py 8300, with a line explaining that the last number is the port and can be changed if 8300 is taken. - The developer section leads with the integration guide, so the wiring entry point is easier to find.
- A note above
Feedback
Stuck, found a bug, or have an idea? You can send it anonymously, no account needed:
EverOtome v0.3.1-beta
如果你之前已 Clone 或 Fork EverOtome,建議更新至 v0.3.1-beta。
這是一個介面小修版:「回報問題」現在固定放在首頁版本列,並修正首頁與設定頁的更新結果同步。
- Clone:
git pull - Fork:按 Sync fork
相容性:設定檔、素材與後端都不需要修改。
中文
修復
-
「回報問題」移到首頁版本列
- 現在會與「檢查更新」並排:
v0.3.1-beta · 檢查更新 · 回報問題 - 桌機顯示在標題下方;手機因為一行放不下,改成右上角一顆小圖示(跟展開對話的圖示並排)。
- 原本位於 Chat Log 連線狀態下方的重複入口已移除。
- 現在會與「檢查更新」並排:
-
更新檢查失敗時不再重複顯示回報入口
- 首頁檢查更新失敗時,畫面只保留固定的回報入口(桌機在版本列、手機在右上角)。
-
首頁與設定頁的更新結果會同步
- 從首頁檢查更新後再打開設定頁,會直接看到同一個結果,不需要再按一次。
-
檢查失敗時可直接重試
- 首頁「目前無法檢查」句尾多了一個重試入口(桌機是「檢查更新」字樣、手機是小箭頭 ↻),點一下就再查一次。
-
手機表頭間距
- 標題、分頁列、連線狀態三排之間拉開了一點距離,不再擠在一起。
- 顯示檢查結果時,手機只顯示結果句,版本號暫時讓位。
回報問題
卡住、發現 bug 或有想法,都可以匿名告訴我,不需要帳號:
https://marshmallow-qa.com/a4u0myommjpyzup
日本語
これまでに EverOtome をクローンまたはフォークした方は、v0.3.1-beta への更新をおすすめします。
UI を中心とした小規模な修正版です。「問題を報告」をホーム画面のバージョン表示欄に常設し、ホーム画面と設定画面のアップデート確認結果が同期されるようにしました。
- Clone:
git pull - Fork:Sync fork をクリック
互換性:設定ファイル、素材、バックエンドの変更は不要です。
修正
-
「問題を報告」をホーム画面のバージョン表示欄へ移動
- 「アップデートを確認」と同じ行に表示されます。
v0.3.1-beta · アップデートを確認 · 問題を報告 - PC ではタイトルの下に表示します。スマートフォンでは一行に収まらないため、右上の小さなアイコン(Chat Log を広げるアイコンの隣)にしました。
- Chat Log の接続状態の下にあった重複リンクは削除しました。
- 「アップデートを確認」と同じ行に表示されます。
-
アップデート確認失敗時の重複リンクを削除
- アップデートの確認に失敗した場合も、問題報告への常設リンクだけを表示します(PC ではバージョン表示欄、スマートフォンでは右上のアイコン)。
-
ホーム画面と設定画面の結果を同期
- ホーム画面で確認した後に設定画面を開くと、同じ結果がすぐに表示されます。再確認は不要です。
-
確認に失敗したときはその場で再試行
- ホーム画面でアップデートの確認に失敗したとき、失敗メッセージの末尾から直接もう一度確認できるようにしました(PC では「アップデートを確認」の文字、スマートフォンでは小さな矢印 ↻)。
-
スマートフォンのヘッダー間隔を調整
- タイトル、タブ、接続状態の三段の間隔を少し広げ、窮屈に見えないようにしました。
- 確認結果を表示している間は、スマートフォンではバージョン番号を一時的に非表示にし、結果の文だけを表示します。
フィードバック
困ったこと、バグ、アイデアなどを匿名で送れます。アカウント不要です。
https://marshmallow-qa.com/a4u0myommjpyzup
English
If you have already cloned or forked EverOtome, please update to v0.3.1-beta.
This is a small UI fix release: “Report a problem” now has a permanent place in the home-screen version line, and update-check results sync correctly between the home screen and Settings.
- Clone:
git pull - Fork: click Sync fork
Compatibility: no changes are required to your config files, assets, or backend.
Fixed
-
Moved “Report a problem” into the home-screen version line
- It now sits beside “Check for updates”:
v0.3.1-beta · Check for updates · Report a problem - Desktop: under the title.
- Mobile: the line would not fit, so “Report a problem” becomes a small icon in the top-right corner, next to the expand-chat icon.
- The duplicate link below the Chat Log connection status has been removed.
- It now sits beside “Check for updates”:
-
Removed duplicate reporting links after failed update checks
- If the update check fails, only the permanent entry remains: the version line on desktop or the top-right icon on phones.
-
Synced update-check results between the home screen and Settings
- After checking from the home screen, opening Settings now shows the same result immediately. No second check is needed.
-
Retry right where the check failed
- On the home screen, “Could not check right now” now ends with a retry control: the “Check for updates” text on desktop, a small ↻ on phones. Use it to check again.
-
Phone header spacing
- The title, tabs, and connection-status rows now have a little more room between them.
- While an update-check result is visible, phones temporarily hide the version number and show only the result sentence.
Feedback
Stuck, found a bug, or have an idea? You can send it anonymously, no account needed:
EverOtome v0.3.0-beta
如果你之前已 Clone 或 Fork EverOtome,建議更新至 v0.3.0-beta。
這次是小型功能更新:首頁可以直接查看版本與檢查更新,遇到問題時也能就地回報。
- Clone:
git pull - Fork:按 Sync fork
相容性:設定檔、素材與後端都不需要修改。
中文
新功能
-
首頁加入版本號與「檢查更新」
- 桌機顯示在左上標題下方,手機顯示在標題右側。
- 點擊後才會連線到 GitHub,不會自動檢查。
- 有新版時會提供連結;沒有新版時會顯示目前已是最新版本。
-
在容易卡住的位置加入「回報問題」
- 首頁檢查更新失敗
- 對話框顯示尚未連上線
- 設定頁檢查更新失敗
- 工具腳本錯誤訊息
- 接線手冊與素材指南
不用再回 README 找入口,當下就能匿名回報:
https://marshmallow-qa.com/a4u0myommjpyzup
其他調整
- 首頁與設定頁共用同一套更新檢查;從設定頁查完,首頁會跟著顯示(反向同步在 v0.3.1 補上)。
- Engine console 錯誤訊息末尾也會附上匿名投稿箱網址,訊息維持英文。
自訂前端使用者請注意
前端新增三個小模組:
engine/js/version-chip.jsengine/js/update-check.jsengine/js/feedback.js
如果你自行修改過 engine/index.html,請留意左上角 #brand 內新增的 #ver-chip。
日本語
これまでに EverOtome をクローンまたはフォークした方は、v0.3.0-beta への更新をおすすめします。
今回の主な変更は、ホーム画面でバージョン確認とアップデート確認ができるようになり、困った場所からそのまま問題を報告できるようになったことです。
- Clone:
git pull - Fork:Sync fork
互換性:設定ファイル、素材、バックエンドの変更は不要です。
新機能
-
ホーム画面にバージョン表示と「アップデートを確認」を追加
- PC では左上タイトルの下、スマートフォンではタイトル右側に表示されます。
- GitHub への接続はボタンを押したときだけで、自動確認は行いません。
- 新しいバージョンがあればリンクを表示し、なければ最新であることを表示します。
-
つまずきやすい場所に「問題を報告」を追加
- ホーム画面のアップデート確認失敗時
- バックエンド未接続時
- 設定画面のアップデート確認失敗時
- ツールスクリプトのエラー
- バックエンド連携仕様と素材ガイド
README を探さず、その場から匿名で送れます:
https://marshmallow-qa.com/a4u0myommjpyzup
その他
- ホーム画面と設定画面は同じアップデート確認処理を使っています。設定画面で確認すると、ホーム画面にも同じ結果が表示されます(逆方向の同期は v0.3.1 で対応)。
- Engine console のエラーメッセージ末尾にも投稿箱 URL を追加しました。メッセージは引き続き英語です。
フロントエンドをカスタマイズしている方へ
次の三つのモジュールが追加されています。
engine/js/version-chip.jsengine/js/update-check.jsengine/js/feedback.js
engine/index.html を編集している場合は、左上 #brand 内に追加された #ver-chip をご確認ください。
English
If you have already cloned or forked EverOtome, please update to v0.3.0-beta.
This feature release adds two things to the home screen: version/update checking and easier problem reporting.
- Clone:
git pull - Fork: click Sync fork
Compatibility: no changes are required to your config files, assets, or backend.
New
-
Version number and “Check for updates” on the home screen
- Desktop: under the title in the top-left corner.
- Mobile: on the same line to the right of the title.
- GitHub is contacted only when you click. There is no automatic update check.
- If a newer version exists, EverOtome shows a link; otherwise it confirms that you are up to date.
-
“Report a problem” where you are most likely to need it
- home-screen update-check failures
- no-backend state in the dialogue box
- Settings update-check failures
- tool-script errors
- backend contract and asset guides
You can report issues anonymously without digging through the README:
https://marshmallow-qa.com/a4u0myommjpyzup
Other changes
- The home screen and Settings use the same update check. After you check from Settings, the home screen shows the same result (syncing in the other direction is added in v0.3.1).
- Engine console errors now include the feedback-box URL. Console messages remain in English.
For customized front ends
Three small modules were added:
engine/js/version-chip.jsengine/js/update-check.jsengine/js/feedback.js
If you maintain a customized engine/index.html, note the new #ver-chip element inside #brand.
EverOtome v0.2.1-beta
如果你在 2026/08/27 前已 Clone 或 Fork EverOtome,建議更新至 v0.2.1-beta。
這一版主要修正第一次使用時容易遇到的問題,並補齊安裝、部署與工具說明。
已下載過的使用者可直接:
- Clone:
git pull - Fork:按 Sync fork
相容性:設定檔、素材與後端皆可沿用,不需要修改。
中文
修復
-
避免範例角色 Rye 被工具覆寫
- 已移除舊版
tools/make_sample_character.py。這支腳本過去即使只執行--help,也可能覆寫 Rye 並產生幾何佔位圖。 - 其餘三支產生器現在只有在加上
--force時才會覆寫隨附檔案;--help不會寫入檔案。 - 如果你或 AI 助手曾執行過舊腳本,請執行:
舊的
git checkout -- engine/assets/sample git pull
tools/make_sample_character.py在git pull之後會自動消失;若還在,手動刪掉即可。額外產生的九張.webp未被使用,刪除或保留都不影響 EverOtome。
- 已移除舊版
-
未連接後端時不再卡在「連線中」
- 幾秒後會直接顯示尚未連上線,方便判斷目前只是尚未接後端,而不是程式故障。
-
直接開啟
engine/index.html時會顯示提示- 不再只看到空白頁面,畫面會提醒先啟動本機伺服器。
-
「檢查更新」結果會跟著語言切換
- 切換語言後,不會再出現不同語言混在同一個畫面的情況。
文件與工具
- Quick Start 補充:
python不可用時改用python3- Windows 複製指令
- Chat WebSocket 的同源規則
- 未接後端時的正常 console 訊息
- 接線手冊新增 Deployment: one origin,附 Caddy 與 nginx 的實測設定,包含上傳大小與閒置逾時。
- 新增
tools/README.md,說明各工具用途。正常執行 EverOtome 不需要使用這些工具。 tools/record_demo.py --help現在不需先安裝 Playwright。- Engine console 訊息統一改為英文。
- 移除未被任何頁面使用的
engine/demo.html。
回報問題
卡住、發現 bug 或有想法,都可以匿名告訴我,不需要帳號:
https://marshmallow-qa.com/a4u0myommjpyzup
日本語
2026年8月27日より前に EverOtome をクローンまたはフォークした方は、v0.2.1-beta への更新をおすすめします。
初回セットアップでつまずきやすかった点を修正し、導入・デプロイ・ツール周りの説明を整理しました。
- Clone:
git pull - Fork:Sync fork
互換性:設定ファイル、素材、バックエンドはそのまま使えます。
修正
-
サンプルキャラクター Rye の上書きを防止
- 旧
tools/make_sample_character.pyを削除しました。このスクリプトは--helpを含む実行時に Rye のファイルを上書きし、幾何学プレースホルダーを生成することがありました。 - 残る三つの生成スクリプトは、
--forceを付けた場合のみ同梱ファイルを上書きします。--helpではファイルを書き換えません。 - 旧スクリプトを実行したことがある場合:
git checkout -- engine/assets/sample git pull
git pull後、旧tools/make_sample_character.pyは自動的に削除されます(残っている場合は手動で削除してください)。追加で生成された九枚の.webpは未使用のため、削除しても残しても動作には影響しません。
- 旧
-
バックエンド未接続時の表示を改善
- 「接続中」のまま止まらず、数秒後に未接続であることを表示します。
-
engine/index.htmlを直接開いた場合に案内を表示- 空白画面ではなく、ローカルサーバーを起動するよう案内します。
-
アップデート確認結果が言語切り替えに追従
- 切り替え後に別言語の結果が残りません。
ドキュメントとツール
- Quick Start に
python3、Windows のコピーコマンド、WebSocket の同一オリジン規則、バックエンド未接続時の正常な console 表示を追加。 - バックエンド連携仕様に Deployment: one origin を追加。Caddy / nginx の動作確認済み設定、アップロード上限、アイドルタイムアウトを掲載。
tools/README.mdを追加。EverOtome の通常利用にこれらのツールは必要ありません。tools/record_demo.py --helpは Playwright 未導入でも利用可能。- Engine console メッセージを英語に統一。
- 未使用の
engine/demo.htmlを削除。
フィードバック
困ったこと、バグ、アイデアなどを匿名で送れます。アカウント不要です。
https://marshmallow-qa.com/a4u0myommjpyzup
English
If you cloned or forked EverOtome before Aug 27, 2026, please update to v0.2.1-beta.
This release focuses on first-time setup issues and improves the installation, deployment, and tooling docs.
- Clone:
git pull - Fork: click Sync fork
Compatibility: your existing config files, assets, and backend will continue to work unchanged.
Fixed
-
Prevented the sample character Rye from being overwritten
- Removed the old
tools/make_sample_character.py. Running it, even with--help, could overwrite Rye and generate geometric placeholder frames. - The three remaining generators now overwrite shipped files only when
--forceis passed.--helpdoes not write files. - If you or your AI assistant ran the old script:
git checkout -- engine/assets/sample git pull
git pullautomatically removes the oldtools/make_sample_character.py(delete it manually if it is still there). The nine extra.webpfiles are unused and can be removed or left in place.
- Removed the old
-
No-backend state no longer stays on “Connecting”
- After a few seconds, the dialogue box now clearly reports that no backend is connected.
-
Opening
engine/index.htmldirectly now shows guidance- Instead of a blank page, EverOtome tells you to start the local server first.
-
Update-check results now follow language changes
- The result no longer remains in the previously selected language.
Docs & tools
- Quick Start now covers:
- using
python3whenpythonis unavailable - the Windows copy command
- the same-origin rule for the chat WebSocket
- normal console messages when no backend is connected
- using
- The backend contract now includes Deployment: one origin, with tested Caddy and nginx examples, upload limits, and idle timeouts.
- Added
tools/README.mdto explain each utility. None of these tools is required to run EverOtome. tools/record_demo.py --helpnow works without Playwright installed.- Engine console messages are now in English.
- Removed the unused
engine/demo.html.
Feedback
Stuck, found a bug, or have an idea? You can send it anonymously, no account needed:
EverOtome v0.2.0-beta
如果你在 8/21 前已 Clone 或 Fork EverOtome,建議更新至 v0.2.0-beta。
If you cloned or forked EverOtome before Aug 21, please update to v0.2.0-beta.
體驗修復與功能更新版。已經下載過的話,git pull(fork 的請按 Sync fork)就能取得最新版;既有素材、設定檔與後端全部照舊可用,不需要改任何東西。
修復(Fixed)
- 手機:頁面不再整頁跟著手指滑動、底部按鈕列不再被推出畫面
- 相冊:管理完照片後點暗處關掉再打開,不再停留在舊的照片牆(每次開啟都會在背景重新同步)
- 相冊管理:操作進行中按鈕會半透明呼吸,不再像按了沒反應;失敗會誠實提示,「改好了但畫面沒跟上」也照實說
- 上傳:還沒選圖片時上傳鈕直接熄著(先前按了沒反應,是因為提示被長清單擠到看不見的位置)
- 排序:組內第一張的 ↑、最後一張的 ↓ 直接熄掉;協定同時明定排序必須在同一組內交換(修掉「按了畫面沒動,其實在跟另一組看不見的圖換位置」)
- 管理面板:返回鍵、標題、分組頁籤固定在頂部不再被捲走;提示訊息固定在底部永遠看得到
- 相冊卡片的選中框改畫在卡片內側,貼邊的卡不再被裁掉框線
- 操作進行中誤點其他按鈕會被忽略(一次一件,不會打架);失敗後鍵盤焦點回到原按鈕
- 示範導覽(demo/tour.html)管理段的捲動展示恢復正常
更新(Changed)
- 「開場景」升級為「開場候選」:可以多選。有候選時,他的開場只會從候選中挑;一張都沒圈,開場就交給他自由發揮;聊起來之後(第二輪起)他換任何場景都不受限。協定文件含開門抽籤與開場守門的實作建議。
- 協定文件(backend-contract)多處精修:相冊重抓時機、排序語意、上傳限制說明
其他(More)
- CG 安全區構圖模板新增英文版與中文版,附產生器工具(tools/make_cg_safe_zone.py)
- tools 指令列訊息全面英文化
- 試妝間(Character Lab)的表情標籤支援多語
- 英文版 README 換上英文剪輯的總覽影片
相容性:資料層零異動。後端若已實作 set_opening,留意它的語意從單選改為多選候選(op 名稱與資料形狀不變)。
A polish-and-features release. If you cloned before, git pull (or press Sync fork on your fork) to catch up; existing assets, config files and backends keep working, nothing on your side needs to change.
Fixed
- Mobile: the page no longer pans around under your finger, and the bottom bar stays on screen
- Album: closing the manage view via the backdrop and reopening no longer shows a stale album (it quietly resyncs every time the panel opens)
- Manage buttons dim and pulse while an operation is in flight, instead of looking dead; failures are reported honestly, including the case where the change went through but the view lagged
- Upload: the button stays off until an image is picked (pressing it used to look like nothing happened, because the hint rendered far below a long list)
- Reorder: the first item's up and the last item's down arrows are disabled at the group's edge, and the contract now specifies that reorder swaps within the same target group (fixing silent swaps with items of the other, invisible group)
- The manage view's back button, heading and group tabs stay pinned at the top instead of scrolling away; the hint line stays visible at the bottom
- Selection outlines on album cards draw inside the card edge, so cards at the scroll boundary no longer get clipped outlines
- Extra clicks during an operation are ignored (one at a time); keyboard focus returns to the button after a failure
- The demo tour's album-management segment scrolls again
Changed
- "Opening scene" grows into opening candidates: flag any number of scenes per group. While candidates exist, the character's opening comes from the candidates; with none flagged, the opening choice is fully free; from the second turn on, scene switching is never restricted. The backend contract describes the opening draw and the opening-turn gate.
- Contract polish: album refetch timing, reorder semantics, upload limit notes
More
- The CG safe-zone template now ships in English and Chinese, with a generator (tools/make_cg_safe_zone.py)
- Command-line messages in tools/ are now English
- Character Lab expression labels can be multilingual
- The English README got an English-cut overview video
Compatibility: no data changes. If your backend already implements set_opening, note that its semantics moved from single-select to multi-select candidates (op name and payload unchanged).
EverOtome v0.1.0-beta
開源乙女遊戲風 AI 伴侶聊天介面的第一個公開版本。功能完整、介面穩定;標 beta 是因為接後端用的協定(docs/backend-contract.md)之後還可能依回饋微調。
內容
- 立繪:九幀眨眼與口型、表情貼片、臉紅層;Character Lab 試妝間
- 對話:ADV 對話框與名牌、Chat Log、Thinking 開關
- 語音:電話(逐句字幕與語音)、朗讀、嘴巴跟著聲音開合
- 外觀:五套主題、造型、家具;房間自主權(後端可換主題、造型、家具)
- CG:相冊(上傳、排序、場景說明、開場景)、CG 自主權
- 介面語言:繁體中文、English;PWA 可加到主畫面
- 零後端預覽:範例角色 Rye、示範相冊、自動導覽
demo/tour.html - 文件:backend-contract、sprite-guide、cg-guide
需要自備:AI 後端(協定見 docs/backend-contract.md)。程式碼 MIT 授權;範例素材的使用限制見 ASSETS.md。
First public release of EverOtome, an open-source otome-style chat interface for AI companions. Features are complete and the UI is stable; it is marked beta because the backend protocol (docs/backend-contract.md) may still be adjusted from feedback.
What's in
- Sprites: nine-frame blinking and mouth animation, expression patches, blush layer; Character Lab
- Dialogue: ADV dialogue box with name plate, Chat Log, Thinking toggle
- Voice: phone calls (line-by-line subtitles with audio), read-aloud, mouth following the voice
- Appearance: five themes, outfits, furniture; room agency (the backend can change theme, outfit and furniture)
- CG: album (upload, reorder, scene notes, opening scene), CG agency
- UI languages: Traditional Chinese and English; installable as a PWA
- Zero-backend preview: sample character Rye, sample album, guided tour at
demo/tour.html - Docs: backend-contract, sprite-guide, cg-guide
Bring your own: an AI backend (see docs/backend-contract.md). Code is MIT; the sample assets have their own terms, see ASSETS.md.