diff --git a/devlog/_plan/260906_release_244_followups/090_dashboard.md b/devlog/_plan/260906_release_244_followups/090_dashboard.md index 435889d5e2..fcf4f54bb3 100644 --- a/devlog/_plan/260906_release_244_followups/090_dashboard.md +++ b/devlog/_plan/260906_release_244_followups/090_dashboard.md @@ -24,8 +24,8 @@ No authless setting, quota semantics or model management expansion. Preserve cur ## Hosted artifact verification -Main owns the eight-file attributed carry; no handler or visible-copy changes. Add one bounded preview artifact to the existing ci.yml gates job after its existing GUI build, only when changes.outputs.gui is true. Pin actions/upload-artifact v7.0.1 to043fb46d1a93c77aae656e7c1c64a875d1fc6a0a (verified official repository tag/release). Include only gui/dist, with generated build-commit.txt and build-gui-tree.txt; retention7days and missing-fileserror. No trigger, token permission, secret, checkout or release change. Workflow surface raises this unit to C4 and gets independent security review. +Main owns the eight-file attributed carry; handlers and visible copy remain unchanged. The existing `ci.yml` gates job uploads a preview after its GUI build when `changes.outputs.gui` is true. `actions/upload-artifact` v7.0.1 is pinned to `043fb46d1a93c77aae656e7c1c64a875d1fc6a0a`, verified against the official release and tag. The artifact contains only `gui/dist`, including generated `build-commit.txt` and `build-gui-tree.txt`, with `retention-days: 7` and `if-no-files-found: error`. Triggers, permissions, secrets, checkout behavior and release eligibility remain unchanged. This workflow surface makes the unit C4 and requires independent security review. -The artifact identifies the actual checkout and gui tree: PR CI may build a merge ref. Compare build-gui-tree against final reviewed head:gui before claiming final UI proof. Download that artifact, serve the built frontend with an isolated fixture API in scratch (no real provider, account, or service mutation), and use the existing browser runtime for1440/1024/768/390/320px and keyboard/focus/overflow observation. No local build/typecheck/test suite. Public screenshots use synthetic data only; the source PR jpg is a reference, not final-head evidence. +PR CI may build a merge ref, so compare the artifact's GUI tree with the reviewed head's `gui` tree before using its screenshots as final evidence. Serve the downloaded build with an isolated fixture API and inspect it at 1440, 1024, 768, 390 and 320 CSS pixels, including keyboard operation, focus and overflow. No local build, typecheck or repository test suite is run. Public screenshots contain synthetic data only. The original contributor screenshot is a reference, not final-head evidence. -Maintain manual dependent PR publication after the owner's explicit native-stack removal. AsyncCI/admin integration of3762/3763 is delegated; no local rebase. Await artifact only for visual C, not for unrelated bookkeeping. HostedCI handles lint/typecheck/tests/build/privacy. Escalate only an actual permission or unavailable artifact boundary; no invented local fallback. No user token/cost cap; each tooling run bounded30minutes, individual waits <=60seconds; main retains complete release goal. +Use manual dependent PRs after the owner's native-stack removal. CI and admin integration continue asynchronously without a local rebase. Hosted CI owns lint, typecheck, tests, build and privacy checks. The release goal remains open until publication proof is complete. There is no user-imposed token or cost cap; individual tooling runs are bounded at 30 minutes and waits at 60 seconds. diff --git a/devlog/_plan/260906_release_244_followups/091_dashboard_verification.md b/devlog/_plan/260906_release_244_followups/091_dashboard_verification.md new file mode 100644 index 0000000000..bd3f413b41 --- /dev/null +++ b/devlog/_plan/260906_release_244_followups/091_dashboard_verification.md @@ -0,0 +1,30 @@ +# Dashboard visual verification + +Source PR #3764 at 42689e02a60ca230e53dee1f872864af5d6b0872. Hosted CI 34029024036 passed the runtime matrix, gates and installation checks. Gates built artifact 9988003853 from checkout 274d2f8cb7ad8c381db29fa1799ad446c034da39. Its GUI tree 1eff4e4d3485133600e4fdb6e9ba78c36c0bf1e4 equals the reviewed source tree. The artifact SHA256 is c4f507ac7ab269170d6ec82e5351b8a526072524baa95403046e52293ae831de. + +The real built frontend was served on an isolated loopback fixture API. Displayed model selections, request totals, memory figures and the deliberately long preview version come from synthetic fixtures. No live provider or running OpenCodex service was used. No repository local test suite, typecheck or build was run. + +## Observed results + +| Scenario | Evidence | Result | +| --- | --- | --- | +| Desktop 1440 | [capture](screenshots/dashboard-1440.png) | Controls align, long model labels stay inside their buttons | +| Split-screen 1024 | [capture](screenshots/dashboard-1024.png) | Shared control rows stack when the content area narrows | +| Tablet 768 | [capture](screenshots/dashboard-768.png) | No horizontal page or control overflow | +| Mobile 390 | [capture](screenshots/dashboard-390.png) | Radio group, effort pair and version badge fit | +| Narrow 320 | [capture](screenshots/dashboard-320.png) | No horizontal page or control overflow | +| Narrow shadow row | [capture](screenshots/dashboard-320-lower.png) | Full Korean heading is one 21px line; source badge wraps below | +| Keyboard selection | [open](screenshots/dashboard-320-keyboard-open.png), [saved](screenshots/dashboard-320-interaction.png) | Visible keyboard ring; high to xhigh produced one fixture PUT and persisted the value | +| Empty/repeated choice | [capture](screenshots/dashboard-320-empty-repeat.png) | Selecting no limit twice keeps the null state and readable placeholder | +| Dark/reduced motion | [capture](screenshots/dashboard-1440-dark.png) | Readable control labels and boundaries; reduced-motion media active | +| Two-times pinch zoom | [capture](screenshots/dashboard-1440-zoom2.png) | Zoomed viewport captured; reflow is established by the separate CSS-width matrix | + +Each PNG has its signature, nonzero size and exact requested width by 900px height verified. Main inspected every referenced frame; two independent rubric-bound reviewers passed the final set. DOM measurements show page scrollWidth equals viewport width and every select label remains within its button. The shadow heading height equals its 21px line-height at all five widths. Fresh browser console capture contained no output; loaded assets and fixture calls used the loopback origin. + +The first artifact at eb35039fd reproduced a long delegation label reaching 1425px beyond a button ending 1218px. ec88720e6 added scoped span shrink/ellipsis rules. The first narrow capture then exposed a Korean heading orphan; 42689e02a wraps shadow metadata below the heading on narrow containers. These were observed corrections, not inference from green CI. + +Shared Select post-save focus behavior and unchanged sticky chrome were not represented as repaired. Malformed free-form input is not exposed by these select-only layout controls; HTTP parsing is unchanged. Source compatibility and the 15-line artifact workflow addition received independent reviews. The upload remains contents-read, uses an immutable action pin, uploads only built output and expires after seven days. + +## Teardown + +The fixture process was terminated, the isolated Chrome profile was stopped, and both listening ports were confirmed closed after the captures. Raw captures, exact invocations, DOM measurements and the validated three-scenario QA receipt remain in the local session evidence directory. This publication commit adds documentation and captures only; the GUI tree is unchanged from 42689e02a. diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1024.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1024.png new file mode 100644 index 0000000000..4bbd3ec147 Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1024.png differ diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440-dark.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440-dark.png new file mode 100644 index 0000000000..06655de300 Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440-dark.png differ diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440-lower.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440-lower.png new file mode 100644 index 0000000000..8fee2e6757 Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440-lower.png differ diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440-zoom2.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440-zoom2.png new file mode 100644 index 0000000000..8464793fa0 Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440-zoom2.png differ diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440.png new file mode 100644 index 0000000000..097a22f043 Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-1440.png differ diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-empty-repeat.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-empty-repeat.png new file mode 100644 index 0000000000..b3fe763d4c Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-empty-repeat.png differ diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-interaction.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-interaction.png new file mode 100644 index 0000000000..f9ecfe445c Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-interaction.png differ diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-keyboard-open.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-keyboard-open.png new file mode 100644 index 0000000000..60e2c8fbf6 Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-keyboard-open.png differ diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-lower.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-lower.png new file mode 100644 index 0000000000..b26cf9acbb Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320-lower.png differ diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320.png new file mode 100644 index 0000000000..b0faf7667d Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-320.png differ diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-390.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-390.png new file mode 100644 index 0000000000..7e513265b1 Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-390.png differ diff --git a/devlog/_plan/260906_release_244_followups/screenshots/dashboard-768.png b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-768.png new file mode 100644 index 0000000000..7b96c13217 Binary files /dev/null and b/devlog/_plan/260906_release_244_followups/screenshots/dashboard-768.png differ diff --git a/docs-site/src/content/docs/guides/web-dashboard.md b/docs-site/src/content/docs/guides/web-dashboard.md index 849e5f4608..5b4b434d1a 100644 --- a/docs-site/src/content/docs/guides/web-dashboard.md +++ b/docs-site/src/content/docs/guides/web-dashboard.md @@ -73,7 +73,7 @@ host and port over a LAN IP or an alias. Overview uses matching status cards and full-width settings rows. On wide screens, labels share one column and model/effort controls share another. On narrower screens, controls move below their labels in the same reading order. Long version labels are shortened visually; hover the version -badge or the Version card to read the full value. +badge or the version value to read the full value. ## What you can do