diff --git a/README.md b/README.md index 6e3f189..4793cc3 100644 --- a/README.md +++ b/README.md @@ -138,10 +138,11 @@ ungraded, points, **points-per-minute**, points-per-run, by-severity — with ** (date range, repo, provider, model, lens, grade/severity), free-text search, and a click-to-scope findings detail table. -Comparisons can be scoped to **specific PRs**: a multi-select lists every `repo#pr` with how many -models ran it (`steve/x#12 · 3/5 models`) — pick the PRs you want and the entire table (runs, -minutes, findings, points) counts only those, so a model with 2 runs can be compared against one -with 60 on exactly the work you choose. +Comparisons can be scoped to **specific PRs**: the **PRs** button opens a searchable checkbox popup +listing every `repo#pr` with how many models ran it (`steve/x#12 · 3/5 models`) — tick the PRs you +want and the entire table (runs, minutes, findings, points) counts only those, so a model with 2 +runs can be compared against one with 60 on exactly the work you choose. **all**/**none** apply to +the current search, so you can filter to a repo and select all its PRs in one click. True to the store's "no points" rule, **scoring lives in the browser**: the page has an editable points curve (default `trivial=1, small=3, medium=5, high=8, critical=20`) and computes @@ -164,11 +165,11 @@ Its mirror, **solo-error penalty ×** (default `1.5`), multiplies the FP penalty was made by **only that model** — a unique wrong claim is noisier than a shared mistake. So a Blocking-claimed solo FP costs `high(8) × -0.5 × 1.5 = -6` vs `-4` for a shared one. Set to `1` to disable. -**Hiding models.** Each scoreboard row has a small **×** to hide that model — handy for retired ones -(e.g. `m1`) you no longer want cluttering the view. Hidden models drop out of the table, the totals, -and the findings drill-down (but **not** from solo-ness, which stays computed against all models — hiding -is a view filter, not a rescoring). The hidden set persists in `localStorage` across reloads; a -**hidden (N): …** bar lists them as click-to-restore chips, with a **show all** to clear. +**Hiding models.** The **models shown** button opens the same style of popup with a checkbox per +model — untick to hide one (handy for retired ones, e.g. `m1`), re-tick to restore. Hidden models +drop out of the table, the totals, and the findings drill-down (but **not** from solo-ness, which +stays computed against all models — hiding is a view filter, not a rescoring). The hidden set +persists in `localStorage` across reloads; unlike the other filters, **reset** doesn't touch it. Auth: the `/ui` shell is public (it holds no data); paste the store token into its **connect** box, or open `/ui?token=` once (remembered in `localStorage`). Prefer your own dashboard? Point diff --git a/ui.html b/ui.html index 1477036..779e9e1 100644 --- a/ui.html +++ b/ui.html @@ -21,8 +21,19 @@ input, select, button { background:#0c0e12; color:var(--fg); border:1px solid var(--line); border-radius:6px; padding:6px 8px; font:inherit; } input[type=number] { width:64px; } input[type=date] { width:140px; } - select[multiple] { min-width:200px; } input.search { width:220px; } + #modalback { position:fixed; inset:0; background:rgba(0,0,0,.55); display:none; z-index:40; } + #modal { position:fixed; top:12vh; left:50%; transform:translateX(-50%); width:min(560px,92vw); max-height:72vh; + background:var(--panel); border:1px solid var(--line); border-radius:10px; display:none; flex-direction:column; + z-index:41; box-shadow:0 12px 40px rgba(0,0,0,.5); } + #modal .mhead { display:flex; gap:8px; align-items:center; padding:10px 12px; border-bottom:1px solid var(--line); } + #modal .mhead b { margin-right:auto; white-space:nowrap; } + #modal .mhead input { flex:1; min-width:80px; width:auto; } + #mlist { overflow:auto; padding:6px 0; } + #mlist label.item { display:flex; gap:10px; align-items:center; padding:6px 14px; cursor:pointer; font-size:13px; } + #mlist label.item:hover { background:#1d212b; } + #mlist .note { margin-left:auto; color:var(--mut); font-size:12px; } + #modal .mfoot { padding:8px 12px; border-top:1px solid var(--line); color:var(--mut); font-size:12px; } button { cursor:pointer; } button.primary { background:var(--acc); color:#0c0e12; border-color:var(--acc); font-weight:600; } button.link { background:none; border:none; color:var(--acc); padding:0; text-decoration:underline; } @@ -65,7 +76,8 @@
-
+
+
@@ -90,7 +102,6 @@
- @@ -112,6 +123,21 @@ + +
+ +