Skip to content
This repository was archived by the owner on Oct 19, 2026. It is now read-only.

Releases: LuzzyMeow/LuzzyRP

LuzzyRP v1.5.1 — 流式结尾丢字 · 增强记忆嵌入整链不可用 · 返回键语义

Choose a tag to compare

@LuzzyMeow LuzzyMeow released this 01 Oct 04:57

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.ps1 69 PASS / 0 FAIL;tools/ 下 5 个 JS 门禁全 PASS;
    :app:check + :app:lintRelease BUILD SUCCESSFUL;模拟器实测返回键三级链
    (设置页 → 对话页 → 桌面)

LuzzyRP v1.5.0 — 回退 WebView 手机端 · 上游同步至 1.9.8 · 流式与缓存治理

Choose a tag to compare

@LuzzyMeow LuzzyMeow released this 01 Oct 04:17

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.ps1 67 PASS / 0 FAIL(实体后像等值 8 + 上游纯净等值 14 +
    语义锚点 34 + 红线与二创资产 11,负控 8/8 会响);tools/ 下 5 个 JS 门禁全 PASS
  • 真机与模拟器只装 release 包做人工目视;assembleRelease 通过 ≠ 验收通过

LuzzyRP v1.4.0 — 同步上游 1.9.2 · 剧情面板 · 沉浸模式 · 抗截断协议融合

Choose a tag to compare

@LuzzyMeow LuzzyMeow released this 08 Sep 11:11

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);
    全 JS node --check 13/13;nsfw_rules 与上游逐字节一致

LuzzyRP v1.3.0 — 同步上游 1.9.1 · 性能治理 · 供应商图标 · 记忆实时联动

Choose a tag to compare

@LuzzyMeow LuzzyMeow released this 06 Sep 00:00

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 · 用量趋势图 · 开卷门扉 · 主题单轨化

Choose a tag to compare

@LuzzyMeow LuzzyMeow released this 05 Sep 03:42

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 蓝主题化 · 向量检索失败外化

Choose a tag to compare

@LuzzyMeow LuzzyMeow released this 04 Sep 06:24

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 — 侧栏品牌化 · 主题预览交互化 · 记忆链路修复 · 记忆内容管理器

Choose a tag to compare

@LuzzyMeow LuzzyMeow released this 03 Sep 02:05

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 — 统一雾纸玻璃 · 外观/关于独立页 · 三协议供应商 · 自定义生图

Choose a tag to compare

@LuzzyMeow LuzzyMeow released this 02 Sep 04:17

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)

Choose a tag to compare

@LuzzyMeow LuzzyMeow released this 01 Sep 18:13

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)

Choose a tag to compare

@LuzzyMeow LuzzyMeow released this 01 Sep 15:22

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