Document search and log interaction contracts

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
This commit is contained in:
Loren Eteval
2026-09-18 23:15:22 +08:00
parent 5d41657bc9
commit 493efc00fd
2 changed files with 9 additions and 0 deletions
+5
View File
@@ -38,6 +38,11 @@ This scope owns persistent page composition and top-level presentation, not shar
the result window and stops on close; a malformed item cannot retarget or invalidate completed tabs. Resizing
scales the cached module image at integer factors with its quiet zone, rather than regenerating or smoothing
secret-bearing QR content. Reuse plugin export semantics and never log the encoded URI.
- Search debounce belongs to the persistent page: clear/submit cancels pending work, hide stops it, and show applies
only the current query. Find shortcuts are page-scoped; document editing shortcuts stay with their document widget.
- Pausing a log view freezes its displayed document, selection, and filters without stopping collection or extending
manager retention. Resume resynchronizes from retained entries; export while paused uses the displayed snapshot.
Verify clear/eviction/navigation during pause, not just ordinary append.
- Log views keep per-filter cursors and catch up on visibility; metrics pages derive series from shared raw history.
Switching pages, ranges, or filters must not reset collection or create a second history. Metric buckets use the
shared monotonic timeline: moving the visible range must not regroup unchanged historical samples. Preserve missing
+4
View File
@@ -236,3 +236,7 @@ The reusable `source-tests.yml` workflow runs full unittest discovery on Windows
Linux, and macOS with Python 3.13 and PySide6 6.8.3. The publication workflow requires
that job before PyPI publication. Opt-in tests and packaged/manual smoke checks remain
separate; local Windows results do not establish the other CI targets.
The Home/Log workflow regressions exercise debounced typing, explicit submit/clear, navigation catch-up, focus-scoped
Find/edit shortcuts, and paused log selection/export across eviction and clear. These are real Qt tests in
`test_qt_interactions.py` and `test_ui_behavior.py`; no production log source or profile network is started.