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:
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.
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:
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 intoSnapshotOptions, and gatingdeepExtensionCallsto 0 inprivateAXSnapshotCapture. 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.