• v0.29.0 Stable

    fourbroad released this 2026-10-14 14:23:55 +08:00 | 5 commits to main since this release

    v0.29.0 (MINOR) — 2026-10-14

    77 个提交 / 41 个合并 PR(自 v0.28.0,2026-10-13),11 个 feat、无 BREAKING。

    主线:登录面五件套(web /app 登录门、状态条用户按钮、添加服务器对话框去身份化、桌面统一身份分区 + auth-clear 联动、认证文案中文化);browser 能力面二期五节点(browser_scroll 双腿、截图 fullPage 增强、快照寻址统一 ref 空间、browser_recording 帧序列录制、pane 网络 method CDP 真实化);桌面 sidecar exit(0) 生命周期审计 + renderer booting 状态屏(#5971);稳定性三修(ws close 竞态根修、快照锁争用降级、CPU 守卫双窗口重试);设置-高级「切换终端」逃生口(#6002)。

    Full commit-level changelog (77 commits since v0.28.0)

    Changes since v0.28.0

    Added

    • #5939 认证文案中文化+fallback 链+注册邮箱实测
    • #5957 统一身份分区+官方连接隐形具备+auth-clear 联动(2/2)
    • #5958 添加服务器对话框去身份化——Basic-only 回归
    • #5957 状态条用户按钮(1/2)——双态身份入口+直达用户页+降级+自动导航
    • #5937 web /app 登录门——表单主+OAuth 次选+ambient 会话+邮箱可选
    • pane 网络 method CDP 真实化 + webview:network-entries + method-unknown 边界(#5890 N-11 / #5902)
    • scroll 同意条 i18n 键 + act-surface v1 契约 browser_scroll 条款(补遗——上提交遗漏的 3 文件)
    • browser_scroll 双腿——pane CDP 受信 wheel + headless scrollIntoViewIfNeeded (ref 锚定 + x/y 坐标)
    • browser_recording {start,status,stop}——帧序列+清单 v1 工件落 session-scratch
    • 快照寻址统一——双腿统一 ref 空间,pane handle/id 降为 additive 别名
    • pane 截图增强——fullPage captureBeyondViewport + filename + 遮挡早退 pane-guest-occluded

    Changed

    • ref 腿脉冲循环提取为 runScrollRefPulseLoop——scroll 分支收敛重复退出三元组(STY-R2-F001)

    Fixed

    • 满载分片本地天花板 900s + Windows nice 整类降级默认关闭 (#5961)
    • flag registry citation 291→295 + 969→985——#6008 合并后行移跟进(CI 基线红 rider)
    • 快照锁争用降级——gc 独立 deadline、track/patch 不再炸 generation、stale index.lock 入口自愈
    • #6002 设置-高级补「切换终端」行——beta 渠道状态条终端按钮逃生口
    • user button opens site root instead of /app login gate
    • scroll 假腿 refs 改真实 wire 形状(数组对)——gateSnapshotRefs 直接 .map 暴露 Map 形状违规(#5985×N-06 组合缝隙)
    • flag registry citation 287→291 追赶 #5985 落地后的 registry-inventory 行移(CI 基线红 rider)
    • FT-055 CPU 守卫加双窗口有界重试(#5962 环境性假红)
    • 修 5971 归档包 schema 违例 + 同步 main 的 4313 修复
    • review-code r2 修订——retryable 判别 + 组合函数抽取 + 习式回补(#5902)
    • WebSocketClientTransport.close() 等待 close 事件再返回(BF-584 调度竞态根修)
    • review-code r1 修订——1 MAJOR + 12 MINOR 全处置(#5902)
    • #5971 review R1 修订——channels 白名单补录 + 重启时序加固
    • #5971 sidecar:status 订阅移至 deeplink:navigate 之后
    • #5971 sidecar exit(0) 生命周期审计 + renderer booting 状态屏
    • browser_scroll 进 SKILL tools 锚与 twin 同步 25→26(verify F-1)
    • drop no-op finished.delete before same-key set; restore ledger identifiers mangled by prettier
    • wire ref-drift gate into both snapshot exits
    • ref 腿停滞 reason 与坐标腿统一——body overflow:hidden 时报 overflow-hidden(CORR2-N003)
    • wheel 锚点派发前夹取到视口边界内——负坐标/越界 probe 不再打偏(CORR2-N002)
    • 停滞检测纳入嵌套滚动容器位移——probe 上报最近可滚祖先 scrollTop,容器滚动算进展不再误判 overflow-clipped(CORR2-N001)
    • PERFR1-F002 — finished.delete before re-set on stop so tails do not accumulate per webContents id
    • CORR2-F003 — finished tail lookup validates sessionId binding (session-addressed face)
    • CORR2-F002 — relayErrorDetail mapping for frame-subscription-unavailable
    • CORR2-F001 — fold appendFrameRow into the png-write try/catch (ENOSPC/EACCES → stopped-mid-capture)
    • raise unified-ref cap to 15 digits, registry handle beats e-shaped attr ref
    • stitch strips the synthetic e ref from cross-origin subtrees
    • add happy-dom devDependency, extract shared test realm helper
    • invalid filename falls back to default evidence name with disclosure
    • honor filename on headless leg, sync parameter description
    • e2e fullPage degradation must fail red, add absolute elapsed budget
    • bound fullPage inline budget by part cap, fix px/ratio semantics via viewportHeight
    • overflow-hidden no-op 码消费死数据 + ref 脉冲循环砍每轮冗余往返(CORR1-F003/PERFR1-F001)
    • scroll 错误面固定 reason code,原始 CDP 文本只进审计不进 agent 面(SEC-R1)
    • ref 滚动停滞检测改逐脉冲比较 + pulse 后 settle 延迟(DGNR1-F002/CORR1-F002/PERFR1-F002)
    • wheel 滚动锚点改用 ref probe 真实坐标 + settle 披露 targetReached(DGNR1-F001)
    • scroll 方向启发式改用视口相对比较(CORR1-F001)+ 常量改名(STY-F002)
    • round-1 review fixes——manifest 帧索引 ndjson 增量追加(消除 O(frames²) 重写)

    Documentation

    • browser-scroll.txt 补 targetReached 字段与 noop reason 枚举说明(DOC-R2-F001)
    • DOCR2-F002 — browser_recording pane-leg-only/headless-unsupported disclosure in browser skill (+scaffold twin)
    • DOCR2-F001/DOCR2-F003 — grounded tmp-path wording, frames.ndjson vocabulary in tool txt + stale test header

    Maintenance

    • archive Tier 1 bundle for #5961 (merge-gate archive-presence)
    • fix archive bundle schema (artifact shas + string working_notes)
    • archive run bundle — #6002 Tier 1 归档包(merge gate 前置)
    • archive Tier 1 run bundle for #5998 (merge-gate precondition)
    • 源 pin 随 openBrowser 签名扩展修订(identity opt)
    • #5936 验收基线——零阻塞三情形+双路径+断网故障半径
    • 归档 #5937 Tier 1 bundle + login.test 源断言补 contract-assert 注记
    • archive Tier 1 bundle for #5962 (merge-gate archive-presence)
    • archive run bundle 5902-5890-browser-capability-2-task-n-11 (merge-gate archive-presence; meta ticket 5902 corrected)
    • glue describe 注释随 retryable 语义校准(r3 DBT INFO)
    • archive Tier 1 bundle for #5971 (merge-gate archive-presence)
    • archive Tier 1 bundle for #5960 (merge-gate archive-presence)
    • archive Tier 1 bundle for #5898 (merge-gate archive-presence)
    • archive Tier 1 bundle for #5897 (merge-gate archive-presence)
    • archive Tier 1 bundle for #5894 (merge-gate archive-presence)
    • archive Tier 1 bundle for #5893 (merge-gate archive-presence)
    • register ref-drift-gate diff-sample cap in output-cap exempt ledger
    • pngHasRgb 解码失败改抛描述性错误——与像素不存在可区分(TSTR2-F002)
    • startPaneGuestServer 补 /infinite-scroll 路由——AC-2 e2e 修复 404(TSTR2-F001 BLOCKER)
    • STYR2-F001 — prettier browser-tools-parity-ledger.md (sole offender)
    • extend dual-leg fixture with shadow-root and same-origin iframe coverage
    • strip comments added by the N-03 diff
    • e2e scroll 补 AC-2 双证据断言——snapshot 内容 + capturePage 像素(TSTR1-F001)
    1 uncategorized commit(s)
    Downloads