猫爪音乐
正式版
22
查看
0
讨论
8
收藏
photo_library 应用截图
new_releases 更新日志
🤖 AI 助手(本次更新核心)
🌐 联网搜索与网页抓取(全新联网方案)
联网方案全面升级(照搬 opencode 方案):引入 Exa 托管 AI 搜索作为首选搜索源,搜索结果更精准、内容更完整;配合 fetch_web_page 工具实现"搜索发现 → 抓取正文"的完整联网链路
修复"联网搜索找不到内容":Bing 换中国版 + 多源合并去重 + DuckDuckGo 补充,冷门内容也能搜到
搜索提速:三个搜索源并行请求 + 限流读取 + 各环节独立超时,不再等待最慢的源返回
工具结果上限从 6000 提升到 10000 字节,Exa 搜索 8 条结果可完整呈现给模型
🛠 Agent 工具调用管线(照搬 opencode 机制)
工具调用参数校验:参数缺失/类型错误时给出明确错误语义,模型可自行修正重试
只读工具并行执行:一次响应中多个只读工具(如同时搜索 + 查音乐库)并行跑,任务完成快一倍
工具结果统一智能截断,避免超长结果刷爆上下文
修复工具结果截断 bug:单行 JSON 按行切割导致模型收到空结果(表现为工具明明成功了但模型说没看到结果)
💬 对话体验
流式输出:Yuki 的思考过程和正文实时逐字显示,不再等全部生成完(配合推理模型感知极佳)
对话完成后面推理过程保持展开,发送新消息才自动折叠上一条
修复 reasoning_effort=auto 导致 DeepSeek 400 错误(auto/disabled 不再发送该参数,供应商白名单)
修复"备用模型从未被调用"的常见根因:备用模型不再要求同时勾选"启用",只勾"作为备用"即生效
修复模型管理页"切换备"误把主模型也切换了——SaveConfig 不再无条件改主
Agent 场景适配:上下文预算提升到 32000 token、支持并行工具调用、全局推理力度设置生效
修复"查天气等场景步骤过多":轮次上限提高 + 死循环检测(同一工具+相同参数连续 3 次强制中断)+ 收敛引导
🖥 浏览器接入
browser_open 工具:Yuki 可以直接控制内置浏览器打开动态页面/反爬页面(如需要 JS 渲染的网站),读取页面内容
浏览器预览改为聊天页顶部小窗口,不再跳转整页,边聊边看
download_file 工具:让 Yuki 帮你下载任意文件(复用应用下载管理器,任务出现在下载中心可管理)
🎵 音乐下载(免费直连)
netease_download 工具:网易云免费直连下载,优先 320K 高品质音质(enhance/player/url 接口三级降级:320K → 128K → 外链)
kuwo_download 工具:酷我音乐免费直连下载真无损 FLAC(按 FORMATS 字段自动判定音质档位,实测 25MB 真 FLAC 文件)
下载成功后歌曲自动进入本地音乐库,可直接播放
🔧 音乐源配置化 + 自修复(进化能力)
音乐源(酷我/网易云等接口)改为配置化存储(MusicSourceConfig + Registry),不再硬编码在代码里
新增 update_music_source 工具:Yuki 发现音乐源失效后,可以自己提交新配置 → 自动验证接口可用性 → 保存生效(完整闭环:模拟失效 → 诊断 → 修复 → 恢复)
音乐源维护技能提示词去除硬编码年份(2026),改泛化表述,跨年可用
🔧 模型与配置修复
修复 AI 聊天在 Android 上请求失败:网络请求统一切到线程池发起(NetworkOnMainThreadException)
修复服务端返回空 choices(限流/内容过滤)时解析崩溃(choices 为 null 时直接崩溃 → 优雅报错)
修复封面缓存文件缺失时 Glide 加载黑图(封面临时文件延迟删除 + 显示前兜底校验)
🎧 播放修复(本次重点)
修复 Yuki 播放后进度条不走:ExoPlayer 首次创建落在非主线程,Media3 线程校验抛异常导致监听器未注册(音乐在播但进度回调丢失)。修复:EnsurePlayer 强制主线程创建 + STATE_READY/错误恢复时补启动进度定时器(双重保险)
修复封面临时文件删除竞态导致的黑图(Glide ENOENT ×6):临时封面延迟 15 秒删除 + 播放页显示前文件存在性兜底
📱 Android
发现页卡片滑动不再误切 tab(完整修复系列):
ViewPager2 手势仲裁:DOWN 即抢占手势,卡片滑到最左/最右才放行切 tab
堵死嵌套滚动通道(RecyclerView 嵌套滚动把横向滚动交给 ViewPager2 的问题)
挂载双保险(HandlerChanged + Loaded + 延迟重试),杜绝监听漏挂
启动提速:三段串行预加载改三路并行(DB 就绪 → 数据 + 封面 + 歌词并行);启动页等封面/歌词预加载完成再进主界面,不再白屏闪烁
本地扫描三来源并行:MediaStore / SAF / 自定义文件夹同时扫描,1000 首导入不再卡死
Debug 构建统一使用正式 keystore 签名(根治覆盖安装 JNI 冲突崩溃)
🎨 发现页(竖屏对齐横屏)
Hero 卡改为方形卡片(与横屏一致),横向单行并排
AI 入口卡并入 Hero 首卡:一句话唤起 Yuki
新增 AI 歌单区块:每天自动生成 5 个主题歌单(各 20 首 + 推荐理由)
推荐专辑改两行横滑(GridItemsLayout Span=2)
卡片整体紧凑化:间距缩小,一屏显示更多内容
修复 Hero 网格只显示 AI 卡(ItemsSource 同实例不刷新)、横向列表高度缺失等问题
📥 下载管理
磁力(magnet/BT)下载支持:内置 MonoTorrent 引擎,种子任务自动开始下载
下载管理页面:已完成任务点击打开文件/所在目录(Android/Windows)
删除文件失败不再静默吞异常:返回失败原因并弹窗提示
Windows 嵌入模式修复:下载管理按钮失效(改 code-behind 事件)、弹窗静默失败(改由窗口根页面弹框)
磁力链接 AddAsync 抛 IOException → 改用 MagnetLink.Parse 重载
下载器桥接未初始化导致 Yuki 下载无响应 → App 启动即急切实例化 DownloadManager
🧩 插件
插件更新检查与一键更新(IPlugin.UpdateUrl → GitHub releases 最新版检测 → 一键更新)
Gitee 仓库安装与更新支持(免认证 raw 文件约定)
通用插件快捷入口(IQuickEntryPlugin):插件可在发现页注册入口卡(如网易云私人漫游),点击执行动作并打开插件页
快捷入口支持排序(SortOrder 升序),多插件同权重按注册顺序稳定排序
快捷入口执行权完全交给插件(ExecuteQuickEntry 传入宿主 IServiceProvider)
🖥 Windows
逐字歌词修复系列:按对齐方式内部绘制(修复居左/居中错位)、歌词原文与译文统一满宽布局(根治居中/居右超出容器)、绘制换行宽度用控件实际宽钳制、逐字歌词最后一个字被裁剪修复
备份恢复按钮失效修复;备份目录移至文档目录;桌面端首次加载修复
📋 其他
关于页版权年份改为动态读取系统时间(不再写死 2026)
弹窗高度修复(仅 Android)+ 通知/播放页封面内存化(在线封面不落盘,通知封面字节直显)
发现页分区布局重构 + 方形卡片 + AI 入口 + 混合来源选项(英雄卡/AI 卡方形化、设置按钮 ZIndex 修复、弹窗主题色选中底)
description 应用介绍
萌系跨平台音乐播放器 · .NET 10 + C# 13 + MAUI 原生开发(Android + Windows)
支持本地音乐、Navidrome/Subsonic 网络音乐、WebDAV 远程文件、桌面悬浮歌词(可拖拽/锁定/双行KTV)、LRC 歌词同步滚动、全屏歌词体验、音频频谱可视化、睡眠定时、通知栏媒体控制 + MediaSession、播放状态自动保存与恢复、MediaStore 极速封面加载、动态流光背景、封面取色主题。
https://github.com/kankejiang/CatClawMusic