fix(snapshot): @eN ref 未绑定目标 tab/session、快照即重置——并发或人手操作下静默错点/错页
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- devtools
Línea de trabajo
Start at content/snapshot.ts (ref map cleared and counter reset each snapshot, lines 100-135) and content/interact.ts:2-10, where staleness only checks !isConnected. Then read src/gateway/src/router.ts:27-40 for the default tabId/session resolution, and the isomorphic path in client/inject.ts:156-177. Done looks like: refs carry a snapshot generation, interactions reject a mismatched generation or role+name+bbox fingerprint with stale_ref, snapshot replies echo tabId/sessionId, and truncation past MAX_NODES/MAX_DEPTH is explicitly marked.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
场景 gap 单(okguitar 提报)· 优先级 P1 · 依赖:无
基线 HEAD = f9c7b88。(web-bridge 同构问题一并见正文)
Summary
- 页面内 refs 是单例 Map,每次 snapshot
refs.clear(); counter=0重排(content/snapshot.ts:100-101,131-135);失效检查只查连接状态(content/interact.ts:2-10仅!isConnected报 stale)。 - 目标解析默认当前活跃 tab(
src/gateway/src/router.ts:27-40tabId缺省)/web-bridge 缺省"最近连接会话"。 - 快照超限
MAX_NODES=800/MAX_DEPTH=20静默 return(snapshot.ts:122-124),输出无 truncated 标记;遍历含全部可见元素(非仅交互元素),交互元素可能整批缺失而 agent 无感知。
影响
旧 @eN 落在新快照同序号上不会报错、静默指向另一个元素(可能是有副作用的按钮);叠加目标漂移(切 tab/新页面连接)后 ref 与对象彻底解耦。relay 主场景(多 MCP 会话 + 用户手动操作同一浏览器)下错误点击难以归因。
建议
ref 带快照代次(@s3:e12),交互时校验代次或元素指纹(role+name+bbox),不符即 stale_ref;快照结果回带目标 tabId/sessionId;截断显式标记 [truncated: N more]。web-bridge 侧同步改(client/inject.ts:156-177 同构)。
- Lenguaje dominante
- TypeScript
- Estrellas
- 0
- Forks
- 0
- Merge medio
- 8 min
- PR fusionados (30 d)
- 2
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Issues similares
-
e2e-failure ready-to-code
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
redhat-developer/rhdh-plugin-export-overlays#4580 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
devdotfast/whiteboard#1415 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
area/sessions comp/desktop desktop/sessions P2 type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
NousResearch/hermes-agent#145383 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
enhancement p2 setup
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
vercel/eve#5419 · 1 comentario ·
Los mantenedores suelen responder en 1 día