callstack / callstack/agent-device

iOS: skip private-AX deep extension on observation-only captures (settle, stabilization, corroboration)

Aperta
#1,626 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub
needs-triage
Lingua principale
TypeScript
Stelle
4.6k
Fork
299
Merge medio
10h 42m
PR unite (30g)
493

Descrizione

Follow-up to the frontier re-rooted deep-extension capture (PR incoming from branch `feat/private-ax-deep-extension`).

The deep extension adds ~850ms to every capped private-AX capture (8 element-rooted follow-up requests × ~106ms on the Bluesky seeded feed; steady-state capture 0.52s → 1.37s). That cost buys a fully labeled tree — which selector resolution and user-facing snapshots genuinely need — but is pure waste for captures that only compare surface evidence:

- settle observation loop (2+ captures per settled action)
- post-gesture stabilization probes (#1542)
- tap-outcome corroboration baselines/probes (#1605)

Measured on the seeded bench feed: `press 'role=button label="Like (0 likes)"' --settle` = 11.7s wall, most of it internal captures each paying the extension.

Proposed shape: a capture-purpose flag on the snapshot runner command (e.g. `observation: true`) set by the daemon's internal capture paths, parsed into `SnapshotOptions`, and gating `deepExtensionCalls` to 0 in `privateAXSnapshotCapture`. The flag must NOT leak into user-facing captures, and selector-resolution captures must keep the extension (they need labels to match).

Care point: settle's change detection would then compare shallower trees than the user-facing snapshots around them — verify the discriminating-surface comparison (interaction-outcome-policy) stays subset-tolerant across that asymmetry before shipping.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Traccia i percorsi interni di acquisizione del daemon fino a SnapshotOptions, quindi esamina privateAXSnapshotCapture e la decisione deepExtensionCalls. Confronta le acquisizioni di settle, stabilization e corroboration con le acquisizioni per la risoluzione dei selettori e con quelle rivolte all’utente. Il lavoro è completo quando i percorsi di sola osservazione evitano la deep extension, mentre la risoluzione dei selettori la mantiene, e il confronto della superficie discriminante rimane tollerante ai sottoinsiemi nonostante l’asimmetria.

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

Valutazione

Stack tecnologico
ios, typescript
Ambito
mobile-dev, performance, testing
Tipo di issue
Refactoring
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
52/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.