feat(vom): discover canvas visual surfaces in observations | 在 observation 中发现 canvas 可视区域 - #138
feat(vom): discover canvas visual surfaces in observations | 在 observation 中发现 canvas 可视区域#138Ljy-0827 wants to merge 4 commits into
Conversation
eeba301 to
e141f27
Compare
e141f27 to
73ad0ac
Compare
39ada87 to
d660da8
Compare
|
先说结论:现在问题不是"漏了过滤",而是 1. surface 行会硬截断整个 observation
const nextTokens = state.tokens + estimateTokens(line);
if (nextTokens > state.maxTokens) {
state.truncated = true;
state.stopped = true;
return;
}
2. 无 label 的 surface 之间对 Agent 完全不可区分const label = cleaned(surface.label) ?? `${surface.renderingKind} visual surface`;没有 3. 后续 DOM ref 编号整体偏移
测试:建议增加如下的情况测试,。
最后一条测试对 #143 很重要,坐标换算完全依赖"PNG 像素尺寸 ÷ CSS 矩形"这个比值自洽,一旦 |
d660da8 to
22bffeb
Compare
22bffeb to
28892ea
Compare
问题
当前 VOM 对于 Canvas 渲染的表格、白板、图表等内容,页面虽然视觉上存在大块有效信息,但语义树中通常没有对应内容。对于 Canvas,目前浏览器提供的结构信息通常只能描述 Canvas 元素本身,无法表示其中实际渲染的可视内容。
这会导致:
解决方案
在
observe链路中增加 Canvas Rendered Surface discovery:@eNref 的 visual-only Surface:这个 PR 解决的是 Canvas 区域“不可感知、无观察入口”的问题;Canvas 内部的结构化理解和交互能力不在本 PR 范围内。
测试
通过浏览器能力测试语料库测试。