Problem
The Android snapshot -i path currently computes hidden-content hints on the full snapshot tree and then copies hints onto the interactive tree via signature matching.
Current flow (interactive mode):
- Parse XML tree once
- Build full snapshot
- Annotate native scroll hints (dumpsys)
- Derive presentation hints on full tree
- Build interactive snapshot
- Copy hints full -> interactive using tight/loose signatures
This works, but it is hard to reason about and fragile because index/shape differ between full and interactive outputs.
Goal
Keep behavior unchanged for agents while reducing internal complexity and matching fragility.
Proposed direction
- Derive and attach hidden-content hints directly for interactive output.
- Use full-tree geometry only as context, not as the source object graph to copy from.
- Remove signature-based hint copy step if possible.
Non-goals
- No contract change for
snapshot / snapshot -i output.
- No change to visible-first semantics.
Acceptance criteria
snapshot -i keeps current hidden-content hint behavior on Android (Expensify/Settings style lists).
- Existing Android snapshot tests pass without reintroducing XML re-parse.
- Implementation no longer depends on tight/loose signature copy for full -> interactive hint transfer.
Problem
The Android
snapshot -ipath currently computes hidden-content hints on the full snapshot tree and then copies hints onto the interactive tree via signature matching.Current flow (interactive mode):
This works, but it is hard to reason about and fragile because index/shape differ between full and interactive outputs.
Goal
Keep behavior unchanged for agents while reducing internal complexity and matching fragility.
Proposed direction
Non-goals
snapshot/snapshot -ioutput.Acceptance criteria
snapshot -ikeeps current hidden-content hint behavior on Android (Expensify/Settings style lists).