diff --git a/docs/IRIS_TODO.md b/docs/IRIS_TODO.md index d2ad9c4..e4dc484 100644 --- a/docs/IRIS_TODO.md +++ b/docs/IRIS_TODO.md @@ -1091,24 +1091,27 @@ showed, beyond her words: `Released(None)`, not a tap (Compose does not deliver a click either). Layer-1 test on a flick followed by a down + small drag 150 ms later: offset tracks the finger sample-for-sample from the down. -- [ ] **"The copy report button seemed impossible to hit until I hit the - diagnostics one."** Not hit-testing: the button logged `iris bench - report: nothing to copy -- run the benchmark first` six times and did - nothing on screen. A control that silently declines is the UI_RULES - failure "a failure is reported where it happened": Copy report must - always copy something -- the diagnostics and the log with a first line - saying no benchmark has run -- and never depend on another button - having been pressed first. -- [ ] **"The logs seem way too big to send in this message box, causes a - lot of lag."** Two causes. (1) The ring was 1339 lines of `naga::front` - / `wgpu_core` / `jni` DEBUG output with 4050 dropped: the ring logger - accepts every crate at Debug, and the trace gate (992c472) only covers - iris's own lines. The ring must take Debug only from `iris`/`client_core` - targets when trace is on, and Info and above from everything else -- - one filter at the ring, not per callsite. (2) Copy report appends the - whole ring. It should append the last ~150 lines and a first line - saying "N earlier lines omitted; full log in Dev Updater's Runtime - tab" -- the full ring is what the devlog provider is for. +- [x] **"The copy report button seemed impossible to hit until I hit the + diagnostics one." (done 2026-09-07, b8ea723).** Not hit-testing: the + button logged `iris bench report: nothing to copy -- run the benchmark + first` six times and did nothing on screen. A control that silently + declines is the UI_RULES failure "a failure is reported where it + happened": `copy_report` now always copies something -- the + diagnostics pane's own text (with a first line saying no benchmark has + run) when nothing has run yet, or the last report otherwise -- and + never depends on another button having been pressed first. +- [x] **"The logs seem way too big to send in this message box, causes a + lot of lag." (done 2026-09-07, 7485d78 + b8ea723).** Two causes. (1) + The ring was 1339 lines of `naga::front` / `wgpu_core` / `jni` DEBUG + output with 4050 dropped: the ring logger accepted every crate at + Debug, and the trace gate (992c472) only covered iris's own lines. + `client_core::log_ring::ring_accepts` is the one filter now, applied at + the ring rather than per callsite: Debug/Trace only from `iris`/ + `client_core` targets when tracing is on, Info and above from + everything else. (2) Copy report appended the whole ring; it now + appends `LogRing::tail_text(COPY_REPORT_TAIL_LINES)` (150, named at the + constant) with a first line saying how many older lines were left out + -- the full ring is still what the devlog provider hands Dev Updater. - [x] Keyboard: the report shows `ime_bottom=891 ime_visible=true` then back to 0 on the phone, so the insets now arrive with a height; the push-up was not reported broken this time. diff --git a/docs/RUST.md b/docs/RUST.md index de6af99..c9d28ca 100644 --- a/docs/RUST.md +++ b/docs/RUST.md @@ -719,13 +719,33 @@ closes it. - [ ] Catch-a-fling: down during a fling stops it at the down and drags with no slop (docs/IRIS_TODO.md, night). Opus, next slot; uses the layer-1 harness. -- [ ] Report hygiene: ring takes Debug only from iris targets, Copy - report always copies and trims the log (docs/IRIS_TODO.md, night). - Sonnet, with the header item below (same file, `bench_client.rs`). -- [ ] Bench app header: four controls no longer fit at 1080px and the - devlog agent shrank the label type 18 -> 13 to make room (UI_RULES: - never shrink text to fit). Put the controls in two rows or make the - header wrap; restore the size. Sonnet. +- [x] **Report hygiene (done 2026-09-07).** Ring takes Debug only from + `iris`/`client_core` targets, Copy report always copies and trims the + log. `client_core::log_ring::ring_accepts` is the one filter (Info+ + from anywhere; Debug/Trace only from this app's own targets, and only + while `iris::diagnostics::trace_enabled()` says tracing is on) -- + `RingLogger` takes that as a plain `fn() -> bool` rather than depending + on `iris` directly, since `client-core` sits below it; `app_log.rs` + wires `iris::diagnostics::trace_enabled` through at install. Fixed the + 1339-held/4050-dropped flood from `naga::front`/`wgpu_core`/`jni` + logging at Debug unconditionally. `bench_client.rs`'s `copy_report` no + longer declines when nothing has run: with no benchmark yet it copies + the diagnostics pane's own text instead, with a first line saying so, + and always appends `LogRing::tail_text(COPY_REPORT_TAIL_LINES = 150)` + (a first line naming how many older lines were left out) rather than + the whole ring. `client-core`'s tests cover the filter and the trim; + the copy path was checked on the emulator (immediate `Copy report` tap + with no prior button press now logs "copied to clipboard"). +- [x] **Bench app header (done 2026-09-07).** Four controls no longer fit + at 1080px at `HEADER_TEXT = 18`, and a previous agent had shrunk it to + 13 to make room -- UI_RULES: never shrink text to fit. Restored to 18 + and split `bench_controls` into two rows (`Dir::DOWN` of two + `Dir::RIGHT` pairs: run+copy, then diagnostics+trace), doubling the + header's own height (`HEADER_ROW_HEIGHT_DP`) rather than the outer + layout's reserved space, since `top_bar` sizes to its own content. + Checked on the emulator: `ui-trace show ... --field box` confirms two + clean rows with no overlap, and a screenshot shows the restored size + reading clearly. - [x] **Bench app crash-loops on this checkout's emulator (done 2026-09-07).** Not the surface lifecycle at all, and not "once backgrounded" -- a build with the **default features** (no