Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

fix(snapshot): @eN ref 未绑定目标 tab/session、快照即重置——并发或人手操作下静默错点/错页

Abierto
#1 5 comentarios 0 reacciones 0 asignados Ver en GitHub

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-40 tabId 缺省)/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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.