Repository navigation
Releases: LuzzyMeow/LuzzyRP
Release list
LuzzyRP v1.5.1 — 流式结尾丢字 · 增强记忆嵌入整链不可用 · 返回键语义
LuzzyRP v1.5.1 — 流式结尾丢字 · 增强记忆嵌入整链不可用 · 返回键语义
上游基线 RP-Hub 1.9.8(
53a8d80)· versionCode 19 · 稳定版(附 APK)
缺陷修复版,无新功能。 三处修复均由一次全量静态检查抓出(ESLint bug 类规则集
- 真实浏览器 Vue 模板编译 + 全量语法/内联脚本),每处都带负控验证——
先证明检查会响,再证明修复后不再响。
修复
1. 流式结尾丢字(严重)
commitLiveDelta 在 finally 中恒抛 ReferenceError。
流式收尾时会强制把「活通道」缓冲区追平 —— 最后一段正文靠这一步落盘。但该函数的
const 声明当时写在 try { 之内:块级作用域使它在 finally 里不可见,那行调用恒抛错,
又被自身的 try/catch 吞掉(注释写着「绝不阻断收尾」,于是静默失败)。
后果:流式结束时不追平缓冲区,最后一段正文丢失 —— 表现为回复尾部被截断,
且没有任何报错可循。
修法:把活通道状态与 commitLiveDelta 提到 try 之外的函数体作用域。
负控实测:把声明改名后,一次 5 帧流式只落库首帧
"动态",其余四帧全部丢失;
修复后完整落库"动态检查:活通道收尾追平验收句。"
2. 增强记忆的向量嵌入整链不可用(严重)
requestMemoryEmbeddings 里的 embeddingResolved 在函数体中被引用 9 次却从未声明
(1.9.5 三方合并时该声明整段丢失)。每次嵌入调用都在首行抛 ReferenceError,于是:
- 总结记忆的分片补录必然失败
- 手动向量检索必然失败
- 查询向量现算必然失败
且根因被「向量检索失败」toast 掩盖 —— 用户只看到检索不出结果,看不到为什么。
修法:按 requestClassicMemoryCompletion 的既有口径补回 resolveModelRequest(model)
解析(url / apiKey / 裸模型 id / protocol / providerId),使嵌入请求也走多商路由。
3. 返回键语义缺口
上游 RP-Hub 是不用 History API 的单页应用(全仓无 pushState / popstate /
hashchange),页面切换只改响应式 currentView,于是 webView.canGoBack() 恒为 false:
在设置 / 关于 / 外观 / 记忆 / 预设 / 世界书等任意非对话页按返回键,都会直接退出应用,
而不是回到对话页。
这偏离了本项目既有的「非对话页 → 回对话页;否则退出」返回语义,也偏离安卓用户预期。
修法(patch 053,扩展层零上游逻辑改动):
- 新增
ext/luzzy-back.js,提供window.__luzzyHandleBack() MainActivity返回键改为「先问页面是否消费 → 再走 WebView 历史 → 最后退出」- 接管链由内到外:弹窗(模型编辑器 → 供应商编辑器 → 供应商管理器 → 其它已知弹层)
→ AppNavigation 抽屉 → 回对话页 - manifest 显式开启
android:enableOnBackInvokedCallback
(Android 13+ 默认走 OnBackInvokedCallback 通道,未开启时系统会告警并可能绕过 dispatcher)
负控实测(摘掉挂载行):设置页按返回 → 直接回到桌面;
修复后 → 回到对话页且应用存活
注意事项
- 单 APK、同一密钥库(
apksigner指纹ed78235d…ffb1未变),已装 v1.5.0 可覆盖升级 - 上游基线仍为 RP-Hub 1.9.8(本版未动上游文件,仅按登记 patch 053 新增一处挂载行)
- 回归门:
verify-markers.ps169 PASS / 0 FAIL;tools/下 5 个 JS 门禁全 PASS;
:app:check+:app:lintReleaseBUILD SUCCESSFUL;模拟器实测返回键三级链
(设置页 → 对话页 → 桌面)
LuzzyRP v1.5.0 — 回退 WebView 手机端 · 上游同步至 1.9.8 · 流式与缓存治理
LuzzyRP v1.5.0 — 回退 WebView 手机端 · 上游同步至 1.9.8 · 流式与缓存治理
上游基线 RP-Hub 1.9.8(
53a8d80)· versionCode 18 · 稳定版(附 APK)
本版最重要的事:路线回到 WebView,上游同步能力复活
v2.0 的原生 Kotlin 聊天传输层与 v3.0 的 Jetpack Compose 界面(含 Room 数据层与数据迁移)
整体删除,项目回到「原生 Kotlin 壳 + WebView 承载上游 RP-Hub + 扩展层」形态。
动因:原生界面要与上游 Vue 功能长期对齐,等于把上游每次更新翻译两遍;WebView 路线直接复用
上游实现,同步一次即全量到手。放弃的代价(原生界面的自绘自由)换来同步能力,这笔账划算。
上游同步已从 1.9.3 推进到 1.9.8——分期合并五步全部完成,每步独立验证与回滚:
| 步 | 上游改动规模 | 冲突数 |
|---|---|---|
| 1.9.3 → 1.9.4 | 4 文件 +91/−31 | 1 |
| 1.9.4 → 1.9.5 | 8 文件 +8112/−9092(记忆系统重构 + 侧栏重写) | 24 |
| 1.9.5 → 1.9.6 | 11 文件 +1247/−427 | 18 |
| 1.9.6 → 1.9.7 | 7 文件 +560/−612 | 0 |
| 1.9.7 → 1.9.8 | 12 文件 +294/−191 | 7(6 枚实体需三方合并) |
同步机制本身也在本版被加固:修掉 4 处在标准同步路径上会破坏二创内容的缺陷(其中一处会整目录
吃掉 assets/fonts/ 下 11 个字体共 16.2 MB,且无备份),并新增保护不变式——同步前后,
「不属于上游受管集」的文件必须一字不动。
同步上游 1.9.8(本版最终基线)
- 采纳上游:角色卡工坊「额外生成」开关整链删除(世界书与正则生成不再可关);小说页删除
本地内置商副本,单一真源收敛到core-utils.js的RPHubConfig;模型列表新增
selectableModels(为快捷槽位/记忆模型过滤 embedding 模型)与不可变排序;UI 模板副模型
温度 0.2 → 0.4;随机数工具扩展为「随机生成」(新增choices候选名分支);
Tavily API Key 区块重排并新增「获取密钥」外链。 - 保留我方:patch 012 多商路由、015/025 三协议与 provider 透传、037 用量页时间范围下线、
043 手动模型可检索且同商排最前。 - 上游新增
README.en.md,由同步脚本首次落盘。
新增
扩展层「开卷」开屏 + 主题首帧防闪(patch 018 / 027)
- 品牌级启动动画(掀封 / 纸落 / 界格 / 钤印 / 落墨 / 荧光划线,≈2.3s 定格);仅用
transform / opacity,reduced-motion下直出终帧 - 主题快照在首帧生效,暗色不再闪蓝
流式增量渲染旁路(patch 042 / 044 / 045)
v-lsp-stream指令按「稳定前缀 + 活动尾部」增量渲染,每次推进前缀都先证明
「全文 HTML === 前缀 HTML + 尾部 HTML」才提交- 正文与思考双活通道:流式期间不再每 tick 写响应式状态,改由带外通道直上屏
- 不丢任何前端部分——渲染仍走应用自己的
renderMarkdown,显示过滤 / 显示正则 / marked /
DOMPurify 全保留;真机实测消掉了单次根重渲染 230–340ms 的瓶颈
KV / prompt 前缀缓存治理(patch 047 / 048)
- 请求形态改为「纯追加」:实测 6 轮平均公共前缀由 0.9101 提升到接近 1.0
- Anthropic 协议补显式
cache_control断点(该协议无自动前缀缓存,不声明就零收益)
聊天输入解耦(patch 046)
- 打字不再触发整屏重渲染(原每键 ≈260–300ms 阻塞);发送键即时可用,拼字内容不被重渲染冲掉
多模型商混用 + 供应商三协议(patch 012 / 015)
- 模型引用体系
providerId::bareId,任意数量用户商;主聊天 / 识图 / UI 模板 / 记忆总结 /
记忆嵌入全部接入 - 供应商支持 OpenAI / Anthropic / Gemini 三协议,编辑器内含模型增删改(显示名 / 上下文长度 /
最大输出 / 输入模态 / 类型 / 自定义请求体)、五组热检测预设、自定义生图模型接入生图流
关于页(patch 014 / 024 / 039)
- CHANGELOG 版本分类下拉 + 关键词检索 + 命中高亮;回到顶部 FAB(滚动 >240px 出现)
用量趋势图(patch 025)
- 日 / 周 / 月三粒度 + 供应商 / 模型多色折线 + 单系列 Top8 溢出合并
优化
- 内置供应商精简为仅 DeepSeek 且开放编辑(patch 029);老用户的原内置商
(sta1n / openrouter / siliconflow)启动时无损迁移为等价用户商,URL / Key / 模型槽位引用保留 - 识图按需生效(patch 041):聊天模型原生支持图片时不再调用识图模型,图片按
image_url
part 直发;不支持时才走识图模型 - 手动配置的模型在选择器里看得见(patch 043):以用户起的显示名为主文本(两行式)、
参与检索、同一供应商内排最前 finish_reason三协议可见化(patch 052):回复被截断时明确区分「撞了输出上限」与
「模型自己收的」
修复
- 两处潜伏缺陷(patch 051):
responseResult.toolCalls无保护解引用(Anthropic / Gemini
每次生成收尾必抛 TypeError);Anthropic 响应第一帧被误判成错误(该协议此前完全不可用) - 用量记录补存 provider / protocol(patch 025 附带):历史记录里
[商名]前缀因此从未显示 - 发送键热区漂移(patch 033 / 046 附带):关于页 FAB 隐藏态仍吃点击,与发送键重叠 41×25px
- 合并期间修掉的 5 处真缺陷:
getCustomApiUrlKey被误删(运行期ReferenceError);
HTML 注释插进标签属性中间(Vue 编译SyntaxError,整页白屏);normalizeApiProviderSettings
重复定义;模型列表 label 契约类名丢失(label 宽度归零);toggleChatFullscreen导出悬空
(整页白屏)
注意事项
- 单 APK、同一密钥库(
apksigner指纹ed78235d…ffb1与历史一致);已装 v1.4.0 / v3.2.0
的设备可直接覆盖升级 - 「额外生成」开关已随上游删除:角色卡工坊的世界书与正则生成不再可关(上游 1.9.8 行为)
- 上游文件只允许通过
tools/patches/登记的 patch 修改;nsfw_rules永远不可触碰
(由校验门 D1 项以块 SHA-256 固定) - 回归门:
verify-markers.ps167 PASS / 0 FAIL(实体后像等值 8 + 上游纯净等值 14 +
语义锚点 34 + 红线与二创资产 11,负控 8/8 会响);tools/下 5 个 JS 门禁全 PASS - 真机与模拟器只装 release 包做人工目视;
assembleRelease通过 ≠ 验收通过
LuzzyRP v1.4.0 — 同步上游 1.9.2 · 剧情面板 · 沉浸模式 · 抗截断协议融合
LuzzyRP v1.4.0 — 同步上游 1.9.2 · 剧情面板 · 沉浸模式 · 抗截断协议融合
上游基线 RP-Hub 1.9.2(
d2f2625)· versionCode 12 · 稳定版(附 APK 单包)
下载
app-release.apk(约 17.3 MB,签名CN=LuzzyRP)——本版起只发布一个 APK 包。
此前各版附的「三件套」在本应用里其实是同一份文件:LuzzyRP 是纯 WebView 壳、不含 native
库,ABI 拆分产出的 arm64-v8a / x86_64 / universal 三个包字节完全相同(v1.2.2~v1.4.0
release 资产 SHA256 实测一致),拆分为零收益。故自 v1.4.0 起关闭 ABI 拆分、只发单包。
⚠️ 从测试包(debug)换到正式包:数据不互通,需重新填写一次
先说声抱歉——如果你此前一直装的是测试包(com.luzzymeow.luzzyrp.debug),换成正式包
(com.luzzymeow.luzzyrp)后,安卓会把两者当成两个独立应用:正式包读不到测试包里的数据,
所以需要重新填一次用户信息(昵称 / 人设等)和供应商 API 配置(API Key / URL / 模型)。
原因不是这次更新弄丢了数据,而是两个包的应用 ID 不同,系统层面各自拥有独立的存储目录;
同一包内的覆盖安装(升级)数据照旧保留,只有跨包名切换才会「从零开始」。
你可以按需选择:
- 想保留原有数据:继续用测试包(同包名覆盖安装,数据不动);
- 想用正式包:装好后重新填一次用户信息与 API 配置即可(角色卡 / 世界书 / 预设这类内容
可用应用内的导入导出功能从旧包搬过来,聊天记录与记忆不随包迁移)。
后续版本会继续沿用同一包名,再次升级不会再出现这个问题。
同步上游 1.9.2
- UI 实时生成(剧情面板):新增
story_panels预设——随剧情主动插入手机界面 / 便签 /
信件等 HTML 面板,渲染链完整保留(预设默认关闭,需在预设中启用) - 沉浸模式:
settings.immersiveMode(消息居中无头像布局),设置页可切换 - 角色卡牌组(CharacterDeck 组件)· 快捷面板样式与密度重构
- 主动工具调用改原生 toolCalls 协议(原文本标签解析退役)
- 抗截断改
output_reply工具协议:采纳上游replyInTool原生流式解析(仅 Gemini
模型可见,与上游实现一致);我方三协议适配器只做协议分派 +max_tokens/extraBody注入 - 上游修复采纳:正则渲染嵌套重复渲染 / UI 生成状态下正文异常阻断 / 新手引导高度自适应
- 安全面全过:
nsfw对象与上游逐字节一致、vendor/ 零变化、novel 与 runtime-services 零变化
新增
关于页更新日志关键词高亮(patch 039)
- 检索命中的内容里关键词以
<mark>高亮(文本节点级遍历,不破坏结构;大小写不敏感) - 底色取设计真源 highlight token
#F5D9A8(与开屏荧光笔记号同源),暗色下自动配反转主文字
优化
用量统计页时间筛选去冲突(patch 037)
- 删除右上角「更多」下拉(全部 / 24小时 / 7天 / 30天)——与折线图「日 / 周 / 月」粒度
语义冲突;保留折线图粒度与「全部 / 主对话 / 记忆系统 / 变量分析」类型筛选
版本更新公告品牌化(patch 038)
- 公告弹窗标题由上游「网站公告」改为品牌名 LuzzyRP
- 内容区底部新增同步来源注释:同步更新上游节点:本公告内容随上游 RP-Hub 版本同步,
由 LuzzyRP 呈现。
开屏「开卷」恢复(会话 25)
- 修复同步过程中开屏区被上游书本动画与我方残骸混合覆盖的问题——七个结构节点与标记
全部恢复,entry-transition彻底退役
修复
- 实体重放通道加固(工具层):实体段先于字符串块执行、前像判定改用实体头
index pre
的 blob id、git apply告警不再中断脚本、应用后强制校验标记落盘——仓库外逆向 9/9、
纯净基线端到端重放 9/9 全过 - 补回 index.html 的 001 / 004 / 006 标记注释并删除残留的 Google Fonts preconnect
(字体本地化合规)
注意事项
- 新功能默认值:沉浸模式默认关闭、剧情面板预设默认关闭、角色卡牌组默认关闭(原样交付,
体验后再议) - 抗截断:仅 Gemini 模型可见(上游实现即如此)
- 开屏:仍为 LuzzyRP 自创「开卷」,不采纳上游书本动画
- 全屏:聊天页全屏功能继续下线(沿用 v1.2.3 用户决策)
- 发布打包变更:自本版起 release 只附 单个 APK(关闭 ABI 拆分,原因见上方「下载」;
app/build.gradle.kts内已标注,恢复方式为取消注释原 splits.abi 块) - 剧情面板 / 沉浸模式 / 角色卡牌组暂以 classic 样式交付,主题化定制待体验后按设计流程推进
- 门禁:verify-markers 82 PASS / 0 FAIL;实体 9 枚以 1.9.2 基线再生成(逆向 9/9 PASS);
全 JSnode --check13/13;nsfw_rules与上游逐字节一致
LuzzyRP v1.3.0 — 同步上游 1.9.1 · 性能治理 · 供应商图标 · 记忆实时联动
LuzzyRP v1.3.0 — 同步上游 1.9.1 · 性能治理 · 供应商图标 · 记忆实时联动
上游基线 RP-Hub 1.9.1 · versionCode 11 · 稳定版(附 APK)
同步上游 1.9.1
- 上游 10 文件大版本:OpenAI 传输层迁往 api-utils.js 重写(120s 空闲超时 / 多行 SSE 容错 / requestJson 通道)
- 抗 Gemini 截断自动续写(仅 Gemini 模型可见)· UI 模板行协议改纯 JSON + 编辑器协议检查横幅
- 破限标记改回 rp_hub_default;记忆系统上游优化(我方记忆链路依赖上游逐字保留,零适配)
- 上游删除:临时指令功能、记忆页导入导出按钮(管理器仍可导入导出)、自动获取模型开关
新增
供应商自定义图标(patch 035)
- 编辑器新增「供应商图标」:从相册选图 → 1:1 裁剪(方框拖动 + 圆点缩放)→ 128×128 保存
- 圆角显示于选择器触发器与供应商管理卡(与 DeepSeek 图标同规格);支持清除恢复默认
记忆召回思考节点(patch 031)
- 思考卡片时间线新增首位节点「记忆召回」:命中片段数 + 相似度区间,详情可展开
- 复用结构化召回标记生态,失败静默降级;纯文本回复(无卡片)不显示
记忆内容管理器实时联动(patch 036)
- 面板展开时,向量/总结补录新增分片即时出现在列表中(原为打开时快照,不实时更新)
性能
流式渲染降载 + 合成层瘦身(patch 032/034)
- 流式渲染间隔 60→120ms + 流式期渲染 LRU 旁路(消除全文 O(n²) 重算与缓存驱逐)
- 高频面退实底:气泡 / 输入岛 / 侧栏 backdrop-filter 归零;常驻合成层 40-60 → 按需创建
- 开屏转场去 filter:blur(全屏逐帧重栅格 ≈3510×7800 像素/帧的掉帧主源消除)
发送键热区根除(patch 033)
- 输入区过渡定向化(FAB v4 配方)——视觉位置与点击热区完全对齐
变更
内置供应商精简(patch 029,老用户无损迁移)
- 内置列表仅保留 DeepSeek 且开放编辑(名称/URL/协议/模型可改,id 锁定)
- STA1N API / OpenRouter / SiliconFlow 自动转为等价自定义供应商(URL / Key / 模型槽位引用保留,无感迁移)
- 默认供应商切换为 DeepSeek
关于页「基于 RP-Hub」固定文案(patch 030)
- 上游版本号不再显示——同步永不遗忘基线串
修复
- 内置供应商编辑误报「该 id 已被其他供应商占用」(patch 035,override 合并身份失真)
- 管理卡名称被按钮挤压截断(如「STA1N」只显示「S」)→ 两行式布局(patch 035)
- 角色卡工坊页 JS 自 v1.0.0 起整体不执行的存量缺陷(patch 007 残缺 hunk,随 1.9.1 重打修复)
- 补录成功后记忆内容管理器不实时更新(patch 036)
注意事项
- 老用户升级:STA1N API / OpenRouter / SiliconFlow 自动转为等价自定义供应商(URL / Key / 模型槽位引用保留,无感迁移)
- 上游 1.9.1 移除了临时指令功能与记忆页导入导出按钮(管理器仍可导出导入)
- 选择器里的模型来自 /models 在线拉取缓存(配置 Key 后自动拉取,仅本次运行有效)
- 实体 9 枚以 1.9.1 基线再生成(逆向 9/9 PASS);verify-markers 75 PASS / 0 FAIL;nsfw_rules 与上游逐字节一致
LuzzyRP v1.2.3 — 同步上游 1.9.0 · 用量趋势图 · 开卷门扉 · 主题单轨化
LuzzyRP v1.2.3 — 同步上游 1.9.0 · 用量趋势图 · 开卷门扉 · 主题单轨化
上游基线 RP-Hub 1.9.0 · versionCode 10 · 稳定版(附 APK)
同步上游 1.9.0
- 破限预设标记
<roleplay_hub_default>→<rphub_default>(上游公告「修复标记问题」) - UI 模板分析提示词微调、更新公告刷新;built-in-content.js 与上游逐字节一致
新增
用量趋势折线图(patch 025)
- 用量统计页新增「用量趋势」卡——日(近 24h·小时桶)/ 周(近 7d·天桶)/ 月(近 28d·周桶)三种粒度
- 不同模型以品牌分类色板多线同图;供应商 chips 一键聚焦某模型商;模型多选 chips
- 单系列 Top 8 之外自动合并「其他」;空窗零值补齐 + 空态提示;纯 SVG 零依赖,亮暗自适应
开屏「开卷 · 门扉」(patch 027 v3,用户决策)
- 启动进入「门扉」交互:构图淡入 → 加载进度条自左向右 → 「沉溺」按钮浮现并等待点击
- 点击转场 = 轻微眩晕 + 水下泡泡上浮 + 中心放大坠入主界面
- reduced-motion:直出可点态,转场退化 220ms 淡出
关于页 CHANGELOG 工具化(patch 024)+ 自动同步
- 版本分类下拉(按 vX.Y.Z 过滤)+ 关键词搜索(150ms 防抖/命中计数/空态)+ 右下角置顶按钮(平滑回顶)
- 应用内更新日志自动同步:构建期 genChangelog 任务自动重生成 + verify-markers R3 门禁拦截过期(双保险防遗忘)
记忆检索修复(patch 026)
- 手动向量检索不再被保留窗排除吞空——真机实证 10/20 分片全量返回(相关度真实打分)
- 请求协议解析回退(分片供应商缺失时按当前配置兜底)
变更
主题单轨化(patch 028)
- 经典(原版)主题与主题切换移除,恒定「暖幕手记」(亮/暗模式保留)
- 老用户 classic 设置自动迁移;外观页预览卡简化为亮/暗模式切换
- 界面字体 / 对话字号等其余外观设置不变
设置页清理(patch 021/023)
- STA1N 供应商图标修复(官方 favicon)、存储统计改自动测量(「存储空间占用」)
- 高级设置残留外观入口移除、聊天页右上角全屏按钮移除
资产签名自动解压
- 构建期资产签名注入 + 启动比对,资产变更即自动重解压(IndexedDB 用户数据不受影响)
注意事项
- 真机(小米 / Android 16)全量回归通过:门扉开屏逐帧(51.7fps)、沉溺转场、用量折线图双系列、
向量检索 10/20、置顶按钮(箭头居中 [0,0])、外观单轨化、CHANGELOG 自动同步、真实数据完好 - 置顶按钮修复说明:v1.2.3 初版曾出现品牌卡误注入按钮内部导致箭头偏移,本版已修复并加注
入锚点迁移逻辑 - 仅侧载分发;基于 RP-Hub 1.9.0 二次开发(CC BY-NC 4.0),禁止商用与上架商店
下载
| 文件 | 适用设备 |
|---|---|
app-arm64-v8a-release.apk |
绝大多数现代手机(推荐) |
app-universal-release.apk |
不确定架构时 |
app-x86_64-release.apk |
x86_64 设备/模拟器 |
LuzzyRP v1.2.2 — 全新品牌图标 · toggle 蓝主题化 · 向量检索失败外化
LuzzyRP v1.2.2 — 全新品牌图标 · toggle 蓝主题化 · 向量检索失败外化
上游基线 RP-Hub 1.8.9 · versionCode 9 · 稳定版(附 APK)
全新品牌图标
- 应用图标全面替换为 White Fox 头像版(作者 AI 生图,纯 1:1 满幅不透明)
- 暖奶油底 × 珊瑚记号 × 白发狐耳少年——与应用内「暖幕手记」主题同构
- mipmap 全套密度重采样 + legacy 圆形裁切 + 关于页品牌图标同步
- 自适应图标方案升级:全图前景 68% 居中 + 同色纯背景(圆形/方圆蒙版下构图
完整,告别透明贴纸方案)
新增
toggle 蓝主题化(patch 008 v4)
- tailwind.config blue/indigo 色板接入
rgb(var(--tw-*) / <alpha-value>)——
暖幕手记主题下全部上游遗留 blue-/indigo- 工具类(toggle 选中态、设置页
叙事视角等 41+8 处)随主题收编为品牌珊瑚陶土色 - 经典主题 = Tailwind 原值零影响;violet 徽标保留为协议功能区分色
向量检索失败外化(patch 020)
- 向量分桶检索失败(分片嵌入商/模型与当前配置对不上导致整桶跳过等场景)
由仅 console.warn 改为 toast 提示(注入检索与手动检索两处;30s 全局节流
防离线刷屏;showToast 不可用时自动降级,不影响主流程)
styles.css 硬编码蓝收编(真机实测驱动)
- 侧栏激活项(渐变/阴影/竖条)、分段选择器选中态、settings-toggle checked
全家族(含 compact/indigo/solid 变体)、弹窗主按钮——暖幕手记主题下全部
收编为品牌珊瑚,经典主题原样
注意事项
- EXTRACT_VERSION=20:安装后首启自动重新解压内置资源(IndexedDB 用户数据不受影响)
- 真机(小米 / Android 16)已验证:暖幕手记亮/暗下侧栏激活项、叙事视角选中态、
settings-toggle 开关全部珊瑚化,无白块无布局回归;经典主题由作用域隔离机制保证
原版观感 - 换图标后桌面若仍显示旧图,为 MIUI 等桌面图标缓存所致——重启桌面或重装一次即可
- 仅侧载分发;基于 RP-Hub 1.8.9 二次开发(CC BY-NC 4.0),禁止商用与上架商店
下载
| 文件 | 适用设备 |
|---|---|
app-arm64-v8a-release.apk |
绝大多数现代手机(推荐) |
app-universal-release.apk |
不确定架构时 |
app-x86_64-release.apk |
x86_64 设备/模拟器 |
v1.2.1 — 侧栏品牌化 · 主题预览交互化 · 记忆链路修复 · 记忆内容管理器
LuzzyRP v1.2.1 — 侧栏品牌化 · 主题预览交互化 · 记忆链路修复 · 记忆内容管理器
上游基线 RP-Hub 1.8.9 · versionCode 8 · 稳定版(附 APK)
新增
侧栏品牌化与导航调整(patch 019)
- 侧边栏顶部品牌字样 RP HUB → LuzzyRP(Luzzy 主字 + RP 品牌珊瑚,双色同构开屏字标)
- 侧栏底部簇顺序调整为 外观 → 设置 → 关于(关于置底)
主题预览交互化(patch 019)
- 外观页预览卡色板随主题取色:经典主题显示上游原版蓝灰、暖幕手记显示品牌色板
- 暖幕手记下亮/暗双卡可直接点击切换模式(选中态描边标识,200ms 缓动按压反馈);
经典主题仅亮色单卡(经典无暗色模式)
记忆内容管理器(patch 017)
- 记忆系统页新增「记忆内容管理」:按角色(多分支角色附分支选择器)跨角色查看
向量分片与总结记忆全量列表(分页、轮次/嵌入模型徽标、两行预览点击展开) - 支持编辑 / 删除 / 参与召回开关 / 清空此角色记忆;当前角色改动即时联动会话上下文
上游标记体系(硬性规定 10)
- 全部二创改动在上游文件内携带
[LuzzyRP patch NNN]标记注释 - 实体 diff 重放(007/009/012-019 全覆盖)+
verify-markers.ps1校验门 41 项全绿
(含 NSFW 预设/styles.css 与上游逐字节指纹一致性校验)
优化
- 品牌色收编:开屏加载动画 7 处与设置页两处渐变横幅由蓝色系收编为品牌珊瑚陶土色
(仅暖幕手记主题生效,经典主题保持上游原版) - 开屏主题防闪蓝(patch 018):冷启动首帧即当前主题色,消除「蓝色一闪再变暖」
修复
- v1.2.1 布局异常(顶部遗漏字段/底部溢出屏幕):根因为 patch 018 head 注入缺失
<script>开标签导致主题样式加载失败与 DOM 结构错位——补回即修复(仅 1 行),
经浏览器同源解析器树级对比复验 - 上下文查看器不显示「角色记忆(向量召回)」标注(patch 016):召回块禁止合并,
紫色记忆标注与「已注入 N 个向量分片」统计恢复可靠显示 - 记忆面板悬浮于所有页面底部:已修复并双端复验通过
注意事项
- EXTRACT_VERSION=15:安装后首启自动重新解压内置资源(IndexedDB 用户数据不受影响)
- 真机(小米)release 包逐项验证:品牌字样/导航顺序/预览卡亮暗切换/经典主题预览联动/
杀进程主题持久化全部通过 - 向量分片编辑保存时会用原嵌入模型重新生成向量,嵌入模型不可用时不落盘(防脏数据)
- 仅侧载分发;基于 RP-Hub 1.8.9 二次开发(CC BY-NC 4.0),禁止商用与上架商店
下载
| 文件 | 适用设备 |
|---|---|
app-arm64-v8a-release.apk |
绝大多数现代手机(推荐) |
app-universal-release.apk |
不确定架构时 |
app-x86_64-release.apk |
x86_64 设备/模拟器 |
v1.2.0 — 统一雾纸玻璃 · 外观/关于独立页 · 三协议供应商 · 自定义生图
LuzzyRP v1.2.0 — 聊天页统一雾纸玻璃 · 外观/关于独立页 · 三协议供应商 · 自定义生图
上游基线 RP-Hub 1.8.9 · versionCode 7
新增
液态玻璃补全(统一雾纸)
- 聊天页全部表面纳入玻璃族:AI/用户/system 气泡、生成中气泡、思考卡片、名字标签——角色立绘从气泡后透出
- 流式生成中自动加厚保正文可读,完成后回落全玻璃;消息操作工具条同步收编
- 配方单点可调,支持旧设备实底降级;经典主题零影响
外观独立页
- 主题/模式/字体/字号独立成页(侧边栏底部:外观 → 关于 → 设置置底),全应用唯一外观入口
- 主题预览条实时展示亮暗色卡与字体样张
关于页
- 品牌信息(版本号/上游基线/署名/GitHub 入口)
- 应用内 CHANGELOG——更新日志直接在应用内阅读
供应商三协议
- 自定义供应商支持 OpenAI / Anthropic / Gemini 三种接口协议
- Anthropic Messages API / Gemini GenerateContent 完整适配:system 抽出、图片 base64、思考流(thinking/thought → 推理卡)、嵌入走 batchEmbedContents
供应商编辑器(二级弹窗)
- 编辑供应商 ID / 名称 / 协议 / URL / Key;模型手动增删改:
请求 id · 显示 id · 上下文长度(1024000/100K/1M 通用解析)· 最大输出长度 · 输入模态(文本/图像/视频多选)· 模型类型(文本/图像/嵌入单选)· 自定义请求体(键值懒编辑) - 模型 id 热检测预设:输入
glm-5.3-flash、deepseek-v4-flash-vision-exp等自动填齐全部字段(大小写不敏感、长词优先、只填空字段、可撤销) - 保存即热更新模型列表;编辑供应商 ID 自动重映射全部引用
- 最大输出长度按协议注入请求(
max_tokens/maxOutputTokens);上下文长度在选择器展示 meta(1M · 文本+图像)
自定义生图模型
- 生图设置新增「模型来源」:STA1N 官方(默认)/ 自定义模型(OpenAI 协议 image 模型,b64 直出,重生成/比例同步)
修复
- 「外观」按钮无激活高亮(v1.1.0 遗留)
- 思考卡玻璃 alpha 过高导致「雾纸不透」观感(0.86 → 0.74 对齐统一配方)
注意事项
- 「最大输入长度」为有意不设:上下文长度即输入+输出总预算,服务端按自家 tokenizer 精确计数
- 视频输入模态为能力预留(上游暂无视频附件入口)
- 自定义生图当前仅支持 OpenAI 协议模型
构建
- versionCode 7 · 资产自动重解压(EXTRACT_VERSION 6),升级后用户数据不受影响
- 模拟器全量走查通过(外观/关于页、编辑器端到端、三协议解析、max_tokens 注入、玻璃亮暗四值);证照
docs/design/verify-v120-*.png
CI Binary · CC BY-NC 4.0 · 仅限侧载分发
🎉 v1.1.0 — 多模型商混用 × 思考卡雾纸玻璃 × 外观独立面板(附 APK)
Note
首个扩展功能版本 —— v1.0.0 基础上增量更新(附 APK)
- 基于 v1.0.0 正式版增量迭代,数据完全兼容,可直接覆盖安装(versionCode 6)
- 附 APK 三件套:arm64-v8a(绝大多数手机)/ x86_64(模拟器)/ universal(不确定就选它)
- 侧载分发(不上架商店):安装前需允许「安装未知来源应用」;上游 NSFW 增强预设(
<nsfw_rules>)原样保留、不可触碰
本版本内容(v1.1.0 · 多模型商混用 × 思考卡雾纸玻璃 × 外观独立面板)
🔀 多模型商混用(供应商管理器)
- 管理供应商:设置页供应商下拉新增「管理供应商…」——任意数量自定义 OpenAI 兼容商(新增 / 改名 / 改地址 / 改 Key / 删除),内置 STA1N / DeepSeek / OpenRouter / SiliconFlow 分别配 Key
- 一键检测:每商「检测」按钮验证连通性并返回模型数,绿/灰状态点直观显示 Key 是否就绪
- 跨商合并模型列表:模型选择器展示全部已配置商的模型合集(按商缓存、打开时惰性拉取),族谱标签与搜索照常可用,搜索可命中商名
- 请求级解析:主聊天 / 识图 / UI 模板副模型 / 记忆总结 / 记忆嵌入全部按模型引用自动路由到对应供应商的地址与 Key;未配置或旧数据自动回落当前激活商——老数据零迁移直接可用
🏷️ 模型来源标注 [商名]
- 模型存储升级为
商id::模型id复合引用,所有模型展示位(模型选择弹窗 / 快捷三槽位 / 聊天页齿轮弹层 / 设置页各模型入口 / 用量统计日志)以[商名] 模型id标注来源,商名为珊瑚色徽标 chip - 同一模型型号来自不同模型商从此一目了然,任意槽位可跨商混选(例如:快速槽用 A 商、高质量槽用 B 商)
🧠 记忆系统双模式跨商
- 总结模式副模型、向量模式嵌入模型均可选自任意供应商
- 向量检索按 (供应商, 模型)分桶、每桶以该商该模型现算查询向量(桶内自比较,跨商余弦相似度有效);旧向量分片自动归入 legacy 桶按原行为检索
🧊 思考卡片 · 全卡雾纸玻璃
- 聊天页模型思考卡整体磨砂玻璃化:blur 16px 暖 tint + 发丝线 + 展开态暖阴影,内部步骤详情半透让玻璃透出
- 流式生成中自动降级近实底 + 珊瑚描边点缀(规避逐帧重排的 GPU 代价),生成完成恢复全玻璃
- 不支持
backdrop-filter的环境自动实底兜底;classic 经典主题零影响
🎨 外观独立面板
- 侧边栏新增**「外观」入口**(设置按钮下方):界面主题 / 模式 / 界面字体 / 对话字号集中一板
- 居中模态面板自动继承雾纸玻璃亮暗主题,弹层背后实时预览,修改即时生效并自动保存
- 设置页「高级参数」保留同名入口卡;老用户「自定义 / 自定义2」槽位自动迁移为管理器中的自定义供应商(小说工坊不受影响)
✅ 验证
- 真机实测(小米 25098PN5AC · Android 16 · WebView 150):思考卡玻璃亮/暗/流式三态 computed 全命中(条纹探针实证磨砂)、外观面板 / 供应商管理器 / 跨商徽标列表 / 检测链路端到端全通过
- 证照:
docs/design/verify-v110-*.png(玻璃四态 / 外观面板 / 供应商管理器 / 徽标列表) node --check全部 JS 语法通过;上游文件改动全部登记 patch 012 / 013,零裸改
⚠️ 已知边界
- 向量记忆横跨多个供应商时,检索会逐桶调用嵌入接口(每桶一次),嵌入调用量与桶数成正比
- 删除仍被引用的自定义供应商时,相关模型槽位回落为「跟随当前 API 预设」并弹确认告知
- 生图模型走独立网关,不参与多商混用(与上游行为一致)
- 上游 indigo/blue 硬编码点缀主题化、「荧光笔落笔」招牌动效顺延至 v1.2.0 候选
构建:assembleRelease BUILD SUCCESSFUL(luzzy 签名 + R8 minify + ABI 拆分三件套,各 ≈17.9MB)· versionCode 6 · EXTRACT_VERSION 4→5(覆盖安装自动重新解压,用户数据不受影响)· 本 Release 附 APK
🎉 v1.0.0 — 正式版 · 暖幕手记主题 × 雾纸玻璃(RP-Hub 二创壳 · 附 APK)
Note
全新重建正式版 —— 首个可正常游玩的 Release(附 APK)
- 相对 v0.3.0(旧 Compose 工程 · WIP)为推倒重建:引擎与代码库完全更换,旧版本数据不通用,全新安装即用
- 附 APK 三件套:arm64-v8a(绝大多数手机)/ x86_64(模拟器)/ universal(不确定就选它)
- 侧载分发(不上架商店):安装前需在系统设置允许「安装未知来源应用」;对话需自行配置模型供应商 API Key
- 上游 NSFW 增强预设(
<nsfw_rules>)原样保留、不可触碰
本版本内容(v1.0.0 · 暖幕手记 × Claude)
🏗️ RP-Hub 二创壳(全新架构)
- RP-Hub 1.8.9 前端 + Kotlin 单 Activity WebView 壳 +
assets/ext/独立扩展层——二创功能与上游文件零冲突 - 上游同步机制:覆盖 + 登记 patch 重放(001-011),上游文件零裸改,可长期跟随上游迭代
- 全离线:Vue 3 / Tailwind / marked / DOMPurify / SortableJS / 全部字体本地打包,运行时零 CDN,断网可用
- 系统能力桥:角色卡 PNG/JSON 走系统文件选择器(SAF)导入导出;剪贴板 / Toast / 系统栏样式随主题亮暗联动
🎨 主题系统「暖幕手记 × Claude」
- 按 4 项设计 SKILL 完整流程 + 三方向硬门(真实视觉方向板供选择)定稿
- Claude token 体系:cream 画布
#FAF9F5+ 珊瑚陶土 accent#CC785C/#A9583E+ ink#141413,Lora 衬线角色名牌的文学声音 - 亮暗双模式:暗色 gray 色阶整体反转,上游全部工具类自动适配;正文对比度 ≥4.5:1
- 新用户默认暖幕手记 + Luzzy 字体;老用户自动保留经典主题(迁移逻辑)
🪟 雾纸玻璃层 Frost-Paper(液态玻璃 × Claude 融合)
- 玻璃只上固定 chrome:顶栏 / 输入岛 / 侧栏抽屉 / 模态弹窗(blur 16px + 发丝线),聊天气泡维持纸感不透
- 突破上游移动端
backdrop-filter全局 kill-switch 与!important白面死角(输入岛 / Toast / 名牌等暗色成建制收编) @supports自动实底降级,低端设备视觉连续
🔤 字体系统
- Luzzy 默认 = AlibabaSans(拉丁)+ Alibaba PuHuiTi 3(中文),全部本地 woff2 打包
- 可选:经典(原版 Inter 系)/ 经典衬线(Lora)/ 系统;禁止运行时字体 CDN(硬性规定 4)
✅ 验证
- 双端实测:模拟器(AVD)+ 真机(小米 25098PN5AC · Android 16 · WebView 150)——亮暗主题、字体切换、雾纸玻璃、新用户默认路径、数据持久化
- 真机磨砂渲染条幅探针实证(
docs/design/verify-frost-phone-{light,dark}.png) - 发布包 smoke:首启公告 → 欢迎向导 → 空态引导全链路通过
⚠️ 已知边界
- 上游硬编码的 indigo/blue 少量点缀尚未主题化(如新用户向导「第二人称」选中态为上游原蓝)
- 「荧光笔落笔」招牌动效在 roadmap(v1.1.0 候选)
- 数据存于应用私有目录(IndexedDB),重要剧情请使用应用内导出备份
构建:assembleRelease BUILD SUCCESSFUL(luzzy 签名 + R8 minify + ABI 拆分三件套,各 ≈17.1MB)· versionCode 5(衔接 v0.3.0 的 4,可覆盖安装)· 本 Release 附 APK