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

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

Choose a tag to compare

@LuzzyMeow LuzzyMeow released this 01 Oct 04:17
· 2 commits to main since this release

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 通过 ≠ 验收通过