github Project-N-E-K-O/N.E.K.O v0.9.1
[v0.9.1] Let's Go Visiting!

one hour ago

0.9.1 来啦!这一次,猫娘终于可以出门串门了。她还会陪你一起看视频、玩小游戏,悠怡也换上了新衣服「邻家妹妹」!
我们会在下一个版本里继续优化猫娘串门的体验,包括主动介绍朋友、发起串门,以及猫咪形态的串门。除此以外,我们会优化捏人支持,帮助大家创造专属于自己的原创角色。最后,智能体模块也将会迎来一次全面升级。期待在11月再次相会!

[主要更新]

  • 猫娘串门:可以带猫娘去互关好友家串门,两只猫娘会互相聊天,双方都能听到对方猫娘的声音。新增好友面板,可以直接发出邀请;串门结束后可以先预览,再记成日记。在设置菜单里打开「串门」开关即可使用。
  • 一起看视频:贴一个 B 站链接,或者让她挑一个热门短视频,她会边看边发表反应;可以开启自动陪看连播,也能用「/一起看」等斜杠指令直接打开。
  • 新衣服:Sister:全新 Live2D 服装「YUI Sister」上线。
  • 新小游戏:新增「你画我猜」和「空气投篮」。在「空气投篮」中你不仅可以用篮球痛击篮筐,还可以痛击猫娘。
  • 小剧场:选一个剧本和猫娘一起演绎,演绎记录可以归档。
  • 声纹识别与语音唤醒:录入声纹后,待机时其他人说话她听不见,只有你的声音能唤醒她,在嘈杂的环境里也不会被旁人误唤醒。喊「悠怡」也能直接唤醒语音对话(唤醒词不区分说话人)。
  • 猫咪更会玩:新增「重力猫猫」——窗口有了重力、弹性碰撞和拖拽惯性。猫咪能感知桌面窗口并与之互动;设置里新增独立的猫咪分组。

[次要更新]

  • 喵宇宙:好友面板与实时在线状态、推荐用户浮窗;社区内容接入主动搭话的个性化推荐;设置里可以隐藏喵宇宙入口。
  • 聊天:支持上传、裁剪自定义聊天头像;消息会根据情绪自动配上 emoji;新增「回车发送后自动收起」。
  • 记忆与知识:文字对话回复前会先检索知识、语料和记忆;公共知识库上线,知识包可从插件市场订阅;对负面反馈响应更快,并加入防复读审阅;聊天原文与角色资料支持跨端同步;记忆召回提速(稳态 57ms → 20.5ms)。
  • 语音:新增智谱 GLM 声音复刻;ElevenLabs 升级到 v3 / v4 Turbo;新增 faster-whisper 本地语音识别;麦克风设置与试录引导完善。
  • 插件生态:插件管理器界面统一,新增宣纸、石墨两套主题;市场多线路竞速下载并支持断点续传,新增可更新检查、安装进度与 GitHub 镜像源选择;Galgame、伴学、战雷等插件改由插件市场分发,本体更轻。
  • 桌面形象:VRM 支持引导移动、动作播放与自定义移动快捷键;Live2D 左右贴边姿态优化;首次贴边探身时会提示如何恢复与关闭。
  • 新手引导:新增可点击的一日入门教程,以及缩放模型、转动弧形菜单的语音引导;引导可按 Esc 结束。
  • 模型与 API:图片生成接入核心 API 管理;MCP 服务器可选择注入到聊天;联网搜索优先使用 AnySearch。
  • 桌面与部署:加载失败提示会显示端口占用,可一键复制诊断信息;新增 Windows 截屏故障(WGC)兼容兜底;Docker 运行时加固(Nginx 分层、.env 注入、健康检查、备份),新增低配 2C2G 部署方案与自愈看门狗。
  • 性能与稳定性:启动路径提速、插件扫描并行化、Pet 窗口帧率总闸、Live2D 动作曲线求值优化;清理约 1 万行无用代码;以及大量稳定性修复。

[Major Updates]

  • Neko Visits: Take your neko to visit a mutual friend. The two nekos chat with each other, and each side can hear the other neko's voice. A new friends panel lets you send invitations directly, and after a visit you can preview it before saving it as a diary entry. Turn on the "Visits" switch in the settings menu to use it.
  • Watch Videos Together: Paste a Bilibili link or let her pick a popular short video, and she reacts as you watch. Auto-watch plays videos back to back, and slash commands such as "/watch together" open it directly.
  • New Outfit: Sister: The brand-new Live2D outfit "YUI Sister" is here.
  • New Mini-games: Added "Drawing Guess" and "Air Basketball".
  • Theater: Pick a script and act it out together with your neko. Performances can be archived.
  • Voiceprint and Voice Wake-up: Once you enroll your voiceprint, she can't hear other people while on standby: only your voice wakes her, so other voices in a noisy room won't wake her by mistake. You can also say "Yui" to start a voice conversation directly (the wake word works for any speaker).
  • A More Playful Cat: The new "Gravity Neko" gives windows gravity, bouncy collisions, and drag inertia. The neko can sense desktop windows and interact with them, and settings now have a separate neko section.

[Minor Updates]

  • NekoVerse: Friends panel with live online status and a recommended-users popup; community content now feeds personalized proactive chat; the NekoVerse entry can be hidden in settings.
  • Chat: Upload and crop a custom chat avatar; messages get emoji picked from their emotion; new "collapse after sending with Enter" option.
  • Memory and Knowledge: Text replies now look up knowledge, corpus, and memories before answering; a public knowledge base, with knowledge packs subscribable from the plugin market; faster response to negative feedback, plus anti-repetition review; chat history and character profiles sync across devices; faster memory recall (steady state 57 ms → 20.5 ms).
  • Voice: Zhipu GLM voice cloning; ElevenLabs upgraded to v3 / v4 Turbo; local speech recognition with faster-whisper; better microphone settings and test-recording guidance.
  • Plugin Ecosystem: A unified plugin manager with new "Paper" and "Graphite" themes; multi-source racing downloads with resume, update checks, install progress, and GitHub mirror selection; Galgame, Study Companion, War Thunder and other plugins are now distributed through the plugin market, keeping the core lighter.
  • Desktop Avatars: VRM supports guided movement, motion playback, and custom movement hotkeys; better left/right edge poses for Live2D; a one-time hint on how to restore and close widget mode the first time she peeks from the edge.
  • Onboarding: A new clickable one-day tutorial, plus voice-guided steps for zooming the model and turning the arc menu; the tutorial can be ended with Esc.
  • Models and APIs: Image generation joins core API management; MCP servers can optionally be injected into chat; web search prefers AnySearch.
  • Desktop and Deployment: Load-failure dialogs now show port conflicts and can copy diagnostics in one click; a compatibility fallback for Windows screen-capture (WGC) failures; hardened Docker runtime (layered Nginx, .env injection, health checks, backups), plus a low-spec 2C2G deployment option with a self-healing watchdog.
  • Performance and Stability: Faster startup path, parallel plugin scanning, a frame-rate cap for the pet window, and cheaper Live2D motion-curve evaluation; about 10k lines of dead code removed; and a large batch of stability fixes.

What's Changed

  • ci(build-desktop): 修复卡死 nightly 的两处构建缺陷 by @wehos in #2930
  • fix(web-search): restore resilient Baidu crawling by @Himifox in #2927
  • feat(plugin-market): show plugin details in app by @xxynet in #2931
  • fix(i18n): 去掉 tiktoken 提法 + feat(deepseek): 官方端口 vision/agent 切视觉模型 by @wehos in #2934
  • 修复完整聊天框时无法触发教程的问题,并适配教程结束后的破冰对话通信 by @MingTianSang in #2933
  • feat(plugin-manager): add GitHub mirror source selection by @xxynet in #2923
  • fix(api): 让显式配置的自定义 API 真正生效 (#2886) by @wehos in #2932
  • 更新 QQ 群号并同步 v0.9/v1.0 开发计划 by @wehos in #2949
  • 修正 README 项目现状与猫娘网络上线状态矛盾 by @wehos in #2957
  • fix: localize bilibili DM panel by @xxynet in #2959
  • 修复 v1.0 划线不渲染 + 补链接文案 by @wehos in #2960
  • fix(plugins): 加固插件包安装、升级与回滚生命周期 by @CN-Zephyr in #2958
  • perf(memory): 召回 cosine 路径解码缓存 + 批量评分(稳态 57ms → 20.5ms) by @icyaaaww in #2886
  • 实现真正可用的本机 Owner 声纹软过滤 by @MomiJiSan in #2882
  • fix: release deferred SQLite handles before character deletion by @wislap in #2929
  • feat(avatar): formant-based five-vowel lip-sync for VRM and MMD by @Alumin-Hydro in #2838
  • feat(desktop): add window-aware cat interactions by @yiyiyiyiGKY in #2847
  • fix(pngtuber): 补齐模型越界回弹行为 by @rophec in #2942
  • 修复猫咪拖拽后的动作连播,限制桌面窗口事件唤醒动作选择器,并补充拖拽中断节奏恢复、调试时间线和回归测试 by @MingTianSang in #2969
  • refactor: remove built-in Bilibili integration by @xxynet in #2975
  • fix(chat): keep meme images inside compact history by @Himifox in #2968
  • fix(plugin): 插件化 Testbench 时暴露的宿主 / SDK 缺陷修复(testbench_dist 已移出本体) by @TL0SR2 in #2953
  • 修复插件代码与状态目录冲突并支持内置插件安全升级 by @MomiJiSan in #2943
  • feat(web-search): prefer AnySearch with GeoIP routing by @xxynet in #2945
  • 将屏幕捕获错误信息上报给 Electron,以识别特定的 Windows WGC 捕获故障 by @MingTianSang in #2947
  • feat(market): show plugin comments in detail dialog by @xxynet in #2950
  • perf(plugin-manager): eliminate blank startup and reduce initial payload by @wislap in #2937
  • fix(plugin-config): show manifest defaults in profile editor by @xxynet in #2944
  • refactor(plugin): distribute War Thunder through marketplace by @CN-Zephyr in #2954
  • fix(plugin-ui): allow static plugin modal dialogs by @wislap in #2952
  • feat(market): query installed plugin versions directly by @xxynet in #2961
  • fix(plugin-config): profile overlay 不再固化清单默认值 + plugin-manager vitest 进 CI by @wehos in #2981
  • 优化 Live2D 左右侧挂边的动态探身姿态 by @MomiJiSan in #2979
  • refactor: remove built-in NEKO Live plugin by @CN-Zephyr in #2977
  • refactor: clean retired NEKO Live references by @CN-Zephyr in #2978
  • remove(STS2):本体尖塔插件移除支持 by @zhaijiunknow in #2966
  • feat(plugin): add temporary image upload and controlled delivery by @wislap in #2835
  • fix(proactive): 队列字节淘汰选错对象 + 纯图片 push 的空 HUD 通知 by @wehos in #2984
  • 跟进 #2835 之后失效的 push_message v2 注释、测试名与一条 frontend 断言 by @wehos in #2985
  • fix(ci): 修复 nightly 桌面构建在 macOS 上的 bash 3.2 空数组崩溃 by @wehos in #2986
  • 插件宿主能力:图片 parts 已直出(#2835),audio/video 仍缺消费端 by @miaoluoxue in #2965
  • perf(credentials):缓存平台凭证读取与解密结果 by @Himifox in #2967
  • fix: harden ASR and realtime ownership (#2740) by @CN-Zephyr in #2837
  • feat(avatar-tools): add full lifecycle for custom avatar tools by @yiyiyiyiGKY in #2948
  • fix(realtime,core): 收口 #2837 延后的四项工具/流水线所有权缺口 by @wehos in #2989
  • ci: 把 react-neko-chat 的类型检查和单测纳入 PR CI by @wehos in #2993
  • fix: 独立 ASR 图片回合直接交给视觉模型 by @MomiJiSan in #2964
  • fix(plugin): bind Market evidence to run attempts by @wislap in #2987
  • 为 ASR 输入繁忙错误补充 8 种语言的简短提示,避免界面直接显示错误码 by @MingTianSang in #2995
  • fix: harden screenshot proxy capture flow by @rt22766 in #2983
  • feat(config): add OrcaRouter as an assist API provider by @Marc-oss-hub in #2897
  • fix(gemini): 取消欠账的作废判据与宣告新回合对齐,并给欠账加界 by @wehos in #2997
  • refactor(chat): meme 图片气泡渲染去重 by @skyzhishui in #2905
  • fix(image-budget): 进模型的图片无条件压到模型档位,插件超限不再静默 by @wehos in #2999
  • fix(plugin): enforce ownership gates and confirmed manual takeover by @CN-Zephyr in #3001
  • feat: add a public mini-game SDK and trusted host runtime by @KirisameYuumio in #2976
  • 聊天框不可用时清除追逐目标,阻止隐藏页、心跳和迟到坐标重新激活毛线球 by @MingTianSang in #3004
  • Toast可消除、hover时可保留、文本添加黑色阴影 by @for-the-zero in #3002
  • refactor(plugin): move uninstall into an installation transaction by @CN-Zephyr in #3006
  • test(jukebox): 用当前两列 grid 的不变量重写长歌名布局守卫 by @wehos in #3005
  • feat: extend jukebox control API by @KirisameYuumio in #2293
  • test(jukebox): drop the guard that fabricated a global the app does not have by @wehos in #3014
  • feat(memory): 增加本地重复表达洞察与防复读审阅 by @Himifox in #2876
  • feat(plugin): add host capabilities for external companions by @Tz-WIND in #2962
  • refactor(agent): 移除专属桌面(OpenFang)执行通道及其打包 by @wehos in #3015
  • fix(card-drop): capture PNGTuber forge references safely by @rophec in #3012
  • refactor(plugin): narrow plugin replacement boundary by @CN-Zephyr in #3010
  • fix(storage): 项目根记忆按文件补齐,不再因目录已存在整个跳过 by @wehos in #2998
  • feat(memory): 让记忆系统更快响应用户负面反馈 —— 会话中途注入 + 主动搭话禁令 + 召回负分过滤落地 by @wehos in #3011
  • 修复自定义触摸区域触发的表情延迟恢复误清除新表情的问题,完善同表情接管及模型卸载时的定时器清理,并补充回归测试 by @MingTianSang in #3018
  • 修复插件生命周期超时误报网络错误 by @MomiJiSan in #2988
  • fix(memory): 禁令块收敛到 next-session;人称代词不参与硬闸 + 召回打标方向修正 by @wehos in #3019
  • feat(tutorial): 新增 Day 2 弧形菜单转动引导 by @Krabbypattyl in #3021
  • perf(ci): Windows 单测从 19 分钟压到 ~6 分钟 by @wehos in #3022
  • perf(plugin): 插件扫描并行化与缓存,收口几处会拖垮插件服务器的等待 by @wehos in #3020
  • perf(startup): 把约 0.5s 的无谓开销从端口 bind 之前挪走 by @wehos in #3028
  • 新增 Day 1 模型缩放语音引导 by @Krabbypattyl in #3025
  • fix(plugin): 插件生命周期归属改成显式声明,根绝「静默把全量扫描放回启动路径」 by @wehos in #3033
  • refactor(study): retire bundled Tesseract runtime by @MomiJiSan in #3024
  • fix(music): stabilize proactive candidate fallback cards by @Himifox in #3030
  • feat(mijia):mijia插件从本体移除 by @wangjunyu200708 in #3023
  • docs(plugin): consolidate developer documentation by @CN-Zephyr in #3026
  • fix(tts): Qwen 实时 TTS 换成不带日期后缀的滚动模型名 by @wehos in #3034
  • fix(voice): clarify vLLM-Omni clone configuration by @rophec in #3029
  • 修复 VRM 点歌跳舞时被待机动作提前打断的问题,并同步适配网页端和 Electron Pet by @MingTianSang in #3031
  • 修复 MMD 热重载期间 UI 隐藏/恢复竞态导致模型加载后不可见的问题,并补充回归测试 by @MingTianSang in #3036
  • fix(tests): node harness 把「脚本卡住」和「node 根本没跑起来」分开 by @wehos in #3038
  • refactor(plugin): 刷新注册表不再 import 任何插件 by @wehos in #3035
  • feat(plugin): 支持声明式安装元数据与 Market fresh install 刷新 by @MomiJiSan in #3037
  • ci(nightly): 在桌面 nightly 里加一条 Linux arm64 试验腿 by @wehos in #3040
  • fix(chat): 隔离破冰与 GalGame 推荐选项 by @Krabbypattyl in #3042
  • refactor(plugin): 移除内置伴学插件,改由插件市场分发 by @MomiJiSan in #3039
  • fix(ci): mac-x64 改用 Intel runner,并加产物架构闸门 by @wehos in #3043
  • refactor(plugin): 移除内置 Galgame 插件,改由插件市场分发 by @MomiJiSan in #3041
  • test(storage): 阻断 pytest 写进开发机真实运行根 by @wehos in #3045
  • 修复角色云存档被误当作完整快照导入的问题,确保恢复角色时保留我的档案,并兼容旧版快照 by @MingTianSang in #3044
  • fix(card-maker): stabilize forge avatar placement by @rophec in #3046
  • fix(seo): keep paid baselines manual by @rophec in #3047
  • fix(realtime): finalize idless no-VAD turns by @CN-Zephyr in #3048
  • 为状态 Toast 增加精确鼠标命中检测,避免全屏透明窗口阻挡桌面点 by @MingTianSang in #3053
  • fix(build): 内置插件打包只收 Git 索引里的目录 by @wehos in #3056
  • perf(avatar): Pet 窗口帧率总闸——配置低于刷新率时三后端整体改定时器驱动 by @wehos in #3057
  • fix(ci): 修 Intel Mac 与 linux-arm64 两条构建腿(承接 #3040 / #3043 评审) by @wehos in #3061
  • feat(plugin): add per-plugin log export and log directory access by @CN-Zephyr in #3060
  • 状态提示的 hover 保留改由指针轮询驱动,修复命中检测上线后 pin 时灵时不灵 by @wehos in #3062
  • fix(memory): 统计归档记忆并补齐锻造候选 by @breakkh811-star in #3063
  • fix(tests): 修复 Windows 单测的 Node 计时与话题重启偶发失败 by @wehos in #3064
  • fix(plugin): 修复入口设置丢失导致的误调用和结果丢失 by @wislap in #3054
  • feat(plugin): schema 过期的 plugin.meta.json 由首次启动原地升级 by @wehos in #3067
  • fix(mmd): use active action time by @kwaa in #3065
  • fix(licenses): 补齐 three-mmd 及内嵌依赖的 MIT 声明 by @wehos in #3069
  • fix(grok): core_model 改为 grok-voice-latest by @wehos in #3072
  • fix(asr): 按实测协议修正 xAI STT 的发声收尾与空事件 by @wehos in #3073
  • 恢复重新加载前未完成的破冰会话,并重新绑定选项交互 by @MingTianSang in #3070
  • 修复“请她离开”状态下从系统托盘恢复默认模型后模型消失的问题 by @MingTianSang in #3077
  • 修复聊天记录 Markdown 导出预览在切换格式或消息选择状态时偶发空白的问题 by @MingTianSang in #3080
  • fix(mc-agent): duplicate 不再当完成处理;拒收标识符形态的 task by @wehos in #3081
  • fix(tts): 文本空闲软 flush,CosyVoice 尾句不再等 provider 的 response.done by @wehos in #3082
  • 本地化并简化 PNGTuber 模型导入成功提示,同步更新 8 个语言包及缓存版本。 by @MingTianSang in #3087
  • chore(plugins): 移除内置 bilibili_danmaku 插件 by @wehos in #3086
  • fix(proactive): normalize leaked screen prefixes by @Himifox in #3085
  • feat(tts): switch ElevenLabs cloning to V3 dialogue by @rophec in #3090
  • fix(mc-agent): 修好「口头答应不动手」和「被打死了不吭声」两条链 by @wehos in #3091
  • 接入你画我猜小游戏 by @MingTianSang in #1975
  • 优化 API 设置页帮助浮层的 N.E.K.O 主题样式 by @VSWQH in #3093
  • 为聊天框和悬浮菜单接入统一透明度适配,默认值为 50% by @MingTianSang in #3096
  • fix(live2d): avoid duplicate clipping mappings by @Himifox in #3101
  • chore: 清退 CosyVoice submodule 及配套本地服务 by @wehos in #3102
  • 为聊天发送事件区分 Enter 与按钮提交,发送被接受后立即请求收起,并修复紧凑聊天框按 Enter 时短暂换行的问题 by @MingTianSang in #3097
  • fix(minigame-sdk): restore compatibility and bound request lifecycles by @KirisameYuumio in #3099
  • 修复破冰结束后 Gal 模式未衔接,并确保收尾消息完成后触发选项生成 by @MingTianSang in #3094
  • 允许点击复制状态 Toast 文本 by @CN-Zephyr in #3079
  • 新增插件开发页面,支持外部源码加载、重载与应用内打包 by @MomiJiSan in #3083
  • feat(soccer): migrate the soccer mini-game to the shared SDK by @KirisameYuumio in #3100
  • fix: align MMD emotion configuration identity and reload behavior by @KirisameYuumio in #3104
  • feat: integrate image generation infrastructure into core API management by @wehos in #3109
  • feat(card-drop): hand Desktop OAuth session to community via one-time native_sync ticket by @LyaQanYi in #3110
  • fix(context-prompt): 请她离开模式下跳过情境弹窗 by @for-the-zero in #3111
  • feat: 内置自动陪看、reaction 发言优先级与持久化历史 by @wehos in #3106
  • fix(watch-together): 收掉 #3106 合并后遗留的 GSV 地址预检与 WAV 预算问题 by @wehos in #3114
  • perf(chat): composite continuously animated capsule gradients by @wehos in #3074
  • feat: 扩展小游戏 SDK 通用命令与角色能力 by @MingTianSang in #3095
  • fix(minigame-sdk): media.mount 先校验参数,media.request 按 UTF-8 字节限长 by @wehos in #3115
  • feat(proactive): add N.E.K.O community source by @xxynet in #3016
  • test(minigame-vision): 等待 provider 进入而不是固定让出次数,修 Windows 偶发红 by @wehos in #3117
  • fix: 补上 #3016 漏掉的语言包版本递增与插件元数据重建 by @wehos in #3119
  • fix(watch-together): 连播失败两次换视频,封面按模型档位送视觉模型 by @wehos in #3120
  • feat(minigame): 支持 /一起看 等斜杠快捷指令直接打开小游戏 by @wehos in #3118
  • feat(watch-together): 看视频期间见缝插针播报插件回应,自动连播每段加小结与回复 by @wehos in #3121
  • fix(minigames): integrate shared character, avatar and image services by @KirisameYuumio in #3108
  • fix(watch-together): Electron 下 /一起看 打不开窗口;陪看期间插件播报几乎不出声 by @wehos in #3125
  • 移除聊天框“一起看”按钮及组件,仅保留小游戏搭话邀请入口 by @MingTianSang in #3128
  • fix(watch-together): replace external media tools with bundled PyAV by @wehos in #3131
  • Fix/vmc 增加vmc打开/关闭接口,修复Electron兼容问题 by @ggg233m in #3129
  • fix(realtime): 修复插件工具重建丢失与 Gemini 语音回复卡死 by @wehos in #3127
  • feat(plugin): add host-managed model slots and unified model SDK by @wislap in #3058
  • fix(watch-together): preserve JSON arrays in timeline responses by @wehos in #3134
  • fix(tts): 定制音色注册模型跟随用户在 TTS 端点填写的模型 by @rophec in #3152
  • feat(voice): 以声纹激活语音会话并保持 ASR 开关正交 by @MomiJiSan in #3078
  • feat(plugin): 支持可交互 HTML 聊天卡片与 AgentHUD 内容页 by @wislap in #3068
  • chore(config): 更新 Gemini / StepAudio 默认实时模型 by @wehos in #3146
  • feat(voice): 增加悠宜近音唤醒并修复候选漏检 by @MomiJiSan in #3103
  • 完善贴边锁定的 Live2D、返回球与一起看状态处理 by @MomiJiSan in #3123
  • fix(plugin): 插件子进程 socket 继承、Market 刷新与插件管理器面板/适配器界面修复 by @wislap in #3135
  • fix: strip proactive screen prefix leaks by @Himifox in #3161
  • fix(build): 修掉发布包里夹带 pycache 的问题 by @amoandzhanggui-neko in #3168
  • feat(drawing-guess): 你画我猜空档见缝插针播报直播插件回应 by @CN-Zephyr in #3141
  • test(arbiter): 冻结 loop 时钟,修掉两个并发 canceller 用例在 Windows CI 上的 flaky by @wehos in #3176
  • test(voice-identity): 修 watchdog 有界测试在 Windows CI 上的墙钟 flake by @wehos in #3177
  • 修复喵宇宙窗口已打开时重复点击按钮会重新打开的问题,改为聚焦已有窗口,关闭后才允许重新打开 by @MingTianSang in #3166
  • feat(avatar): 主动搭话间隔数值改为可输入框,可键入超滑条上限的值 by @xxynet in #3148
  • 修复订阅卡片按钮描边重叠、底部裁切及暗色模式下页面底部黑边 by @MingTianSang in #3144
  • feat(plugin-manager): 插件市场可更新检查、浮动窗与安装进度显示 by @wislap in #3139
  • fix(linux): make desktop capture session-aware by @ErrorAP717 in #3164
  • fix: make music player dismissal survive initialization and remount races by @KirisameYuumio in #3173
  • 修复独立 ASR 取消静音后的恢复状态竞态 by @MomiJiSan in #3130
  • fix: 修复模型触屏手势与 PNGTuber 拖动卡顿 by @MingTianSang in #3124
  • 补全点歌台管理入口与排序锁提示的多语言翻译 by @VSWQH in #3133
  • 稳住实时会话、审阅额度和改名记录语言 by @wehos in #3190
  • feat(plugin): 支持 JSON Schema 配置表单并迁移内置插件 by @xxynet in #3191
  • feat(plugin): add shell_runner plugin by @UmR-2026 in #2860
  • feat(qq): 适配器从插件中拆除并合入本体 by @zhaijiunknow in #2996
  • perf(plugin-manager): optimize startup and async UI lifetimes by @wislap in #3160
  • 摘自 #2696:视觉端点切换、tools 被拒重发、踢人提示发送对象、模型下载镜像回退 by @wehos in #3195
  • 修复语音:唤醒后首轮最终转写的悠怡句首纠错 by @MomiJiSan in #3165
  • test: 角色切换回归测试不再关掉本机真实运行的猫爪 by @wehos in #3197
  • chore: 忽略 .codex-tmp/ 调查材料 by @Himifox in #3203
  • fix(tts): 免费语音不再空挂连接计时,配额拒绝后停止定时重连 by @wehos in #3198
  • fix: workshop UGC preview and character card update by @ylh440104 in #3167
  • fix: align screen sharing hover menus across desktop and web by @KirisameYuumio in #3170
  • feat(tts): 接入智谱 GLM 声音复刻 provider by @rophec in #3174
  • fix(proactive): block verbatim meme caption repeats by @Himifox in #2970
  • fix(proactive-chat): 喵宇宙社区搭话源每轮取到相同内容 by @xxynet in #3138
  • feat(plugin-manager): 重构配置编辑器,完善方案草稿与多窗口适配 by @wislap in #3132
  • fix(live2d): 修复遮罩布局与缓冲区状态恢复 by @Himifox in #3107
  • 完善声纹三段录入与录音恢复体验 by @MomiJiSan in #3172
  • perf: optimize memory tokenize and BM25 hot paths by @ylh440104 in #3175
  • fix(plugin-manager): surface install warnings and rollback results by @CN-Zephyr in #3181
  • 修复模型旁悬浮按钮的透明度和pngtuber悬浮按钮缩放同步问题。 by @MingTianSang in #3205
  • audit: 切除 ~10k 行零消费死面(simplify-codebase + ponytail,S1–S40 全证据) by @addsas222 in #3182
  • fix(screen-share): 屏幕分享行副标题显示当前来源 by @wehos in #3206
  • 清理遗留 Owner ASR 组合层 by @MomiJiSan in #3200
  • fix(card-forge): 锻造候选与预检计数排除 UUID/ISO 时间戳类机器日志 by @wehos in #3209
  • 修复 PNGTuber 切换后保存卡面弹窗未触发的问题,并避免卡面预览和导出时模型被 3:4 裁切截断 by @MingTianSang in #3202
  • test(voice): 声纹注册过期用例改为在 validator 启动后受控触发过期 by @wehos in #3211
  • fix(core): 热切换不再重放已投递的回调与缓存条目 by @Himifox in #3204
  • feat(plugins): 为剩余内置插件补齐配置 schema by @xxynet in #3193
  • fix(build): 用 --include-module=av 修复 nightly 冻结 PyAV 导入失败 by @wehos in #3212
  • fix(screen-share): Linux 悬停也展开屏幕来源面板,点击后才列来源 by @wehos in #3207
  • fix(screen-share): 旧版 macOS/Windows 桌面端悬停直接列出屏幕来源 by @LyaQanYi in #3223
  • 收录 #2696 的思路:faster-whisper 本地 ASR、TTS 符号过滤 by @wehos in #3196
  • fix(voice-identity): 删除 shadow 模式,off 模式关闭录入入口,回滚不再被取消打断 by @MomiJiSan in #3220
  • test(plugin-manager): 修复配置编辑器可达性 e2e 的偶发失败(等待模型下拉框关闭) by @wehos in #3234
  • feat(qq): open platform rich media -- two-step image upload, private … by @zhaijiunknow in #3210
  • feat(avatar-tools): add user-created avatar interaction flows by @yiyiyiyiGKY in #3136
  • feat(social): 配合桌面聚合设置页与社区账号双向同步 by @LyaQanYi in #3183
  • fix(screen-share): 系统对话框选中来源后先定位面板,换源重启不再丢分享 by @wehos in #3224
  • fix(avatar-tools): 解除保留删除副本对 ID 的永久阻塞、拒绝溢出的概率值、委派导航去重 by @wehos in #3247
  • pngtuber模型悬浮按钮改用固定锚点定位并修复边缘移动闪烁 by @MingTianSang in #3251
  • chore(plugin): add plugin runtime baseline measurement script by @CN-Zephyr in #3237
  • perf(plugin): wake communication consumers immediately on shutdown by @CN-Zephyr in #3238
  • perf(plugin-sdk): cache parsed plugin locale bundles by @CN-Zephyr in #3239
  • perf(plugin): sample plugin CPU without blocking metrics thread by @CN-Zephyr in #3240
  • perf(plugin): skip multiprocessing Manager in plugin children by @CN-Zephyr in #3241
  • perf(plugin): lazy-load heavy re-exports to slim plugin children by @CN-Zephyr in #3242
  • fix(agent): keep cached plugin list across failed fetches by @CN-Zephyr in #3243
  • fix(market): bind installation hashes to published releases by @wislap in #3232
  • test: 正则/剥词耗时护栏改成抗负载(取最快一次 + 只计被测模板),修结构判据空转 by @wehos in #3246
  • perf(directives): make ko ban-topic whitespace runs atomic by @wehos in #3253
  • fix(directives): 话题捕获不许空白起头 + ja/ko 空白量词原子化,长空白串从秒级降到线性(叠在 #3246 上) by @wehos in #3248
  • fix(core,offline): 被关闭的 client 迟到的完成回调不再收尾新一轮 by @wehos in #3254
  • feat(plugin): add source hot-reload watcher behind NEKO_PLUGIN_HOT_RELOAD by @addsas222 in #3194
  • 扩充唤醒名字转写矫正,限制歧义词整句匹配 by @MomiJiSan in #3222
  • fix: harden agent exec paths and web socket robustness by @ylh440104 in #3179
  • chore: 刷新依赖安全锁文件并启用 Dependabot by @MomiJiSan in #3233
  • 修复独立 ASR 背压丢回答与 SmartTurn 语义超时 by @MomiJiSan in #3219
  • test: fix music playback static test broken by #3179's multi-line superseded gate by @wehos in #3258
  • chore(deps-dev): bump vue from 3.5.28 to 3.5.43 in /docs in the minor-and-patch group by @dependabot[bot] in #3260
  • Monitor 服务增加可选监听与认证加固 by @MomiJiSan in #3235
  • chore(deps): bump the minor-and-patch group in /frontend/react-neko-chat with 4 updates by @dependabot[bot] in #3259
  • fix(plugin): harden hot-reload recovery, preflight and restart drain by @wehos in #3255
  • fix(core): 截断恢复 / 回复过长兜底先让 cross_server 清掉被丢弃的输出 by @wehos in #3264
  • fix(core,offline): 回复过长被最终丢弃时只收尾一次 by @wehos in #3265
  • fix(ci): 修复桌面编译、Docker 构建及异步测试误报 by @wehos in #3267
  • feat(新手引导): 新增可点击的一日入门教程 by @Krabbypattyl in #3199
  • 修复无 pip 环境下的插件依赖同步(接手 #3227) by @wehos in #3249
  • 修复插件生命周期及包上传安装接口的跨站请求校验 by @MomiJiSan in #3250
  • 修复语音会话交接、资源退休与迟到回调竞态 by @MomiJiSan in #3089
  • chore(deps): bump bilibili-api-dev from 18.0.0a1 to 18.0.0a2 by @dependabot[bot] in #3263
  • fix(screen): 历史中串接的屏幕评论在请求视图里只保留首条(从 #3201 拆出) by @wehos in #3266
  • chore(deps): bump the minor-and-patch group across 1 directory with 20 updates by @dependabot[bot] in #3261
  • chore(deps): update Python dependencies and support FastAPI 0.141 by @dependabot[bot] in #3262
  • 修复插件配置应用状态在刷新后丢失 by @MomiJiSan in #3272
  • docs(design): 猫娘串门基础设施设计稿 v3(31 项决策全部拍板) by @wehos in #3225
  • feat(vrm):支持引导移动与动作播放 by @Himifox in #3163
  • 补齐插件状态变更接口的 CSRF 防护 by @MomiJiSan in #3271
  • perf(plugin): subscribe proactive bridge without a fixed startup delay by @wislap in #3269
  • docs(design): 串门「记成日记」写入失败分暂时性 / 永久性两类 by @wehos in #3273
  • docs(design): 猫娘串门 T1~T5 实测记录 + §3.4.5 命中保险修正 by @wehos in #3275
  • docs(design): 串门 T1~T5 兼容模式补测——不透明像素命中通过、冷启动实测 by @wehos in #3281
  • fix(voice-ui): 修复语音控制子面板的边缘定位与悬停交互 by @wislap in #3280
  • fix: 试麦会话已不存在时向设置页报 noSession by @LyaQanYi in #3229
  • feat(minigame): add SDK-based air basketball by @WhiteFrostune in #3112
  • fix(tutorial): 修复点击版教程下一步触发轮盘收起 by @Krabbypattyl in #3283
  • Qwen ASR 云端 VAD 增加本地暂停观察与 session.finish 兜底 by @MomiJiSan in #3221
  • feat(api-settings): 上游模型拉取与当前模型占位(含留空模型 ID 串用修复) by @alksdesu in #3279
  • test: 修复迟到 TTS ready 用例的启动期限竞态 by @wehos in #3288
  • feat(config): add Requesty as an assist API provider by @Thibaultjaigu in #3169
  • fix(storage): 修复受限环境下原子写入无限重试卡死,写入失败时回滚并返回错误码 by @Dirac61 in #3270
  • fix(core,offline): 取消的生成不再续请求,被打断或顶替的回复只收尾一次 by @Himifox in #3201
  • fix(plugin): stop syncing auto_start on manual start/stop by @CN-Zephyr in #3244
  • feat(visit): 串门后端纯逻辑层(PR-03~06:常量与 wire schema / 提示词 / scoped 记忆客户端 / main_logic/visit) by @wehos in #3274
  • feat(visit): external route 注册表 + 角色稳定 id + takeover 归属令牌(串门 PR-A) by @wehos in #3276
  • fix(教程): 支持按 Esc 结束点击版新手引导 by @Krabbypattyl in #3290
  • 修复声纹录入采集并完善资源诊断与激活恢复 by @MomiJiSan in #3282
  • feat(visit): Servers 凭证客户端 + iframe 传输 WS(串门 PR-C1 / 设计稿 PR-07) by @wehos in #3291
  • fix: protect community sessions and preserve remote OAuth access by @MingTianSang in #3289
  • fix(tts): qwen 实时 TTS 不再吞掉服务端的拒绝关闭帧 by @MingTianSang in #3298
  • feat(memory): scoped_history 幂等暂存日志 + 清除墓碑 + scoped_subjects(串门 PR-08 服务端半段) by @wehos in #3292
  • fix(visit): 公钥响应 ttl_s 超出 float 范围时回落默认 TTL by @wehos in #3300
  • feat(visit): 串门记忆桥 / digest 提交 / 上次串门摘要 / 启动补录(串门 PR-08 客户端半段) by @wehos in #3293
  • feat(theater): 完成 Numeric v2.2 小剧场框架与无界面工坊 by @Krabbypattyl in #3162
  • feat(instance-access): 远程实例默认允许 HTTP 配对 by @wehos in #3299
  • Feat: 新增 docker/community-2c2g 自适应部署方案与自愈看门狗 by @csy-11 in #3295
  • refactor(docker): 将 community-2c2g 收编进官方 compose 与文档站 by @wehos in #3309
  • test(node_harness): Windows 上 node 启动卡死时多给一次重试 by @wehos in #3310
  • feat(docker): 宿主机预检脚本与免 alpine 的看门狗安装;移除低配指南中的捐赠链接 by @wehos in #3311
  • 独立 ASR 候选准入、故障恢复与声纹结果反馈 by @MomiJiSan in #3149
  • perf(plugin): 降低启动开销并将商城 I/O 移出事件循环 by @wislap in #3307
  • fix(plugin): 修复 schema 过期元数据重建的失败退避失效 by @wehos in #3318
  • fix(shutdown): 关闭流程单步隔离,一步取消/失败不再跳过后续清理(从 #2951 拆出) by @wehos in #3303
  • feat(chat): add image save controls by @xxynet in #3302
  • feat(voice): 导入已有克隆音色并支持按能力覆盖更新 by @MomiJiSan in #3305
  • feat(chat): 复用情感分析结果为用户消息添加表情 by @Himifox in #3308
  • 把对话暴露到插件总线(主人 / 语音转写 / 猫娘回复 / 主动搭话) by @miaoluoxue in #3142
  • feat(visit): 台词流式 TTS 与按已播音频放字幕、隔离会话池(串门 PR-C3a-2,PR-09a 第二段) by @wehos in #3313
  • fix(教程): 修复锁定步骤按钮重建后不显示 by @Krabbypattyl in #3329
  • feat(visit): 串门人设 / 转录上传 / 举报队列 / 云端代转端点(串门 PR-C3a-1,PR-09a 第一段) by @wehos in #3312
  • fix(deps): 恢复安全版本并补齐框架升级的运行兼容 by @Kirakila7 in #3330
  • fix(api): Plugin API 设置入口改为应用内插件面板窗口 by @MingTianSang in #3333
  • fix(pngtuber): 猫咪态长按拖动误触发「请她回来」——告别标志对称/返回球 deferReveal/锁图标守卫 by @MingTianSang in #3335
  • feat(mcp-adapter): 可选择MCP服务器注入到聊天中 by @for-the-zero in #3000
  • refactor: centralize AI turn buffer reset by @wehos in #3323
  • fix(main_logic): confirm compensating item deletes before degrading a rejected realtime turn by @mvanhorn in #3326
  • feat(tts): upgrade ElevenLabs realtime speech to v4 Turbo by @rophec in #3331
  • fix(memory,llm): 开思考的记忆调用统一额度,输出上限按厂商下发(fixes #3319) by @zaoxi82813 in #3320
  • 修复远端音色覆盖状态与试听取消,并增加安全准备阶段恢复 by @MomiJiSan in #3325
  • fix(realtime): OpenAI GA 下客户端 item id 限制在 32 字符内,并识别 conversation.item.added 回执 by @wehos in #3354
  • feat(config): 升级 Claude 预设到 Sonnet 5.5 / Haiku 5.5,并同步兜底默认值 by @wehos in #3356
  • fix(storage): 存储迁移加固(#2951 拆分第 1 步) by @wehos in #3324
  • feat(chat): 复用情感分析选择消息 emoji(#3316) by @Himifox in #3351
  • fix(voice-identity): 解除 RMS 对录入时长的错误限制 by @MomiJiSan in #3349
  • fix(theater): 缩短隔离文件名,修复 Windows 长路径下坏档隔离静默失败 by @wehos in #3358
  • feat(visit): 串门运行时、debrief 运行时一侧与路由登记(串门 PR-C3a-3a,PR-09a 第三段前半) by @wehos in #3338
  • fix(storage): 存储迁移加固后续——#3324 合并后的 3 条 Codex 意见 by @wehos in #3359
  • fix(pngtuber): 锁定后悬停淡化从未生效——补齐 #1779 遗漏的触发端 by @MingTianSang in #3348
  • 优化声纹录入页布局与操作提示 by @MomiJiSan in #3345
  • feat(cat): unify appearance and voice resources by @yiyiyiyiGKY in #3344
  • fix(brain): browser-use Claude 分支去掉 temperature,适配拒绝强制工具调用的新模型 by @wehos in #3360
  • test(storage): 修复 root_state 错误日志测试的捕获方式 by @Himifox in #3362
  • fix(plugin): keep stopped plugins out of current metrics totals by @CN-Zephyr in #3357
  • feat(chat): 支持上传、裁剪与持久化自定义聊天头像 by @MomiJiSan in #3340
  • fix(vrm): 统一文件名规则并分离配置路径与加载 URL by @Himifox in #3367
  • feat(visit): 串门接线 PR-09b 第三段——启动补录 / sweep、关机收口、登出与切换账号前收尾 by @wehos in #3376
  • fix(offline): 主动搭话保存工具轮 + 记忆清洗文本化工具调用 + 补全泄漏格式 by @wehos in #3343
  • feat(core): 串门接线 PR-09b 第二段——流式 mirror 语音入口与打断前奏提取 by @wehos in #3374
  • feat(knowledge): 公共知识库作为 Memory Server 独立子系统(#2951 拆分第 2 步) by @wehos in #3378
  • fix(visit): 记忆开但一句转录都没有的串门场次写「已放弃」终态(PR-09b 前置) by @wehos in #3370
  • perf(live2d): 限制 Cubism 动作曲线求值的控制点复制范围 by @MomiJiSan in #3346
  • 声纹持续拦截研发与 ASR 前音频门控基础 by @MomiJiSan in #2980
  • 修复 CosyVoice 结束请求与前端音频收尾、打断恢复 by @MomiJiSan in #3355
  • feat(visit): 串门接线 PR-09b 第一段——挂载 /api/visit 与 display socket 的 visit_bind by @wehos in #3373
  • fix(memory): 修复记忆开关同步与配置读写保护 by @Himifox in #3369
  • feat(visit): 串门本机端点 http.py 与建房 / 入房前置检查(串门 PR-C3a-3b,PR-09a 第三段后半) by @wehos in #3372
  • fix(pngtuber): 模型管理加载中途切换模型类型时,迟到的 PNGTuber 预览不再盖住 live2d/3d by @MingTianSang in #3377
  • feat(visit): 角色改名迁移串门数据、删除退役串门残留(串门 PR-09b 第二段) by @wehos in #3385
  • fix(config): core_config.json 读改写统一走带锁入口,防并发丢更新(依赖 #3369) by @wehos in #3384
  • feat(visit): 读不出的清除记录挡住串门时给出标签与丢弃出口 by @wehos in #3389
  • feat(visit): 串门口型 / 已播进度回报 / 设置分组 + 记忆浏览器串门面板(串门 PR-13 + PR-15) by @wehos in #3393
  • test(node_harness): 重量级同步 top-level 用例改为在 node 内计时,不再受启动耗时影响 by @wehos in #3400
  • fix(visit): 串门 PR-09b 后续——云快照导入退役、云下载加锁、改名标记占用名字 by @wehos in #3390
  • fix(memory): scoped_forget 扇出目标按各自代数记持久墓碑(target_epochs) by @wehos in #3392
  • 修复 Live2D 表情嘴形与语音开合控制冲突 by @MomiJiSan in #3352
  • feat(小剧场): 完善状态衔接与后台账本整理 by @Krabbypattyl in #3397
  • 研究:提取音频声纹检查与 ASR 区间交付 by @MomiJiSan in #3371
  • fix: gate VRM emotion editing on the selected model's real expressions by @KirisameYuumio in #3398
  • fix(ci): nightly 桌面构建的 Bilibili SDK 版本校验改为读取 pyproject pin by @wehos in #3408
  • fix(visit): 云快照交接名字的改名迁完之前不准入串门 by @wehos in #3401
  • feat(visit): 「记成日记」写入前预览与两步写入(串门 PR-14a,OD-16 v4 后端) by @wehos in #3394
  • fix(identity): 同一实体最多一个串门账号,串门清除接上 target_epochs 之前不许关联 by @wehos in #3407
  • 削弱Yui的救球能力 by @MomiJiSan in #2142
  • feat(market): 插件中心首次安装成功后上报下载次数 by @CN-Zephyr in #3410
  • test: 修复 Windows runtime 分片上的两个时序 flake by @wehos in #3414
  • fix(小剧场): 为禁言出口补充静默接受按钮 by @Krabbypattyl in #3409
  • 新增 CAT1 Playground 窗口重力、弹性碰撞与拖拽惯性 by @MingTianSang in #3140
  • feat(cat): add resource group switching scaffold by @yiyiyiyiGKY in #3406
  • fix(prewire): 栅栏前保留已过期排队任务的超时原因 by @CN-Zephyr in #3413
  • refactor(tutorial): 教程抑制改为纯运行时闸门,不再改写主动搭话设置 by @MingTianSang in #3399
  • test(avatar): 修复 #3406 之后过期的 cat1 compact mirror assetUrl 断言 by @wehos in #3421
  • feat(visit): 串门传输页 + 父页取帧桥接 + Servers 契约与开发环回(串门 PR-10 / PR-11 / PR-16) by @wehos in #3403
  • 修复 Live2D 保存参数逐帧异常及刷新、引导状态归属 by @MomiJiSan in #3412
  • test(live2d): cover macOS edge peek with panel coordinate offset by @yiyiyiyiGKY in #3423
  • fix(tutorial): 按系统区分 Day1 托盘图标介绍 by @Krabbypattyl in #3422
  • fix(voice-ui): 语音控制子面板不再误收起,屏幕面板行间复用不再重枚举 by @MingTianSang in #3415
  • feat(visit): 串门聊天面、知情同意与串门人设面板(串门 PR-12,含 PR-14 前端芯片监听与 visitEnabled 准入) by @wehos in #3417
  • fix(pngtuber): 托盘“重置角色位置”支持 PNGTuber,复位默认摆放 by @MingTianSang in #3424
  • feat(knowledge): 知识包的插件市场订阅,订阅生命周期归 Memory Server(#2951 拆分第 4 步,方案 B) by @wehos in #3429
  • fix(memory): 串门记忆服务端 #3337 待修清单核对——只有 activity 的段补清除隔离,补齐各修复点的守护测试 by @wehos in #3428
  • feat(plugin): support images after the original text reply by @qaqms in #3387
  • 修复 Hosted 面板加载反馈、短面板布局与重试滚动 by @MomiJiSan in #3433
  • test(knowledge): 修复 test_cancelled_request_still_finishes_admission 的时序不稳定 by @wehos in #3432
  • fix(plugin-manager): 修复插件安装超限提示与运行记录 WS 生命周期 by @wislap in #3442
  • feat(turn-context): 文字对话的被动注入——回复前替模型检索知识、语料、记忆(#2951 拆分第 3 步) by @wehos in #3439
  • fix(chat): 紧凑聊天气泡补 overflow-wrap,无空格长串不再画出气泡框 by @MingTianSang in #3437
  • 修复声纹激活连续校验停滞并补充等待原因提示 by @MomiJiSan in #3441
  • perf(turn-context): 降低被动注入每轮的检索开销(#3439 后续) by @wehos in #3449
  • feat(聊天同步): 接入聊天原文与角色资料同步 by @Krabbypattyl in #3438
  • fix(social): Electron 下社区窗口已开时经主进程补送 native_delegate by @LyaQanYi in #3451
  • test(turn-context): 语义候选对照测试改用 float32 精确输入,修 main 上 Unit pytest 随 runner 时红时绿 by @wehos in #3453
  • fix(proactive): honor screenshot declines while preserving fallback by @Himifox in #3446
  • docs: translate Chinese Python comments and docstrings to English by @wehos in #3454
  • refactor(services): services 登记进分层门禁并消除反向依赖 by @wehos in #3455
  • test(social): 固定社区主题桥与主进程转发的分工 by @LyaQanYi in #3452
  • feat(memory): Molili 归档导入——外部记忆导入第三格式(前端向导+进度轮询+温和化分批) by @MingTianSang in #3447
  • fix(ci): check_async_blocking 覆盖 services/,识别 asyncio awaitable 参数位 by @wehos in #3457
  • fix(chat-sync): 自动分批核对大正文恢复记录 by @ErrorAP717 in #3459
  • fix(persona): 无持久语言时改名记录按事件指纹比较,不再中英来回重写 by @wehos in #3464
  • chore(logging): 降低心跳、插件重扫与引擎切换的日志刷屏 by @wehos in #3463
  • fix(聊天同步): 统一聊天原文来源并补齐跨端角色删除 by @Krabbypattyl in #3470
  • feat(设置): 猫形态开关迁移为弹层独立猫咪设置面板,聚合设置页新增猫咪分组 by @MingTianSang in #3462
  • fix(plugin): unblock reinstall with retained package profiles by @CN-Zephyr in #3458
  • feat(community): 登录时发送设备语言与地区初始化提示 by @MomiJiSan in #3469
  • feat(import): 导入入口提示与分流——类型选择弹窗 + 记忆浏览器 Molili 格式选项 by @MingTianSang in #3461
  • feat(proactive): 喵宇宙社区搭话源接入个性化推荐 by @xxynet in #3465
  • fix(chat): 紧凑输入态吸收瞬时窗口失焦,连续点击输入框不再闪回胶囊 by @MingTianSang in #3466
  • fix(live2d): 模型管理保存的触摸配置即时到达主页面,慢加载补接原生 HitArea by @MingTianSang in #3471
  • fix(pngtuber): 拖动模型时经共享 DragHelpers 收起悬浮菜单弹窗并屏蔽工具栏命中 by @MingTianSang in #3472
  • fix(avatar-ui): 二级面板收起判定改驻留复查,悬停中不再被漂移误收 by @MingTianSang in #3473
  • feat(vrm): 支持桌面端自定义移动选点快捷键 by @Himifox in #3476
  • fix(live2d): 缩小模型后贴边仍贴住屏幕边缘 by @MingTianSang in #3478
  • fix(chat): 紧凑轮盘按钮在鼠标未按下时也能显示气泡 by @MingTianSang in #3479
  • feat(visit): complete desktop catgirl visit experience by @breakkh811-star in #3477
  • feat: 主动推荐气泡卡片交互与行为开关记录可靠入云 by @MomiJiSan in #3467
  • fix(workflows): 支持插件子目录、版本附件并修复 lint 误拦 by @CN-Zephyr in #3484
  • fix: 悬停过缝恢复限时,紧凑输入不再吞掉真实失焦 by @MingTianSang in #3481
  • feat(plugin-manager): 统一界面并完善交互与状态同步 by @wislap in #3475
  • feat: 接入推荐历史 v2 同步、设备管理与真实播放统计 by @MomiJiSan in #3482
  • fix(avatar-ui): 重力游乐场避开任务栏并补上桌面碰撞 by @MingTianSang in #3486
  • feat(plugin-market): 后端统一选源,多线路竞速下载并断点续传 by @wislap in #3488
  • feat(plugin-manager): 合并工作台头部、修复市场分页并加入布局动画 by @wislap in #3489
  • fix(proactive): 持续输入后续期主动搭话判定 by @MingTianSang in #3487
  • fix(vrm): 脚下阴影跟随模型缩放 by @MingTianSang in #3490
  • fix(ci): 唤醒词冻结冒烟失败时输出 traceback 与 stdout/stderr by @wehos in #3491
  • fix(vrm): 旋转后脚下阴影不再被放大 by @MingTianSang in #3495
  • fix(pngtuber): 语音快捷键可以关闭pngtuber已开启的会话 by @MingTianSang in #3497
  • feat(sync): 同步近期与长期记忆并恢复原有历史展示 by @Krabbypattyl in #3494
  • feat(plugin-manager): 新增暖页与石墨主题,写死颜色改用主题变量 by @wislap in #3493
  • test(avatar-ui): 拖拽纵向夹取断言跟上 #3486 新增的上边界 by @wehos in #3492
  • [高风险] refactor(plugin): 统一控制 RPC 与入口执行生命周期 by @wislap in #3485
  • fix: VRM 表情候选、音乐点歌 v2 迁移与 Steam 订阅查询 by @ylh440104 in #3315
  • feat(visit): complete the desktop two-neko visit experience by @breakkh811-star in #3496
  • fix(visit): 桌面重启清理回真实错误、bind 不等远端取消、补 pending-cancel 契约、回环锁画质归零 by @wehos in #3498
  • fix(plugin): 修复生命周期通信、积压回复与后台 RPC 期限继承 by @wislap in #3499
  • fix(pngtuber): 麦克风音量条跟随当前打开的菜单 by @MingTianSang in #3501
  • fix(vrm): 没有描边数据的模型也能看到细描边 by @MingTianSang in #3504
  • fix(logging): 转义日志中的终端控制字符 by @xxynet in #3510
  • fix(chat): 任务栏松手后毛线球第一次拖动即可移动 by @MingTianSang in #3503
  • feat: 优化推荐历史设备管理占位页与窗口控制 by @MomiJiSan in #3506
  • fix(avatar): 道具交互提示词和记忆仅保留动作描述 by @MingTianSang in #3513
  • fix(voice): 冻结版 _run_worker 返回 None——绕开 Nuitka 4.3.1 误编译并锁回 4.2.2 by @wehos in #3514
  • 新增桌面账号头像查询接口 by @MomiJiSan in #3509
  • fix: 修复设备页切号刷新并补充上传说明 by @MomiJiSan in #3508
  • fix(avatar): 修复语音启动时工具栏闪动与 PNGTuber 重复点击 by @MingTianSang in #3516
  • fix(music): 改善主动推荐去重、缓存与可播放性筛选 by @MomiJiSan in #3517
  • fix(widget): 关闭贴边时停用隐身子功能 by @MingTianSang in #3518
  • feat(visit): add mutual-friend hub and assistant-driven visits by @breakkh811-star in #3515
  • fix(voice): 将周期诊断统计日志降为 DEBUG by @MingTianSang in #3519
  • fix(visit): 修复串门自我介绍窗口滚动后无法拖动 by @MingTianSang in #3523
  • fix(chat): 切换聊天框时同步并恢复当前语音状态 by @MingTianSang in #3521
  • fix(log): 串门好友面板轮询的社区请求成功时不再打 httpx 日志 by @wehos in #3524
  • feat(watch-together): 重做一起看页面与邀请卡的界面和交互 by @wehos in #3520
  • fix(chat): 提升串门日记确认等系统气泡的可读性 by @MingTianSang in #3526
  • fix(visit): 为串门介绍重试提供隐私命中反馈 by @MingTianSang in #3527
  • feat(visit): 串门双方互相听到对方猫娘的声音(TTS 音频轨,OD-15 v4) by @wehos in #3525
  • 喵宇宙浮层:右上角入口写明功能,空状态加上下一步操作 by @wehos in #3531
  • fix(visit): zh-TW 重写提示里的上稿片段分隔行改为繁体 by @wehos in #3532
  • 设置里可隐藏喵宇宙按钮;英文统一叫 nekoverse by @wehos in #3534
  • feat(memory): 退出告别卡摘要接口 GET /api/memory/farewell-summary by @wehos in #3533
  • docs(changelog): 版本号升到 0.9.1,新增 0.9.1 更新介绍(8 语言) by @wehos in #3537
  • fix(plugin): 修复并发自启动时元数据扫描卡死 by @wislap in #3535
  • 喵宇宙浮层:独立窗口隐藏打不开的社区入口,断网报错改用本地化文案 by @wehos in #3538
  • docs(changelog): 0.9.1 更新介绍补上声纹过滤其他说话人的作用(8 语言) by @wehos in #3539
  • fix(plugin-manager): list edge and filter input follow the drawer glide by @wislap in #3530
  • fix(vrm): 修复重力猫咪拖动时漂移闪烁 by @MingTianSang in #3542
  • feat: 完善推荐用户浮窗与实时好友状态 by @breakkh811-star in #3536
  • fix(theater): 修复标题栏、按钮布局与滚动条样式 by @MingTianSang in #3543
  • fix(visit): 猫娘回了人类之后,对面猫娘延后 5 秒接话,串门对话不再断 by @wehos in #3551
  • fix(tutorial): 修复启动时按 Esc 后跳过提示残留 by @MingTianSang in #3549
  • fix(social): 修复喵宇宙在线状态菜单被面板裁切 by @wislap in #3548
  • fix: 修复小游戏窗口关闭与一起看模块加载 by @MingTianSang in #3547
  • feat(voice): 串联资源修复与麦克风试录引导 by @MomiJiSan in #3507
  • 前端文本统一用 neko 代替 catgirl by @wehos in #3540
  • feat(docker): 运行时加固与部署契约(Nginx 分层 / .env 注入 / 健康检查 / 备份机制 / 完整 CI) by @WUHINS in #3427
  • fix(visit): 修复邀请刷新恢复与输入提示 by @MingTianSang in #3553
  • feat(telemetry): 形象类型遥测 + 修复 Steam 用户被误判为非 Steam by @wehos in #3554
  • fix(visit): 串门第一句不再因 TTS 冷启动整场没声音 by @wehos in #3557
  • fix(social): 修复串门额度提示与登录状态误判 by @MingTianSang in #3555
  • 完善声纹资源一键修复、麦克风设置与试录反馈 by @MomiJiSan in #3556
  • fix(proactive): 海外区新闻搭话不再拉取小黑盒 by @wehos in #3559
  • fix(chat): 屏幕观察推荐卡不再重复显示同一句台词 by @wehos in #3561
  • test(plugin-manager): 修复抽屉动画 e2e 随机失败(面板加载耗时与反转时机) by @wehos in #3558
  • feat(widget-mode): 首次贴边探身时提示一次如何恢复与关闭 by @wehos in https://github.com/Project-N-E-K-O/N.E.K.O/pull/3560
  • fix(card-forge): 隔离 scope 的记忆送锻造台前加 scope 提示 by @wehos in https://github.com/Project-N-E-K-O/N.E.K.O/pull/3563
  • fix(ci): nightly 发布不再先删后建,mac 后端产物保留符号链接压回 2 GiB 以内 by @wehos in https://github.com/Project-N-E-K-O/N.E.K.O/pull/3564
  • 更新 YUI 默认角色卡卡面 by @MingTianSang in https://github.com/Project-N-E-K-O/N.E.K.O/pull/3567
  • fix(live2d): 修复捏脸参数抽搐与默认状态重置 by @MingTianSang in https://github.com/Project-N-E-K-O/N.E.K.O/pull/3570
  • fix: 修正小猫素材切换后的贴边间隔 by @MingTianSang in https://github.com/Project-N-E-K-O/N.E.K.O/pull/3569
  • fix(music): 推荐卡片跳过和口头拒绝也进入音乐冷却 by @wehos in https://github.com/Project-N-E-K-O/N.E.K.O/pull/3571

New Contributors

Full Changelog: v0.9.0...v0.9.1

Don't miss a new N.E.K.O release

NewReleases is sending notifications on new releases.