Skip to content

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

Description

@thymikee

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions