callstack / callstack/agent-device

perf(scroll-until): build the snapshot visibility index once per pass

Chiusa Adatta ai principianti
#2,528 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
refactor
Lingua principale
TypeScript
Stelle
4.6k
Fork
299
Merge medio
10h 42m
PR unite (30g)
493

Descrizione

## Waste

`src/daemon/scroll-until.ts:169` evaluates `.some((node) => evaluateIsPredicate(...))` per pass; `predicates.ts:77` builds a fresh `createSnapshotVisibility(nodes)` per candidate. The rule in `packages/contracts/src/snapshot-visibility.ts:135-141` (#1970) says N candidates share one index. `resolveSelectorPipeline`, called just above, builds an equivalent index and discards it (`resolve.ts:229`). N is the matched selector set (1-5), so this is not a measurable wall-clock win; it is a correctness-of-shape fix. Added in #2436.

## Fix

Hoist the index out of the `.some()` (one per pass). Thread the pipeline's index into the predicate if the seam is already there; otherwise leave that for the H2 capture-kit move. Three lines; no measurement gate, no perf claim.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia da src/daemon/scroll-until.ts:169, quindi esamina predicates.ts:77 e resolve.ts:229 insieme a packages/contracts/src/snapshot-visibility.ts:135-141. Verifica in che modo resolveSelectorPipeline espone il suo indice e fai in modo che il pass riutilizzi un unico indice di visibilità dello snapshot invece di ricostruirlo per ogni candidato; il lavoro è completato quando l'indice viene creato una sola volta per pass, senza che sia richiesta alcuna dichiarazione sulle prestazioni.

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

Valutazione

Stack tecnologico
typescript
Ambito
performance
Tipo di issue
Refactoring
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Attiva
Chiarezza
Specificata chiaramente
Idoneità per principianti
78/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.