Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#1 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
30/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
devtools

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

场景 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 同构)。

Lingua principale
TypeScript
Stelle
0
Fork
0
Merge medio
8m
PR unite (30g)
2

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.