This repository was archived by the owner on Apr 25, 2026. It is now read-only.
0.5.1 (a5b6fd2)
browser-cli 0.5.1
0.5.1 是一个以页面语义保留、结构化视图可读性和长块元素定位修正为主的补丁版本,汇总了自 0.5.0 以来的这一轮页面解析 / XML 输出 / 扩展侧交互细节改进。
亮点
- 更完整的交互语义识别
- 结构化阶段现在能识别更多 role / 状态驱动的控件,包括
role="link"、tab、menuitem、option、switch等常见自定义交互语义。 - 对带
tabindex且同时具有aria-selected/aria-current/aria-expanded等状态的节点,会更保守地判定为可交互元素,减少自定义组件上的漏判。 - 浏览器侧快照补充了
class、tabindex、更多 ARIA 状态和运行时onclick信息,为 Rust 侧结构化判断提供更完整的原始事实。
- 结构化阶段现在能识别更多 role / 状态驱动的控件,包括
- 聚焦查看与长块目标解析更稳定
view现在可以正确定位被截断列表 / 表格块中的元素,并自动返回展开后的上下文。click的文本查询和--new-session链接解析会继续在完整块内容中查找目标,不再只局限于当前页已经展开的那一小段。
- XML 输出更贴近真实语义
- 会跳过纯展示型包装容器,减少
div/span/i一类无意义层级噪声。 - 被压平包装层上的
role/class语义会向下继承到最终输出节点,便于后续规则、插件或 Agent 利用上下文。 - 单一交互叶子的列表项会更紧凑地内联输出,但真正有记录边界的 item 分组仍会保留。
- 会跳过纯展示型包装容器,减少
- 光标驻留行为更克制、更自然
- 空闲游走改为按间隔决策,并在长时间没有 CLI 活动后自动停止,避免页面长期无意义移动。
- 移动轨迹加入轻微 wobble 和中途犹豫停顿,鼠标存在感更自然。
兼容性与行为说明
- 这是一个兼容性补丁版本,没有引入新的会话模型或协议层破坏性变更。
- 现有
eN/tN/bN工作流继续可用;本次主要是让复杂自定义组件和长块场景下的结构化结果更稳定、更容易定位。 - XML 输出会比
0.5.0更少展示无语义包装层;如果下游逻辑依赖这些展示型容器的具体层级,需要按新的结构化视图适配。
English
0.5.1 is a patch release focused on semantic preservation, structured-view readability, and more reliable element resolution inside truncated blocks, covering this round of page parsing, XML rendering, and extension-side interaction refinements since 0.5.0.
Highlights
- More complete interactive semantic detection
- The structured page pass now recognizes more role- and state-driven widgets, including common custom semantics such as
role="link",tab,menuitem,option, andswitch. - Nodes with
tabindexplus widget state such asaria-selected,aria-current, oraria-expandedare now classified more conservatively as interactive, reducing misses on custom components. - Browser-side snapshots now include
class,tabindex, more ARIA state, and runtimeonclicksignals so the Rust side has a fuller set of raw facts to classify from.
- The structured page pass now recognizes more role- and state-driven widgets, including common custom semantics such as
- More reliable focused views and long-block target resolution
viewcan now resolve elements that live inside truncated list/table blocks and automatically return the expanded surrounding context.- Text-query resolution in
clickand link extraction for--new-sessionnow continue searching through full block contents instead of only the currently expanded slice.
- XML output is closer to real page semantics
- Purely presentational wrapper containers are skipped to reduce noise from meaningless
div/span/ilayers. role/classsemantics from flattened wrappers are propagated down to the final rendered nodes, which gives downstream rules, plugins, and agents more usable context.- List items that only wrap a single interactive leaf are rendered more compactly, while true record boundaries are still preserved.
- Purely presentational wrapper containers are skipped to reduce noise from meaningless
- Cursor presence becomes more restrained and natural
- Idle wandering now runs on interval-based decisions and stops automatically after prolonged CLI inactivity, avoiding endless meaningless movement.
- Cursor motion now includes slight wobble and occasional hesitation pauses to make on-page presence look less mechanical.
Compatibility and behavior notes
- This is a compatible patch release with no new session-model or protocol-breaking changes.
- Existing
eN/tN/bNworkflows remain valid; the main goal here is to make structured output more stable and easier to target on complex custom widgets and long blocks. - XML output in
0.5.1intentionally shows fewer non-semantic wrapper layers than0.5.0; downstream logic that depended on those presentational container levels should adapt to the cleaner structure.
Full Changelog: 0.5.0...0.5.1