Skip to content

v0.27.3

Choose a tag to compare

@Verlintas Verlintas released this 27 Sep 04:27
· 6 commits to main since this release

v0.27.3 — 滚动流畅性根治 + Markdown 渲染修复 + 自主模式不限轮次

滚动抖动根治(重要)

  • 根因:旧的「每 80ms 强制滚动」与 Markdown 异步布局互相竞争,产生剧烈抖动
  • 重构为布局驱动跟随:布局完成后仅在内容超出视口时补滚一次——无循环、无延迟、无竞争
  • 顺带修复隐藏死锁:此前程序自身滚动会被误判为「用户在看历史」而停止跟随;现在只有真实手指拖拽才暂停跟随
  • 实测(设备日志 + 截图):流式时屏幕稳定显示最新内容,不再抖动/停在第 1 行

Markdown 渲染修复

  • 无外框表格修复:AI 常输出的 项目 | 价格(不带首尾 |)格式此前渲染成纯文本,现已正确显示为表格(这是「很多表格显示不出来」的主因)
  • 标题/列表/引用缺空格自动修复:###标题、-列表项、1.列表项、>引用 均正常渲染
  • 全角星号 **加粗** 自动转换;版本号 1.5 等不受影响

工具调用轮次

  • MAX 模式上限 12 → 50:自主任务不再因轮次耗尽被强制中断(防死循环兜底);Build 模式保持 12

SHA-256:

  • full: 3ba03e417a606669c9f0cf3ecd2cc75389c1f091b174e0275b2ecefdd538ed64
  • lite: f18cdab7e7ae0735fd6fa0937c3529055a886424fadb9e1dcd97be9c7d726762

v0.27.3 — Smooth scrolling (root fix) + markdown rendering + unlimited MAX rounds

Scroll jitter fixed (root cause)

  • The old "force-scroll every 80ms" loop fought Markdown's async layout, producing heavy jitter
  • Rebuilt as a layout-driven follower: after each layout, scroll once only if the last item exceeds the viewport - no loop, no delay, no fighting
  • Fixed a hidden deadlock: programmatic scrolls were mistaken for "user is reading history" and silently disabled following; now only real finger drags pause it
  • Verified on device (logs + screenshots): the screen steadily shows the newest lines while streaming

Markdown rendering fixes

  • Tables without outer pipes (item | price style, common in model output) now render as real tables instead of plain text - this was the main cause of "many tables don't display"
  • Auto-fix missing spaces: ###title, -item, 1.item, >quote all render correctly now
  • Full-width stars **bold** converted; version numbers like 1.5 untouched

Tool rounds

  • MAX mode ceiling 12 -> 50: autonomous tasks are no longer cut off mid-work (anti-deadlock guard only); Build mode keeps 12

SHA-256:

  • full: 3ba03e417a606669c9f0cf3ecd2cc75389c1f091b174e0275b2ecefdd538ed64
  • lite: f18cdab7e7ae0735fd6fa0937c3529055a886424fadb9e1dcd97be9c7d726762