diff --git a/.changelog/NEXT.md b/.changelog/NEXT.md index d76cb8df7..3fc98a3df 100644 --- a/.changelog/NEXT.md +++ b/.changelog/NEXT.md @@ -23,6 +23,7 @@ ## Fixed +- **The task form's Screenshot and Attach buttons work again — a stuck notification was eating the clicks.** A notice that never goes away (the "Install out of sync" warning, "Update available", "New build available") parks in the bottom-right corner, and on a desktop window it landed on top of the Chief of Staff task form and silently absorbed every click meant for the buttons underneath. They did nothing at all — no file picker, no error, nothing in the browser console — which is why it read as a broken button rather than something covering one, and why the same page still worked on a phone, where the layout puts those buttons elsewhere. On a 1280×720 window the notice covered a 520×86px block starting at the exact pixel the Attach button begins. Notices that never dismiss themselves now fold into a small badge in the corner after 8 seconds (1600px², clear of the page); clicking the badge brings the message back, and it stays open while you hover it or use its buttons. Toasts with a set lifetime — including the manuscript Undo prompt — are untouched. - **CoS agent PRs no longer open with TUI startup noise as their description.** A PR that PortOS opened for a Codex/Antigravity/OpenCode agent led with the session's own lifecycle log — `📟 TUI session started: … (codex …)`, `💡 Open the Shell tab…`, `📟 Prompt pasted…` — before getting to what the agent actually did. The PR description now starts at the agent's completion summary and drops PortOS's status lines, along with the trailing `## Branch` / `## PR` section that only repeats what the PR page already shows. - **Review Hub success-rate alerts now require recent runs.** Low lifetime rates for task types that have been idle no longer appear as current health anomalies; alerts are shown only after enough runs occur in the rolling 30-day performance window. - **Malware scan reports now open inside PortOS.** Scan links from Brain, the Review Hub, and completed CoS agents render the markdown in a mobile-friendly PortOS page instead of navigating a Home Screen install to the raw `.md` API response. Brain Links also has a Scan Reports filter, so clean and caution results are just as discoverable as dangerous findings. diff --git a/client/src/a11yConventions.test.js b/client/src/a11yConventions.test.js index e261cbc7b..1e91739a9 100644 --- a/client/src/a11yConventions.test.js +++ b/client/src/a11yConventions.test.js @@ -1,8 +1,8 @@ /** * Repo-wide accessibility conventions. * - * These encode the two regressions that keep reappearing across a11y audit - * passes, so a new component fails the suite instead of shipping the gap: + * These encode the regressions that keep reappearing across a11y audit passes, + * so a new component fails the suite instead of shipping the gap: * * 1. A hand-rolled `fixed inset-0 … bg-black/N` overlay instead of the shared * `ui/Modal`, which owns the focus trap, the Esc stack, `role="dialog"`, @@ -20,6 +20,10 @@ * picker at all in WebKit-as-installed-PWA — the shape PortOS is opened in * from a second machine over the tailnet. `components/ui/FilePickerButton.jsx` * is the shared widget (sr-only input + native `