Skip to content

Releases: xyt-dev/nekochat

v0.18.0 · 原生 SVG 绘图与鹈鹕骑自行车

Choose a tag to compare

@xyt-dev xyt-dev released this 02 Nov 12:36

0.18.0 完整升级 SVG 绘图,并修复原始复平面单位圆示例的 fill=var(--nk-muted) 校验错误。

  • Rust/WASM 统一 XML、CSS 和本地资源边界;使用浏览器原生绘制路径、文字、渐变、滤镜、遮罩、复用、CSS/SMIL 动画、XHTML 与内嵌图片/字体。
  • 保留 SVG 局部层叠、结构选择器、动画目标与透明度;主题和按需调色不再破坏渐变、遮罩或动画参数。
  • 删除旧 SVG 提示词和鲸鱼模板,替换为完整使用指南与可运行示例。
  • README 中英文替换为「鹈鹕骑自行车」完整动画,以真实聊天页录制的4.8秒循环GIF展示双腿、脚踏、曲柄和辐条联动,并附SVG源文件与桌面/手机截图。
  • 保留关系图默认颜色修复:节点色优先于 diagram.color,未指定时跟随主题。

验证:55 项 Rust 相关回归、4 项动画回归、TypeScript/WASM/Vite 与两个 release 程序构建通过。原图双入口及完整使用/艺术示例共 19 张图经 Chromium、WebKit、Firefox 实际消息页面成功绘制;校验绕过与原生 CSS/SMIL 边界另有验证。浏览器具体绘图细节以原生引擎为准。

Linux x86_64 GNU 包含 nekochat、nekochat-search、配置示例和所需许可文件。现有配置、角色、对话与授权不变。此前同日图形修复版本由本次 0.18.0 替换;CHANGELOG.md 提供详细变更。

本次展示更新:鹈鹕骑行动画已在正式服务的桌面与430px手机视口中验证,GIF为800×720、72帧、4.8秒循环;旧星海示例及截图已替换。程序版本与二进制保持0.18.0。

提示词更新:默认主动优先有意义的 CSS/SMIL 动画,强调主体动作、部件联动、周期/相位与连接点,并在发送前检查;用户明确要求静态或固定格式时遵守要求。仓库 description 加入交互图表与 SVG 动画能力。资源相关10项回归及两个release程序构建通过。

nekochat v0.16.2

Choose a tag to compare

@xyt-dev xyt-dev released this 02 Nov 10:35

修复手机Safari从底部上滑、经过每轮起点时跳动,以及到底部反复弹动;同一账号在不同浏览器中实时同步会话与消息,无需刷新。

滚动由TanStack Virtual统一管理布局坐标、iOS惯性期间的修正暂存和物理写入,移除项目内重复补偿与浏览器双重锚定。首次测量按实际布局边界判断,不把跨越视口的长回复整块推走;触摸接管取消尚未落地的回底命令,处理无实际滚动的边缘手势、旧WebKit收尾与负虚拟起点,保留文档流防重叠和有界挂载。参考:https://tanstack.com/blog/tanstack-virtual-perf-and-ios

账号级SSE通知覆盖创建/删除/清空/分支与生成起止,连接建立后权威快照补齐,断线重连自动恢复。远端生成复用同一次流式观察,不重发模型请求,保留本端草稿、附件、导航和阅读意图;修复待定POST与远端变更竞争、终止快照吞掉失败提示的竞态,账号归属和会话撤销沿用既有权限。

验证:40项前端、100项Rust相关回归通过,TypeScript/WASM/Vite及两个独立程序构建通过。真实WebKit、Chromium、Firefox手机宽度跨冷历史,稳定最大偏移小于1px;WebKit iOS路径上方图片增高800px,拖动中写入0次、可见偏移0,结束后一次换算仍偏移0。正式嵌入构建和部署后各60步冷历史,最大偏移0.5px,无丢锚/重叠/横向溢出。500条消息、100token/s、20秒前台压测60.1fps/P9516.7ms,无长任务,挂载上限11条。Linux三引擎验证,未冒称手机实机全覆盖。

真实上游单次请求由Chromium发送,独立Firefox无刷新显示同一回复39次增长及完成结果,草稿保留;清空/删除自动生效,新会话不强制跳转。正式配置、角色与数据保留,健康检查通过。

Linux x86_64 GNU 包含主程序、独立搜索程序、示例配置和许可证,SHA256SUMS供校验。源码:f5e1f6b72100c9f10ac51f2d4734af62e2ae9bd4

nekochat v0.16.1

Choose a tag to compare

@xyt-dev xyt-dev released this 02 Nov 09:33

从架构上修复向上阅读仍被向下拉动的问题,保留消息不重叠与长对话性能。

根因:虚拟列表首次测量历史消息时仍按估算高度写滚动位置;500条消息复现37次向下写入,最大单次1253px。

变更:虚拟列表只计算范围/尺寸,关闭尺寸补偿和滚动写入;消息按真实文档流排布,间隔块不参与锚定。视口控制器统一跟随状态和用户手势,原生锚定与基于真实内容坐标的兼容路径互斥选择,取消400ms时间猜测与多方互相纠偏。

验证:手机/桌面原生和兼容路径各22次真实滚轮跨冷历史,可见内容最大偏移均小于1px,无倒退至更新消息;真实GIF在视口上方延迟解码并增高320px,两种路径阅读偏移均为0。正式构建30次、正式服务两种路径各24次冷历史滚轮,阅读偏移为0,虚拟列表滚动调用为0。兼容路径在Chromium关闭原生能力验证,未冒称实机Safari。15项前端回归、TypeScript/WASM/Vite和两个release构建通过。

性能:相同500条公式/代码/GIF、100token/s、20秒前台负载,手机/桌面均约60fps、P95帧间隔16.7–16.8ms、无长任务,挂载上限11条。4倍CPU压力经过消息布局/绘制隔离后约58.7fps、P9516.8ms,该轮无长任务;原版约60fps但遍历历史行数54,新版61,因此不承诺所有设备绝对零开销。

版本保持v0.16.1,包含既有图形恢复、来源/建议顺序和公式修复;Linuxx86_64GNU包含主程序、独立搜索程序、示例配置及许可证,SHA256SUMS供校验。

源码提交:5f39eaa1539ccbdbce25065f6b25b6af6236a79b

nekochat v0.13.0

Choose a tag to compare

@xyt-dev xyt-dev released this 30 Oct 13:43

自托管的角色扮演网页聊天。本次发布对应 main 分支的 v0.13.0 附注 tag。

本次更新

  • 管理端支持移除已退出或未完成注册的 ChatGPT 本地记录,保留其他账号、凭证和稳定主机标识。
  • 已保存会话以及授权中的记录受到保护;处理并发清理、写入失败和持久化警告。
  • 退出保留原应用注册供重新授权;移除本地记录不会删除 OpenAI 侧的应用。
  • 包含现有的角色聊天、官方 ChatGPT 订阅接入、项目内搜索底座与 Web/搜索统一启动。

版本

  • Rust 主项目与 Web:0.13.0。
  • 独立搜索底座 nekochat-search:0.2.0。
  • 数据库继续使用 schema 6。

验证

  • cargo test --workspace --locked --offline:260 项测试通过。
  • bun run build:WASM、TypeScript 检查与 Vite 生产构建通过。
  • 实际 CLI 分别返回 nekochat 0.13.0、nekochat-search 0.2.0。
  • 现有部署实际首页返回 HTTP 200。

本次发布源码。构建、配置及运行步骤见 README,完整变更与已有验证记录见 CHANGELOG。