Measure refresh latency independently and retain intended result selection

This commit is contained in:
karl committed 2026-10-13 06:50:38 +02:00
1 parent 373ed1ed49
commit 8b993b23d7
7 files changed
+188 -11

No files matched your search

+4 -2
View File
@@ -24,8 +24,10 @@ Scans own separate SQLite connections. They do not hold the foreground search
mutex during traversal or extraction. A changed scan prepares its reader and
briefly swaps it into the desktop. UI events refresh counts and the active query,
reject results from before the change, and request normal semantic indexing.
Refresh timing must start at the change event rather than include idle time since
the original input; native Linux interaction exposed a regression in this clock.
Refresh timing starts at the change event rather than include idle time since
the original input. A bounded numeric snapshot retains the original input
timings separately. Intended selection survives temporary result absence;
explicit navigation changes that intent, and a new query or filter clears it.
## Targeted reconciliation
+8
View File
@@ -83,6 +83,14 @@ model loading must not be silently included in a warm-query claim.
## Reproducible performance validation
Automatic filesystem refreshes start a new frontend measurement at the refresh
event. `trigger: "filesystem_refresh"` distinguishes them from user searches;
`SHOWN` and `latest_displayed_ms` exclude time spent idle before that event.
`original_input` retains a fixed-size snapshot of the original debounce and
display timings. Refreshes do not replay previous attempts or append ancestor
traces. A refresh before the first response leaves that original response timing
null rather than inventing a first-input measurement.
Record build profile, CPU/device and thread budget, VM/host resources, corpus and
active generation, filters, cold/warm state, concurrent indexing and setup costs.
Use multiple queries and p50/p95 distributions; retain raw reports. Compare basic