[v0.8.0] Yui has landed!
看PR记录就知道大家有多努力,开发组已经快燃尽了。优化和更新之路永无止境,但现在真正需要的是某种一锤定音的东西……
[主要更新]
- 悠怡登场:默认角色与 Live2D 资源切换到 YUI / yui-origin,并新增中文音色支持。
- 新手引导升级:首次启动和功能引导更完整,支持跨页面引导、语音提示和进度保存。
- 长期记忆全面升级:N.E.K.O 现在能更稳定地整理、保留和修正记忆,让陪伴感更连续。
- 主动搭话更聪明:猫娘会结合你的状态判断是否适合说话,减少打扰,也更容易在合适的时候出现。
- 小游戏邀请上线:新增足球小游戏互动入口,猫娘可以主动邀请你一起玩,也能在游戏结束后继续自然聊天。
- 插件系统大升级:插件管理器加入包管理、插件面板、说明页和更多操作入口,安装和管理插件更直观。
- 角色卡管理重做:角色管理、模型设置、卡面制作和 Steam 创意工坊相关功能整合到新的角色卡管理页面。
- 聊天窗口体验优化:新增Galgame模式,对话框中提供选项。
[次要更新]
- 云存档与数据迁移:新增 Steam 云存档相关支持,并提供更完整的数据位置选择和迁移流程。
- Live2D 表现增强:新增更稳定的眨眼、待机动作保存、动作恢复和画质切换体验。
- MMD / VRM 动作优化:舞蹈、口型同步、动作切换和角色切换更加稳定,减少残留和跳变。
- 字幕与点歌台改进:字幕支持逐句增量翻译,点歌台窗口的拖动、最小化、关闭和再次打开行为更清晰。
- 性能与稳定性修复:优化后台任务、语音、日志、截图、模型预览、多窗口和大量边缘场景,整体体验更稳。
- Galgame 陪玩插件登场:支持识别剧情、理解台词、提供选项建议,让猫娘陪你一起读故事、做选择。
- 杀戮尖塔2 陪玩插件登场:支持自动打牌。
- MC 陪玩插件登场:支持联机游戏。
[Major Updates]
- YUI Debuts: The default character and Live2D assets have been switched to YUI / yui-origin, with new support for a Chinese voice.
- New User Guide Upgraded: First-launch onboarding and feature guidance are now more complete, supporting cross-page guidance, voice prompts, and progress saving.
- Long-Term Memory Fully Upgraded: N.E.K.O can now organize, retain, and correct memories more reliably, making companionship feel more continuous.
- Smarter Proactive Chat: The catgirl now considers your current state before deciding whether to speak, reducing interruptions while appearing more naturally at the right moments.
- Mini-Game Invitations Added: A new football mini-game interaction entry has been added. The catgirl can proactively invite you to play together and continue chatting naturally after the game ends.
- Major Plugin System Upgrade: The plugin manager now includes package management, a plugin panel, description pages, and more action entries, making plugin installation and management more intuitive.
- Character Card Management Reworked: Character management, model settings, card creation, and Steam Workshop-related features have been integrated into the new Character Card Management page.
- Chat Window Experience Optimized: Added Galgame Mode, with choices now available in the dialogue box.
[Minor Updates]
- Cloud Saves and Data Migration: Added support for Steam Cloud Saves, along with a more complete flow for selecting and migrating data locations.
- Enhanced Live2D Performance: Added more stable blinking, idle motion saving, motion recovery, and graphics quality switching.
MMD / VRM Motion Improvements: Dancing, lip sync, motion switching, and character switching are now more stable, reducing leftovers and sudden jumps. - Subtitle and Song Request Window Improvements: Subtitles now support incremental sentence-by-sentence translation. The song request window now has clearer behavior for dragging, minimizing, closing, and reopening.
- Performance and Stability Fixes: Optimized background tasks, voice, logs, screenshots, model previews, multi-window behavior, and many edge cases for a more stable overall experience.
- Galgame Companion Plugin Debuts: Supports story recognition, dialogue understanding, and choice suggestions, letting the catgirl read stories and make choices with you.
- Slay the Spire 2 Companion Plugin Debuts: Supports automatic card play.
- Minecraft Companion Plugin Debuts: Supports multiplayer gameplay.
What's Changed
- 修复从 Live2D 角色切换再切回后,通过模型管理器切换到 VRM 模型时加载失败的问题 by @MingTianSang in #796
- Refactor/minimax tts http sse by @wehos in #795
- fix: jukebox 独立窗口按钮点击失灵 (Chromium drag region 缓存 bug) by @wehos in #798
- feat: add OpenRouter as assist API provider by @wehos in #799
- 修复头像刷新后无条件重载问题 by @KirisameYuumio in #800
- 修复核心/辅助 API Key 保存后被管理簿覆盖的问题 by @MingTianSang in #802
- Fix: Idle animation not applying immediately after character model ma… by @rophec in #804
- fix: 修复头像比例变形 & 增加手动裁剪功能 by @KirisameYuumio in #801
- Fix/prominent notice electron pointer events by @wehos in #803
- fix: 修复多屏环境下聊天框和模型吸附逻辑,确保正确处理窗口尺寸变化 by @LyaQanYi in #805
- fix: add missing i18n keys for avatar cropper by @KirisameYuumio in #806
- fix: cancel manual crop now keeps the original avatar by @KirisameYuumio in #807
- fix: isolate music cooldown/dedup from other proactive sources by @wehos in #808
- fix: processRealisticQueue finally 块竞态 — 过期实例不再破坏新实例互斥锁 by @wehos in #809
- fix(jukebox): 修复点歌台播放兼容性与交互体验问题 by @MomiJiSan in #810
- fix: HTTP 503 错误显示为用户友好的"上游服务器繁忙"提示 by @wehos in #812
- fix: 修复记忆服务超时后 turn_end 洪泛导致无限 analyze check by @wehos in #811
- fix: prevent greeting from racing with voice session by @wehos in #813
- fix: slider change resets timer & cooldown skips no longer inflate backoff by @wehos in #814
- Claude/fix qwen tts stutter s egsg by @wehos in #815
- 修复旧版本升级后声音克隆页面误报"没有可用API"的问题 by @MingTianSang in #816
- fix: prevent duplicate message sends from rapid Enter key presses by @wehos in #817
- feat: redesign proactive chat backoff with 3-tier adaptive curve by @wehos in #818
- 依据真实对话数据对AI模型进行评分的代码框架 by @TL0SR2 in #791
- 给 MMD 慢加载补了统一的 loading overlay。现在主页和角色外形页都会在 MMD 加载时显示阶段提示,覆盖 engine、… by @MomiJiSan in #782
- 优化B站插件及其功能;添加连接详情面板 by @wangjunyu200708 in #701
- Improve avatar reaction bubble reliability for Live2D models by @yiyiyiyiGKY in #820
- fix(music): fix NetEase VIP detection and add Cookie expired toast notification by @Himifox in #819
- 在辅助API设置旁添加"禁用TTS"开关,开启后跳过所有语音合成调用 by @MingTianSang in #821
- fix(meme): SSL fallback for meme proxy + require gptsovitsEnabled for GSV routing by @wehos in #822
- feat: 导出对话支持复制到剪贴板 & 默认导出图片 by @wehos in #823
- restore stable standalone drag hit area by @yiyiyiyiGKY in #826
- fix(voice): decouple prime_context from create_response to fix 1007 error by @wehos in #824
- fix: hide React chat composer during voice chat + cross-window IPC by @wehos in #827
- fix(ws): 猫娘切换时旧 WebSocket 泄漏 & onclose 重连风暴 by @wehos in #828
- fix(jukebox): stabilize standalone interactions by @yiyiyiyiGKY in #829
- fix: workshop MMD preview missing playAnimation after loadAnimation by @KirisameYuumio in #830
- fix: restore standalone jukebox header button hit-testing by @yiyiyiyiGKY in #831
- fix(session): 避免并发 start_session 产生孤儿 session by @wehos in #833
- fix(tts): 引入独立 shutdown sentinel 修复切换角色/重连时 TTS worker 线程泄漏 by @wehos in #835
- fix: MMD model not restored after closing character manager when original model missing by @KirisameYuumio in #832
- fix(meme): 停用易主的 doutub.com,替换为 doutupk.com 并下调超时 by @wehos in #836
- fix(session): 外层 try/finally 兜底 _starting_session_count 递减 by @wehos in #837
- fix: 切换猫娘后 session 无法恢复(greeting 静默失败 + WebSocket 双重重连) by @wehos in #838
- fix(proactive): guard 覆盖 turn-start 到首音频 chunk 的空窗 by @wehos in #839
- fix(workshop): 消除 Steamworks 回调轮询里的同步 time.sleep by @wehos in #841
- fix(main_server): 避免 initialize_character_data 里同步 Thread.join 阻塞 event loop by @wehos in #840
- fix(session): 消除 end_session 路径上 ~1 秒的 event loop 阻塞 by @wehos in #843
- chore: 引入 async def 同步阻塞静态检查 + 修复存量违规 by @wehos in #842
- fix(main): 把 async def 里的 Thread.join / shutil.* offload 到 to_thread by @wehos in #845
- 修复 Live2D 触摸交互时 touchSetFilter 未初始化导致的报错 by @MomiJiSan in #844
- perf(async): 消除主进程事件循环阻塞(5 commits, T1-T5) by @wehos in #846
- perf(async): 并行化启动期两处可独立的 await by @wehos in #848
- fix(async): 消除 transitive 同步阻塞(compress_screenshot / load_cookies)+ 扩展 async-check 深度 1 by @wehos in #850
- refactor(cookies): 把 CLI wizard 函数从 async def 改回 sync def by @wehos in #851
- fix(async): _force_kill_browser 改 to_thread + 扩展 async-check 到 memory_server / agent_server 全链路 by @wehos in #853
- fix(proactive): guard 的 turn-start 分支加 5s 时间窗兜底 by @wehos in #854
- perf(switch): 切换猫娘走 fast path,避免 O(N) 全量刷新 by @wehos in #855
- fix(proactive): Phase 2 abort 按 speech_id 守卫,避免误伤正常回复 TTS by @wehos in #862
- refactor: consolidate per-catgirl runtime state into RoleState (#857) by @wehos in #861
- test(proactive): sid guard 全链路硬化 + 15 个单测 by @wehos in #863
- fix(proactive): voice fudge 三层用户说话守卫(A+B+C) by @wehos in #864
- perf(async): 系统性消除审计发现的同步阻塞 + 串行 await by @wehos in #859
- fix(proactive): voice fudge 加 AI 侧说话守卫(对称于 #864) by @wehos in #866
- feat(diag): 增加切换猫娘相关的诊断日志,优化 websocket 连接和 memory server 请求 by @LyaQanYi in #865
- 修复文本聊天连接开启时重命名当前猫娘导致"未找到角色配置"的竞态问题 by @MingTianSang in #869
- fix: 修复 WebSocket 连接和状态管理,避免僵尸代理和 stale 连接问题 by @LyaQanYi in #871
- 修复 PC 版头像裁剪遮罩错位问题 by @MingTianSang in #872
- fix: restore jukebox manager standalone drag responsiveness by @yiyiyiyiGKY in #870
- 修复 assistApiKey 回退逻辑 by @MingTianSang in #873
- fix(jukebox): i18n 化 bindings 页已选提示 by @wehos in #875
- fix(config): 补齐 qwen_intl/minimax/minimax_intl 的 gated fallback(对偶 #873) by @wehos in #876
- fix/修复多窗口模式下返回球消失后拖拽定位异常 by @MomiJiSan in #877
- fix(agent): ensure all agent_server task types respect cancellation by @wehos in #879
- fix/修复切换猫娘后上一位的聊天记录仍残留 by @MomiJiSan in #878
- fix(config): 消除 load_characters 并发重复触发迁移和校验警告 by @wehos in #881
- fix(chat): 修复 React 聊天窗口用户消息双渐入和 You -> 实际名字闪动 by @MomiJiSan in #880
- fix(gsv)/gptsovitsEnabled not mapped to GPTSOVITS_ENABLED by @Himifox in #884
- 修复从模型管理页面保存 MMD 模型后返回主界面时的两个问题 by @MingTianSang in #883
- 重构 QwenPaw(OpenClaw) 接入链路并更新多语言教程 by @Krabbypattyl in #882
- fix: OpenFang provider 校验修复 — Ollama 免密放行 + Gemini 工具调用修正 by @wehos in #719
- fix(async): 消除 send_event PIL 阻塞 + 堵住切猫娘孤儿 session 泄漏 by @wehos in #852
- fix(hotswap): 修复热切换并发 recv() 导致语音会话崩溃 by @wehos in #885
- QQ&STS2 Plugins Updata by @zhaijiunknow in #874
- 新增 Grok(xAI)和豆包(Doubao)辅助 API 适配 by @qiguang113 in #860
- 两大插件同步阻塞修复,前端重写,增加跳转服务器入口 by @wangjunyu200708 in #834
- feat(proactive): 事件驱动 SessionStateMachine + phase1/phase2 中途 preempt by @wehos in #867
- 修复手机端 React 聊天窗口无法拖动的问题,最小化改为 50px 圆形悬浮球(与桌面端一致),并新增顶部拖拽手柄支持手动调整聊天框高度 by @MingTianSang in #793
- feat: 支持创意工坊参考语音预填,并修复 MiniMax 音色注册前缀校验 by @MomiJiSan in #768
- feat: 截图按钮增加区域裁切功能 by @wehos in #721
- feat(memory): 空闲时自动维护记忆 + 修复 resolve_corrections 竞态丢失 by @wehos in #725
- fix(locale): 修复 Windows 无 Steam 时语言探测失效及首次人设语言不正确 by @wehos in #888
- feat(proactive): SM 收口 agent_callback / greeting 投递入口 by @wehos in #887
- perf(async): 泛化 internal_http_client + 新增 external_http_client,全局 httpx 审计 by @wehos in #868
- Refine avatar interaction memory rules and tool reaction flow by @yiyiyiyiGKY in #769
- 角色卡导出功能大换新添加自由编辑页面 by @MingTianSang in #886
- 修复 RESPONSE_TOO_LONG 场景下输入内容丢失,并补齐异常兜底反馈链路 by @MomiJiSan in #825
- 重构:移除 N.E.K.O 后端自启动壳层并保留桌面桥接提示流 by @MomiJiSan in #680
- feat: 非窗口截图自动叠加 Avatar 文字注解(i18n,坐标自适应) by @wehos in #722
- fix: tutorial highlight positioning and popover image loading issues by @KirisameYuumio in #889
- 重构:移除合并主机消息和乐观待处理草稿的逻辑 by @LyaQanYi in #891
- 恢复教程/自启动提示流并移除 Python 后端自启动实现 by @MomiJiSan in #684
- refactor: 使用 CSS 原生拖动替代 JS 模拟拖动,修复窗口拖动异常 by @LyaQanYi in #895
- feat: finalize cloud save manager and single-character sync workflow by @yiyiyiyiGKY in #681
- fix: replace 3s setTimeout with LoadingManager.onLoad for MMD texture fallback by @KirisameYuumio in #896
- feat(cloudsave): force-terminate active session on download & close child windows on exit by @yiyiyiyiGKY in #897
- refactor(memory-server): 复用内部 HTTP 单例 + startup 兜底 cloudsave bootstrap by @wehos in #898
- fix:/过滤emoji符号防止GPT-SoVITS触发"请输入有效文本"错误 by @Himifox in #890
- feat(字幕): 逐句增量翻译 + 大小预设 + 设置面板下拉优化 by @MomiJiSan in #894
- feat(plugin-cli): add pack and unpack functionality by @wislap in #858
- fix(autostart-prompt): 同步 shell 端 autostart 状态事件到 prompt 缓存 by @wehos in #900
- feat(agent): 增加记录用户希望 N.E.K.O 使用猫爪的机制 by @Krabbypattyl in #766
- feat(jukebox): 改为使用 OS 原生拖动,优化拖动性能和用户体验 by @LyaQanYi in #902
- feat(tts): 首 N 字日语假名检测扩展到 Qwen/Step/lanlan 免费 TTS by @wehos in #901
- Fix/修复返回球点击/拖拽闪烁,并修正 VRM/MMD 返回后浮动按钮与锁图标左侧跳位 by @MomiJiSan in #903
- feat(dragging): 优化拖拽机制,使用 body class 控制全局拖动屏蔽,增强 UI 组件交互体验 by @CN-Zephyr in #904
- feat: add clear button for custom API configuration by @KirisameYuumio in #906
- chore(frontend): 移除死代码 live2d-ui-drag.js by @wehos in #907
- fix: Fix physics bone stretching during model rotation by @KirisameYuumio in #910
- fix(docs): 修复 vitepress build 失败的 37 个 dead link by @wehos in #908
- fix(async): MMD 删除接口的 rglob 统计合并进 to_thread (#847 item 1) by @wehos in #909
- chore(react-chat): 清尾 #891 漏删的 pendingDrafts dead code by @wehos in #913
- refactor(logging): 删 loguru,plugin/本体统一 RobustLoggerConfig + CI 守门 by @wehos in #912
- memory: P0+P1+P2.a resilience refactor (cursor/outbox/event-log/locks) by @wehos in #905
- Refactor Avatar Reaction Bubble Pipeline with Decoupled 2D/3D Head Detection and Stable Geometry by @yiyiyiyiGKY in #914
- feat(plugin-cli): 解包默认落到我的文档插件目录 by @wehos in #916
- feat: add Model Profiler for performance analysis and debug visualization by @KirisameYuumio in #911
- refactor(logging): plugin 子进程日志收纳到 logs/plugin/ 子目录 by @wehos in #917
- fix(tests): sync PluginMeta field-shape assertions with current datac… by @wehos in #918
- fix(tests): monkeypatch _TARGET_ROOT alongside _RUNTIME_PLUGINS_ROOT … by @wehos in #919
- perf(async): 减少 event loop 阻塞与 GIL 争用的多处优化 by @wehos in #922
- feat(i18n): Add support for Spanish and Portuguese by @LyaQanYi in #924
- feat(soccer-demo): 足球小游戏 demo + 心情/难度/气泡 API by @wehos in #927
- [Memory] RFC: user-driven evidence mechanism (#849) by @wehos in #928
- feat(live2d)/Add eye blink and idle motion subsystems by @Himifox in #925
- fix:Improve Live2D bubble placement for large-background models by @yiyiyiyiGKY in #923
- feat(Live2D)/implement persistence for selected Live2D motions by @Himifox in #926
- docs(memory): 重做 #928 漏合的 vitepress dead-link 修复 (84a99b9) by @wehos in #931
- [Memory] PR-1 evidence mechanism foundation (RFC #928) by @wehos in #929
- [Memory] PR-2 time decay + archival (RFC §3.5) by @wehos in #934
- Fix Live2D idle animation restoration logic in triggerRandomEmotion by @Himifox in #930
- feat(i18n): 增加截图相关功能的国际化支持 by @LyaQanYi in #932
- [Memory] PR-3 render budget + merge-on-promote (RFC §3.6 §3.9) by @wehos in #936
- [Memory] PR-4 funnel analytics API (RFC §3.10) by @wehos in #937
- feat: add API connectivity test with indicator lights by @KirisameYuumio in #915
- perf(memory): cache entry token_count to skip re-tokenization on every render by @wehos in #939
- Update README.MD by @wehos in #940
- fix(launcher): Resolve issue where Ctrl+C fails to terminate processes when starting with uv run on Windows by @Himifox in #943
- fix(model-profiler): correct VRM skeleton detection by @yiyiyiyiGKY in #944
- feat: add legacy memory cleanup feature and improve unsubscribe flow by @LyaQanYi in #933
- 【本PR仅涉及test文件夹】testbench测试生态框架构建 by @TL0SR2 in #946
- test(testbench): smoke tests + docs (split from #946) by @wehos in #948
- Refine Steam workshop character card layout by @wuyehan in #945
- bilibili插件引入背景llm,负责处理弹幕消息 by @wangjunyu200708 in #947
- fix: make all showStatus toast types auto-dismiss with clearTimeout guard by @KirisameYuumio in #942
- fix(mmd): correct Grant accumulation and IK/Grant execution order for D-bone deformation by @KirisameYuumio in #953
- Dark Mode Optimization by @LyaQanYi in #950
- feat(memory): fact version chain + reflection ontology constraints by @wehos in #941
- feat: 完成 Yui 新手教程接管流程、多语言语音接入与插件页联动 by @Krabbypattyl in #935
- Sync avatar tool cursor state for desktop hosts by @yiyiyiyiGKY in #955
- 完全重置角色管理和steam创意工坊页面,将他们融合为角色卡管理 by @MingTianSang in #938
- fix(i18n): 统一 PR #938 遗留的 8 个 locale key 差异 by @wehos in #959
- [Memory] P2 step 1 — vector embedding infrastructure by @wehos in #956
- 修复 N.E.K.O-PC 桌面端聊天框无法加载的问题 by @MingTianSang in #963
- fix(tests): 修掉全量 pytest 7 处失败/收集错误 by @wehos in #964
- feat(chat): 支持 Electron Pet 模式下的聊天叙事与 overlay bubble 显示 by @LyaQanYi in #960
- feat(mmd): MMD animation overhaul — dual MixerSlot crossfade system by @KirisameYuumio in #961
- feat: 多屏立体声 + 距离衰减空间音频 by @wehos in #962
- Package local embedding model assets by @wehos in #965
- Implement storage location migration flow by @yiyiyiyiGKY in #954
- fix(api): 修复 cacheId 冲突导致的核心/辅助/自定义 API 灯状态互相污染问题 by @rophec in #966
- 修复多窗口模式下 Chat 窗口截图裁剪区域过小的问题,简化提示 by @MingTianSang in #969
- fix(memory): keyword/BM25 层先剥离 master/lanlan 名字与昵称 by @wehos in #971
- feat: 增强错误处理和语言切换支持,优化模态框重建逻辑 by @LyaQanYi in #968
- refactor: 文本长度计量统一切到 tiktoken token + 修 proactive 原文日志泄漏 by @wehos in #967
- refactor(memory): retire SETTING_*_MODEL hardcodes + ban temperature on memory/utils LLM calls by @wehos in #972
- refactor(openclaw): magic intent prompt 主体英文化 + 改用 summary tier by @wehos in #974
- ci(lint): prompt-hygiene + i18n-sync 静态检查 by @wehos in #975
- Rebalance realistic chat backlog by @wehos in #973
- refactor: LLM input prompt budget 系统化 + 临时审计日志 by @wehos in #976
- refactor(memory): IdleMaint 调度清理 + LLM timeout 兜底 + review snapshot 重设计开 thinking by @wehos in #977
- Improve avatar tool cursor recovery and clear by @yiyiyiyiGKY in #978
- chore(log): 静音 stream_data DIAG 日志,避免音频高频刷屏 by @wehos in #983
- feat(tts): 流式剥离括号与 markdown,朗读不读旁白/标记 by @wehos in #980
- fix: restore character card manager preview behavior by @wuyehan in #981
- 关闭自动启动 by @wangjunyu200708 in #984
- 统一角色旁菜单各类开关的选中指示器颜色,并修复对话设置、主动搭话和动画设置子菜单中蓝色背景常驻的问题,使蓝色背景仅在鼠标悬停时显示 by @MingTianSang in #982
- 修复从角色外形/模型管理页面返回后,错误显示“请她回来”按钮,以及悬浮菜单按钮恢复时短暂挤在一起的闪烁问题 by @MingTianSang in #985
- feat(plugin): 持久化 Extension 启停开关到 user config by @wehos in #989
- Fix Live2D preview playback and add workshop card face refresh tests by @wuyehan in #988
- refactor(memory): 5 站点开 thinking + 锁外化 + rebuttal drain + 周期降至 180s by @wehos in #990
- feat(memory): 摘要规则补强 — 事实纠正保留脉络、stage-2 缩略已切换的旧话题/任务 by @wehos in #994
- fix:修复 Yui 教程插件面板接力与 /ui 高亮启动 by @Krabbypattyl in #979
- feat(memory): 强力记忆开关——可关闭 evidence-RFC 引入的全部新 LLM 路径以省 ~40% token by @wehos in #997
- 【此改动只涉及test文件夹】补充一个快速入门说明文件 by @TL0SR2 in #998
- Storage Location Migration and Memory Browser Entry by @yiyiyiyiGKY in #992
- 修复角色卡面板二次打开时 Live2D 预览卡死问题 by @wuyehan in #999
- 在角色卡切换和删除操作中增加语音模式检查 by @MingTianSang in #996
- 修复角色外形 Live2D 预览中未选择待机动作时会默认选中第一个动作的问题;将动作/表情下拉框默认项改为“无动作”“无表情”,并移除旧的… by @MingTianSang in #1001
- 修复角色卡管理中 Steam 上传弹窗层级过低导致被展开角色卡面板遮挡的问题;上传前若角色卡已有卡面,则自动复制为 Workshop 预览… by @MingTianSang in #1000
- 调整弱记忆自动确认和提升天数至7天,以提供用户更长的反驳窗口;更新API提供者配置,统一DeepSeek模型版本为V4-Flash,优化浮… by @wehos in #1002
- 扩负面词覆盖 & 摘要/review prompt JSON key ASCII 化(含 ja 字符飘移 bug 修复) by @wehos in #1004
- 修复角色卡展开页 Steam 标签中的 MMD / VRM 预览比例同步问题避免 MMD 模型在窗口展开或标签切换后被横向挤压 by @MingTianSang in #1006
- fix: add missing character locale keys by @wuyehan in #1009
- Improve storage location migration flow and UI by @yiyiyiyiGKY in #1010
- Fix tool cursor behavior during voice mode by @Tonnodoubt in #1012
- perf(async): 消除主 event loop 上的 TTS / cross_server 高频轮询 by @wehos in #1013
- refactor(tts): 干掉 start_session 里 TTS 就绪信号的 20Hz 轮询 by @wehos in #1016
- 修复角色卡切换角色后主页面持续低帧,以及角色卡面板收起时预览资源可能残留的问题 by @MingTianSang in #1019
- feat(plugin-manager): add hosted TSX runtime and MCP adapter UI by @wislap in #1003
- 新增用户活动追踪器(main_logic/activity/),重构主动搭话 Phase 2 决策 by @wehos in #1015
- 截图功能重做 by @wuyehan in #1014
- feat(proactive): 全局 source 衰减历史 + 持久化跨会话去重 by @wehos in #1021
- 前端"自主视觉"开关重整为"隐私模式",开启时禁用 user activity tracker by @wehos in #1024
- add plugin docs by @wislap in #1025
- feat(activity): 信任 + 控制 + 风格 follow-up(隐私 + override + 配置外置 + tone + 游戏二维度) by @wehos in #1026
- fix: lower composer compact threshold to prevent premature button col… by @Tonnodoubt in #1027
- 补充角色卡管理页暗色模式覆盖 by @MingTianSang in #1029
- feat: add initial personality onboarding by @wuyehan in #1030
- refactor(plugin): reply bool → delivery 三态 + 拆分外层模板 by @wehos in #1032
- refactor(agent): 把 agent/plugin/tracker 的字符截断字面量收口到命名常量 by @wehos in #1034
- 添加面板与教程 by @wangjunyu200708 in #1031
- fix(tests/proactive): 修 main 上 8 个 unit test 失败 by @wehos in #1036
- fix(live2d): lipsync 在响时强制覆盖 motion mouth 参数 by @wehos in #1039
- Feature/initial personality by @wuyehan in #1038
- fix(i18n): 修正 PR #1024 interval 标签错位(chat=最低间隔, vision=感知间隔) by @wehos in #1040
- feat(tools): 统一工具调用接口,offline + realtime 多 provider by @wehos in #1035
- fix:Refine Storage Migration UX and Locale Consistency by @yiyiyiyiGKY in #1028
- fix(character_card): VRM/MMD 子扫描失败时回退为 [] 而非沿用旧值 by @wehos in #1042
- feat: yui-origin Live2D 默认模型 + 主动搭话历史元数据 + 反 AI 物化称呼修复 by @wehos in #1041
- feat(proactive): 三块剩余 i18n 文案改 {master} 占位符 + 51 个 guard 测试 by @wehos in #1043
- fix(memory): IdleMaint 压缩门槛对齐 compress_threshold 修复空转日志 by @wehos in #1044
- refactor(plugin-sdk): push_message v2 — visibility/ai_behavior 双轴 + parts 列表 by @wehos in #1046
- 隐藏强力记忆开关的原生复选框,避免在自定义开关外额外显示选择框,保持与自动记忆整理开关一致的视觉表现 by @MingTianSang in #1047
- 修复“初次邂逅”成就触发逻辑,使其只在 AI 首次可见回复时解锁;同时补齐 React Chat Adapter、语音输入、纯图片/截图输… by @MingTianSang in #1045
- 允许对话框表情/工具按钮在已选中工具时再次点击主按钮直接取消选择 by @MingTianSang in #1048
- fix(proactive): Phase 2 debug print 去掉 buffer 拼接的复读 by @wehos in #1052
- fix(proactive): 音乐完整播放后重置 music 通道权重衰减 by @wehos in #1050
- fix(proactive): mute 时不刷 RMS + user_transcript 复位语音 nudge 计数 by @wehos in #1051
- perf(proactive): BS4/regex/JSON 解析推到线程池,消除主动搭话 event loop 阻塞 by @wehos in #1049
- fix: 完善 YUI 新手教程联动并清理语音资源 by @Krabbypattyl in #1022
- fix(lip_sync): 确保语音口型同步期间其他口型表情不干扰 by @LyaQanYi in #1053
- fix(lip_sync): MMD 语音口型同步期间清零其他元音残留 by @LyaQanYi in #1056
- feat(plugin-sdk): @llm_tool 装饰器 — 插件一行注册 LLM 工具 by @wehos in #1055
- 将导出对话预览从聊天框内弹窗改为独立无边框窗口 by @MingTianSang in #1058
- fix(memory): /new_dialog 不再 cancel 在跑的 review + QPS 观测 by @wehos in #1059
- feat(plugin): Minecraft 游戏代理 plugin(基于 #1035 + #1046 + #1055 重写) by @wehos in #1057
- Replace yui_default with yui-origin and route guide motions by @wehos in #1060
- [codex] fix Live2D motion cleanup residuals by @wehos in #1061
- 入口合并,避免llm疑惑,增加正则匹配,全链路异步实现,增加区域+设备名匹配 by @wangjunyu200708 in #1062
- fix(cross_server): ws reconnect 移出主 sync loop,monitor 不在时不阻塞 memory by @wehos in #1064
- feat(tutorial): 添加模型选择步骤的描述和提示信息 by @LyaQanYi in #1065
- [codex] split LLM prompts into system and user messages by @wehos in #1054
- vision: 去重 avatar 注解 + 提示 LLM 忽略叠加在截图上的注解 by @wehos in #1067
- fix(deps): 把 cachetools 提升为直接依赖 by @wehos in #1068
- Fix storage-root log placement by @yiyiyiyiGKY in #1069
- 新建猫娘未设置卡面时自动打开卡面制作页,保存后自动刷新列表 by @MingTianSang in #1070
- fix(agent): 优化 LLM 连接性检查,避免在任务运行时错误报告不可达 by @LyaQanYi in #1071
- log: DEBUG 单独落到源码 logs/,不污染用户统一日志 by @wehos in #1073
- feat(embeddings): int8-first bundle, merged deps, explicit fp32 by @wehos in #1072
- fix: 补齐 cardMakerPopupBlocked i18n 键 + 修 evidence promote 测试时间漂移 by @wehos in #1074
- prompts: 统一 ====== 分隔符为 below/above 对偶形式 by @wehos in #1075
- feat: LLM prompt placeholder leak 自动检测器 by @wehos in #1077
- fix(plugin-bus): 用户原话写入 user-context bucket,激活 bus.memory.get 链路 by @wehos in #1076
- prompts(open_threads): 默认空数组 + 正反示例,避免凑满 3 条 by @wehos in #1078
- [Don't Merge]feat/为 STS2 自动游玩插件添加猫娘交互与全流程决策系统 by @Himifox in #1011
- fix(emotion): 修 angry 误判,i18n 关键词跨语种迁入 prompts_emotion by @wehos in #1079
- Fix Yui Guide Onboarding Flow Stability by @yiyiyiyiGKY in #1080
- fix(llm_client): 防御性读取 choices[0].message,避免 free-agent-model 空 message 崩溃 by @wehos in #1081
- fix: API URL 末尾不带斜杠,修反代下角色卡加载失败 + 前后端 lint 守门 by @wehos in #1082
- fix(config): follow_core/follow_assist 不再被误判为 'local' 自定义 realtime(修 TTS 静音) by @wehos in #1084
- prompts(reflection): ontology 字段前置 + 三步走 + 措辞硬化 by @wehos in #1085
- 修复两处UI闪屏 by @MingTianSang in #1083
- fix(react-chat): 30s 内严格 group 连续消息(隐藏重复 author/time) by @wehos in #1087
- 修复i18n的小问题 by @MingTianSang in #1088
- test: 修两处 mock 漏洞 + 测试日志改写到临时目录 by @wehos in #1089
- style(react-chat): 最小化球去 hover 灰底 + 关闭叉缩小淡化 by @wehos in #1091
- fix(memory): review 不吞 head memo + qwen3.5 切 semantic_vad by @wehos in #1090
- fix: 找回 minimize hover + PNG 白晕真透明 + session 熔断真停 by @wehos in #1092
- fix:Stabilize Yui Onboarding Guide Flow by @yiyiyiyiGKY in #1093
- feat: 加 livestream 模式(free 子模式:URL 派生 + voice + 跳闭麦) by @wehos in #1096
- feat(react-chat): GalGame 模式 — 每轮 LLM 生成 A/B/C 三风格回复选项 by @wehos in #1094
- fix(persona): 更新 prompt_guidance 逻辑以支持运行时语言解析 by @LyaQanYi in #1086
- feat(livestream): 主播 config 抽到独立文件 livestream_config.json by @wehos in #1097
- i18n(profiler): 性能分析器全面 i18n + Live2D 友好提示 by @wehos in #1098
- fix(react-chat): GalGame slot 从下往上展开动画 + 对话块补水印 by @wehos in #1099
- 修复价值提示,礼物聚合聚合后推送 by @wangjunyu200708 in #1100
- 修复手机版聊天框最小化后点击展开时的触摸穿透问题,避免同坐标误触发送图片按钮及其按压/悬停反馈;同时在手机端禁用新手教程,避免教程遮罩和移… by @MingTianSang in #1101
- fix(utils): robust_json_loads 容忍结构 token 间的幻觉字符 by @wehos in #1102
- fix(live2d): 更新眼睛眨动参数获取逻辑以支持 Cubism 4/5 by @LyaQanYi in #1104
- fix(plugin-cli): pack/upload 产物落到用户可写目录 by @wehos in #1105
- fix(realtime): bound audio stream backlog by @KirisameYuumio in #1106
- 修复气泡表情加载期间点击“请她离开”后,加载气泡或异步完成的表情仍残留的问题 by @MingTianSang in #1107
- 解决日志刷屏问题 by @MingTianSang in #1109
- 修复 VRM 口型同步路由,避免残留 Live2D 引用抢占当前模型 by @MingTianSang in #1111
- 区分点歌台最小化与关闭行为:最小化仅隐藏点歌台窗口,音乐和舞蹈继续播放;关闭则停止音乐和舞蹈并销毁点歌台窗口状态 by @MingTianSang in #1113
- 优化模型管理保存提示 by @Krabbypattyl in #1112
- fix(composer): 更新工具按钮折叠逻辑,支持动态宽度和动画效果 by @LyaQanYi in #1114
- fix:GalGame option generation for free API mode by @yiyiyiyiGKY in #1108
- refactor(plugin-cli): rename neko-plugin-cli, defenses against Nuitka silent-drop by @wehos in #1115
- refactor(prompts-chara): tighten wording + handle in-place L10N drift by @wehos in #1116
- fix(react-chat): 修复消息列表自动滚动到底部失效(绕开 Electron smooth scroll silent no-op) by @wehos in #1118
- Integrate SoccerDemo with routed character interaction by @KirisameYuumio in #1110
- Add retake button to avatar cropper by @KirisameYuumio in #1120
- 修复移动端触发教程后全局交互守卫拦截页面点击的问题 by @MingTianSang in #1121
- feat(model): 暴露 window.resetToDefaultModel 用于托盘菜单调用 by @LyaQanYi in #1122
- Polish storage migration copy and guard GalGame mode during home tutorial by @yiyiyiyiGKY in #1123
- 角色卡管理页标题栏关闭按钮左侧添加最大化/恢复按钮 by @MingTianSang in #1126
- Add First Greeting Flow for New Characters by @yiyiyiyiGKY in #1119
- test(hotfix): init _takeover_active in test_proactive_sm_integration factory by @wehos in #1129
- fix(game-route): PR#1110 review-bug quick wins (A1+A2+A3+A4) by @wehos in #1125
- 将角色卡管理中的切换按钮文案由“切换角色卡”简化为“切换该角色” by @MingTianSang in #1130
- 恢复 i18n 行号对齐校验 by @wehos in #1132
- feature: VAD MANUAL filling + chat+blind passthrough at main_server by @wehos in #1128
- 修复 locale key 顺序漂移并恢复行号对齐 by @wehos in #1134
- concurrency: address audit findings B1-B8 (route_start/cleanup race, organizer dup, finalize policy, session create lock, character switch) by @wehos in #1127
- 在已注册音色列表中支持点击音色直接应用到当前角色 by @MingTianSang in #1131
- refactor(prompts_game): drop output-language directives + parity polish by @wehos in #1135
- [codex] fix i18n error placeholder params by @wehos in #1137
- fix(icon): 悬浮球用回带白晕原图,header 最小化按钮保留透明版 by @wehos in #1139
- i18n: migrate inline game-route prompts to 5-locale config and EN-ize signal schema by @wehos in #1136
- [codex] Fix plugin phase1 empty candidate handling by @wehos in #1140
- 展开角色卡中常驻显示“模型设置 / 编辑卡面”入口;模型保存后提示是否编辑卡面或自动生成默认卡面;修复卡面制作窗口生命周期与刷新通知;简化… by @MingTianSang in #1138
- galgame_plugin: prompt 英文化 + install 路由解耦 + choice_advisor fast loop 修复 by @MomiJiSan in #1133
- feat(proactive): mini-game 邀请短路通道(10% 触发 + 24h+10 chats 冷却) by @wehos in #1141
- [codex] Refresh README feature copy by @wehos in #1142
- feat(proactive): mini-game 邀请 follow-up #1(新用户固定邀请 + 1h 冷却 + 多游戏接口 + 退出 UX) by @wehos in #1143
- feat(proactive): mini-game 邀请三选项按钮 + 关键词文本兜底(PR #1141 follow-up #2) by @wehos in #1145
- chore(static): pack yui-origin Live2D into assets/yui-origin.tar.gz by @wehos in #1144
- feat(proactive): mini-game 邀请用户级 toggle + 调试 force-game-type 旗标 by @wehos in #1148
- perf(memory): 嵌入向量改成 base64+int8 量化 + recall 粗排批量化 by @wehos in #1147
- feat(soccer): 去掉气泡 sourceLabel + 进入记忆 toggle i18n 化 by @wehos in #1149
- Feat/galgame plugin i18n by @MomiJiSan in #1146
- fix(proactive): 邀请文案/Phase 1-2 LLM 跟 session locale + soccer loading-text 居中 by @wehos in #1150
- mmd-ui-button by @LyaQanYi in #1155
- 禁止窗口标题栏和导航按钮中的装饰图标被拖拽,避免图片被拖到桌面或复制出应用 by @MingTianSang in #1154
- Add sensei soccer player VRM by @KirisameYuumio in #1157
- fix(proactive): 主动搭话失败 retry + 静默化,不再泄露上游 HTML 错误页 by @wehos in #1156
- feat(proactive): mini-game UI 联动收尾(galgame 互斥 + 默认难度 + 游戏期 chat/pet 联动) by @wehos in #1153
- 优化部分操作体验,修改默认角色卡面截图位置和修复部分问题 by @MingTianSang in #1152
- fix(model-manager): 启用模型选择后的保存按钮以避免禁用状态 by @LyaQanYi in #1158
- 为 Galgame 插件静态页面接入 UI 多语言 by @MomiJiSan in #1159
- Fix home tutorial interaction isolation and recovery by @yiyiyiyiGKY in #1160
- fix(voice-swap): 切音色相关三处 race(连接失败 / 角色离开 / trigger_greeting 崩溃) by @wehos in #1161
- fix(chat-tools): stabilize avatar tool cursor cleanup by @yiyiyiyiGKY in #1162
- fix(game-window): 游戏期间隐藏 pet 上其余可交互 UI 让窗口真正穿透 by @wehos in #1163
- Update sensei VRM to 1.x by @KirisameYuumio in #1164
- fix(i18n): 补齐 status code 缺失的 errors.* 翻译并静音 GAME_ROUTE_MEDIA_SKIPPED by @wehos in #1166
- Galgame 依赖安装时自动定位安装面板 by @MomiJiSan in #1165
- 调整卡面编辑页打开逻辑,已有编辑页时优先打开新窗口并关闭旧窗口;若新窗口打开失败,则回退刷新旧窗口,确保编辑页不多开且内容遵循最后一次打开 by @MingTianSang in #1168
- fix(tutorial): 增强教程结束时的 UI 清理,修复按钮残留和锁死问题 by @LyaQanYi in #1171
- fix(i18n): soccer / proactive 残余 Steam locale race —— 多路径 belt-and-su… by @wehos in #1170
- fix(voice-swap): rebuild path 跨 end_session 窗口补 guard(堵 PR #1161 漏的 race) by @wehos in #1176
- Fix/subtitle drag handle logic by @wuyehan in #1172
- 统一禁用传统页面、React 聊天窗口和插件管理器中的装饰性图片拖拽 by @MingTianSang in #1178
- fix(multi-window): session_started 直接 hide 文本框,覆盖 chat.html 子窗口 by @wehos in #1181
- fix(catgirl-switch): 角色管理页切角色三处补丁 by @wehos in #1167
- Fix Live2D eye blink parameter ownership by @Himifox in #1180
- fix(catgirl-switch): MMD rollback 重建 + VRM reserved path 解析 by @wehos in #1182
- fix(tutorial): keep persona onboarding after auto start by @wuyehan in #1183
- fix(chat-export): 修复下载链接在预览窗口中的上下文问题,确保移动端浏览器正确处理图像下载 by @LyaQanYi in #1184
- perf(galgame): cap RapidOCR onnxruntime threads, skip warmup in tests by @wehos in #1186
- Fix OpenClaw enable readiness handling by @yiyiyiyiGKY in #1185
- refactor(galgame): bundle rapidocr/dxcam/mss into main program (closes #1177) by @wehos in #1188
- fix(galgame): split spec hard-fail set into group vs main deps by @wehos in #1190
- 修复语音会话与音色切换之间的状态竞态:语音启动会等待音色切换完成,语音态下刷新或 PC 多窗口拆分后聊天输入栏不会误展开 by @MingTianSang in #1189
- 修复新手教程期间功能状态接管 by @Krabbypattyl in #1187
- refactor(galgame): UI cleanup + capture chain (dxcam→mss→pyautogui) + dead-code cleanup by @wehos in #1191
- 美化 Galgame 模式切换并优化切换反馈 by @MomiJiSan in #1192
- fix(tutorial): 真正的 auto 教程启动时正确隐藏人设选择 by @wehos in #1195
- fix(galgame): 让 RapidOCR 模型配置实际生效 by @MomiJiSan in #1194
- feat: 增加 Galgame 插件依赖检测与本地化诊断 by @MomiJiSan in #1174
- feat(galgame): 新增首屏教程引导与进度持久化 by @MomiJiSan in #1179
- fix(galgame): OCR 捕获线程卡死后替换新 worker,不再永久失败 by @MomiJiSan in #1193
- 修复新手教程结束后重逢问好被重连保护吞掉 by @Krabbypattyl in #1196
- fix(subtitle): prevent duplicate PC chat translation by @wuyehan in #1198
- 修复点歌台独立窗口关闭后再次从聊天框无法打开的问题 by @MingTianSang in #1200
- 为道具交互添加音效 by @Krabbypattyl in #1201
- fix(galgame): 严格限制 OCR 捕获兜底列表上限并降低用例 flakiness by @wehos in #1199
- fix(chat): remove avatar range hold timer by @yiyiyiyiGKY in #1203
- fix(jukebox): restore drag from SAM panel footer area by @yiyiyiyiGKY in #1207
- 为标题栏类窗口添加窗口控制按钮 by @MingTianSang in #1202
- fix long reply guard without discard reroll by @wuyehan in #1206
- 修复 Live2D 画质切换会重载模型、导致待机动作和运行时状态丢失的问题;改为仅调整 renderer 分辨率,并禁用会破坏图集贴图的运… by @MingTianSang in #1210
- feat(voice): 新增 yui_cn 音色 + 新角色默认 free preset voice by @wehos in #1211
- style(galgame): 统一 Neko 主题界面与首次配置引导 by @MomiJiSan in #1204
- refactor(voice): 默认 voice 改读 free_voices['cuteGirl'] 避免配置漂移 by @wehos in #1212
- refactor(galgame): 重构依赖安装卡片并修正 Textractor 安装超时 by @MomiJiSan in #1209
- 修正 OpenClaw 子开关可用性判断 by @Krabbypattyl in #1213
- feat(ui): 隐私模式开关增加 hover hint by @wehos in #1216
- 阻止页面中的链接、图片等元素被拖到桌面生成复制项 by @MingTianSang in #1214
- Adjust minimum widths for options components to handle text overflow by @LyaQanYi in #1217
- Plugin:[STS2]尖塔插件引导 by @zhaijiunknow in #1219
- refactor: 后端禁用 tkinter + lint 守门 GUI-on-frontend 架构 by @wehos in #1221
- fix(galgame): 默认难度后端钉到 lv2 与前端对齐 by @wehos in #1220
- refactor(galgameUI): 合并 Agent dashboard 面板 by @MomiJiSan in #1218
- feat(galgame): 增加 OCR 诊断完善提示并移除屏幕模板 UI by @MomiJiSan in #1215
- refactor(onboarding): 通知/提示时序串行 — 让位初始人设 overlay by @wehos in #1224
- [codex] fix common dialogs unit harness by @wehos in #1223
- fix(mic): 音量条改用时域 peak/RMS,过载红色告警,静默不再误判 by @wehos in #1222
- feat(activity): 工作模式下加喝水/防摸鱼提醒 + idle tone 改 playful by @wehos in #1226
- fix(galgame): 优化 OCR 截图噪声过滤与 RapidOCR 状态处理 by @MomiJiSan in #1227
- Fix galgame plugin local storage path by @yiyiyiyiGKY in #1228
- 修复React聊天框在gal模式下高度约束不一致的问题 by @MingTianSang in #1229
- [codex] Add 0.8.0 changelog translations by @wehos in #1231
- [codex] Soften initial catgirl character tone by @wehos in #1232
- feat(galgame): 支持 RapidOCR 自动识别语言并切换模型 by @MomiJiSan in #1233
- [codex] Ensure free TTS language code follows global language by @wehos in #1236
- [codex] Limit prominent notice body height by @wehos in #1234
- [codex] Use avatar model center for spatial audio by @wehos in #1237
- [codex] Exempt book title marks from TTS bracket stripping by @wehos in #1235
- [codex] Fix proactive Phase 1 pass handling by @wehos in #1238
- [codex] Accept empty health check completions by @wehos in #1241
- fix(workshop): detect non-standard card face previews by @wuyehan in #1242
- (feat) 修复 Galgame Textractor 安装诊断与代理配置 by @MomiJiSan in #1240
- 初始人设选择流程调用 /api/characters/persona-presets 和保存人设选择时,没有把前端当前界面语言传给后端 by @MingTianSang in #1243
- 修复启动期工坊角色卡后台同步与初始人格选择的竞态,避免用户快速选择人格后,persona_override 被旧的 characters.… by @MingTianSang in #1244
- 修正 #1244 工坊角色卡同步竞态回归测试中的 mock 参数签名,使测试与真实 find_preview_image_in_folde… by @MingTianSang in #1245
New Contributors
Full Changelog: v0.7.4...v0.8.0