Films and evidence retain their recorded source revisions. Dated checks describe that snapshot; see the overview for the latest merge and audit status.
Extension dialogs: named viewport limits
Merged #18948 compares 044ec59e12/8e365d1fa30953c3 with checkout/app source 510f00ebc3/086cdbb325a81428; actual library build source remains 50b5f7e6a8. All 38 paired samples match. Six real frames cover desktop, phone and short-phone limits/scrolling/close/cancel; five-theme stills use one representative dialog. Existing 90vw/85vh caps remain unchanged.
API-discovered disposable skill/plugin content exercises the actual long-content owners; no extension was installed or executed. Benign QA paths and fixed test metadata remain visible in authentic UI pixels. The inherited embedded body-portal gap is unchanged. The source/build identities and limits, full comparison and 76 PNGs and four complete native clips retain the evidence; no layout improvement or live embedding claim.
Model profiles: existing theme aliases
Merged #18933 compares c561259930/dfd39a7c2f6aec0a with 2c4e9e6bd9/b38c7801a740f06a. All 23 paired computed states match; representative desktop stills cover five themes and actual 390 px phone views. Model Router empty/create/save/list/menu/hover/Edit/Cancel and keyless Add Models selection are observed. The QA-only router was never executed; no models were created or called.
The source revisions and limits, full comparison and 59 PNGs and four complete native recordings accompany the 48.64-second film. Known Solarized keyless-note contrast #18546 remains 2.58:1. Those aliases have compiled-contract coverage for Cloud/org, old-backend and bound-provider branches; embedded-host behavior is not live proof. No readability, embedded-portal, phone-layout or pixel-identity improvement is claimed.
Readable model saves
Merged #18529 addresses issue #18516. The actual component evidence compares 8238b7af82 with b685ae43ae. Forty captures cover five themes, desktop and phone, a real partial save at the fifty-profile limit, and a generated matching provider connection. Changed normal text reaches at least 4.85:1. The save produces one actual 201 and two 409 responses; no real credential or model call is used.

The recording source preserves exact heads, measurements, frame selection, hashes and coverage limits. A silent eight-second GIF is also available. 35 existing focused tests and local lint/build checks pass; readiness and remote CI belong to the dated snapshot.
Device authorization: readable safety instructions and real errors
Merged #18528 addresses bug #18527 across device-flow and verification feedback. The film compares 8238b7af82 with bd30e4c7df. It uses the visibly invalid QA-NOT-REAL placeholder, actual local failure requests, and anonymous waiting/cancel checks. No issued code was authorized, no persistent key or backend was saved, and no model turn occurred during these auth captures.
The recording source preserves exact heads, measurements, source selection, hashes, and functional retry/cancel checks. Retry issued a real additional request, and invalid-code retry returned to review. The success icon has separate existing automated behavior and static palette proof; successful Cloud authorization was not exercised. Unchanged muted paragraphs, result titles and other buttons are outside the changed-text claim. A silent 16-second GIF is available.
Destructive buttons: readable Uninstall and theme-aware Delete
Merged #18513 addresses bug #18512 by replacing four raw-color classes in the shared BrandButton destructive variants. The film compares 8238b7af82 with f52f2f7b29. It shows only the generated test profile's delete confirmation and the disabled built-in demo app's footer, on an isolated Local Agent Server 1.55.1. No user data, account content, credential value, or model turn is included.
The recording source preserves exact heads, crops, measurements, functional fixture checks, media hashes, and limits. Deleting the disposable inactive profile and uninstalling the disposable disabled demo app both passed through the real UI. A silent 16-second GIF is available. Other variants, Cloud/ACP execution, and DigitalOcean setup are outside this evidence.
Model profiles: readable names and details
#18510 is merged and addresses bug #18509. The film compares main 3419bdb4f7 with proposed head e71b4499fa using real production Canvas and Agent Server 1.55.1. It shows only the model-message component with generated qa-alpha/qa-beta fixtures and a synthetic loopback endpoint. The key field shows presence only; no credential value or user conversation content is visible. The idle backend recorded no model turn or usage.
The recording source preserves exact heads, source crops, 40 settled captures, idle/no-model-run evidence, media hashes, and coverage limits. The Light+ hover comparison shows the fixed dark gray becoming a theme-aware hover. An eight-second inline GIF is also available.
The empty-profile hint was not manually reached because the normal setup gate disables the composer without a configured profile. The shared message title and outer chevron are unchanged. Phone checks use a phone-sized viewport; hover is pointer inspection, and no Cloud/ACP execution or model response is claimed.
Consent: readable backend scope
Merged #18508 addresses bug #18507 with one color-class replacement on the backend-scope line. The film compares 0c7c2258a8 with dd4987f1d5 using real production Canvas and Agent Server 1.55.1. It shows only the consent form and a generated Local loopback backend; no model call or credential was needed. The recording source preserves the capture crops, 20 desktop/phone measurements, checks, and media hashes.
Unchecking consent, confirming, and reloading still saves the backend preference as false and keeps the dialog closed. All inspected forms fit their viewport without horizontal page overflow. The change is limited to the backend-scope line; other description colors and Cloud/ACP workflows are outside this batch. An eight-second inline GIF is also available.
Git Sync feedback colors
Recorded with control-openhands from production Canvas builds at baseline 3f5654ac and the recorded PR #18346 head bba12031, using local Agent Server 1.54.0, Light+, and a 1440 × 1000 viewport. Both runs passed the Git Sync check-failure and sync-failure paths with zero page errors; no credentials or LLM were used. The proposal is tracked in issue #18004. Recording provenance.
Proposals in this area
Name extension-dialog viewport limits
Merged · 26 October#18948, issue #18945, gives six frames one compiled
90vw/85vhrecipe, replacing twelve classes/findings. Final head510f00ebc3adds a test with product bytes unchanged from50b5f7e6a8; branch lint is 467 warnings/0 errors. Seven existing suites pass 101 tests; two additional build/viewport suites pass 16. Actual library output proves the scoped contract, not embedded body-portal behavior. Six-frame film and explicit scope limits are published and verified.Use existing model-profile theme aliases
Merged · 25 October#18933, issue #18931, replaces 17 exact aliases across six files at
2c4e9e6bd9. All 90 existing tests, full lint and app/library builds pass; five full-class CSS pairs match exactly. Independent branch lint is 491 warnings, 0 errors. Known Solarized keyless-note contrast #18546 remains 2.58:1; the embedded AddModels body-portal scope gap is inherited. No readability or embedding fix is claimed. Four existing warnings remain outside this color-only batch. The matching film and explicit limits are published and verified.Make MCP feedback readable across themes
Merged · 11 October#18270 moved error and success text to semantic feedback tokens, including darker text colors for the light palettes. Nine raw-color findings were removed. See the film at 0:04 and 0:14.
Use the shared switch for secret selection
Merged · 12 October#18278 replaces the fixed bright-green “Also save as secret” appearance with the shared toggle and theme tokens. The secret name and help control wrap together on phones, and keyboard focus stays visible. Six raw-color findings are removed by this proposal.
The selected name's contrast changes from 1.70:1 to 12.55:1 in Light+, and from 1.56:1 to 10.40:1 in Solarized Light. The PR is now merged. See 0:24 and 0:34 in the film.
Use semantic colors for Git Sync feedback
Merged · 13 October#18346 replaces hard-coded status and error colors with semantic success, danger, and feedback tokens across the Git Sync activity row, repository-check alert, and persistent sync-error banner. The historical film above shows the same real failure path before and after at its recorded source heads. Text-medium stayed separate; this color batch continues issue #18004.
Make consent backend scope readable
Merged · 16 October#18508 addresses bug #18507 by replacing the scope line's fixed
text-neutral-400withtext-contrast. Real desktop/phone checks cover all five themes, and unchecked consent still saves and survives reload. The film and comparison above preserve the exact proposed headdd4987f1d5. CI passed, all-hands-bot approved this head, and the PR merged on 16 October at 08:47 Stockholm time.Theme model profile feedback
Merged · 16 October#18510 addresses bug #18509 by replacing ten raw-color findings in profile names, diagnostics, local icons, hover, borders, and the switch pill with semantic roles. API, state, and message text stay unchanged. Real desktop/phone component captures cover five themes and both normal and pointer-hover states; the evidence above records the actual scope and limits. Full CI passes at
e71b4499fa: 9,097 tests passed across 837 files, app/library builds and package dry-run passed, and Windows app build passed. The bot approved the recorded head, and the PR merged on 16 October at 09:05 Stockholm time.Use readable destructive button roles
Merged · 16 October#18513 addresses bug #18512 in the shared destructive
BrandButtonvariants. Ghost labels use the feedback error text role; filled controls use paired theme colors. The real Before/After film and 80-capture comparison above keep the already-readable filled baseline distinct from the ghost contrast defect. Full CI passed atf52f2f7b29, and an initial all-hands-bot review was requested.Keep device authorization feedback readable
Merged · 16 October#18528 addresses bug #18527 in local verification warnings, status icons, failed fetches, and waiting-link text. Its real warning/error film and 140-capture source above distinguish invalid local requests and anonymous cancellation from a successful account grant, which remains outside the live evidence.
Readable model saves
Merged · 16 October#18529 links issue #18516. The Before/After film and five-theme source above preserve actual component evidence and its limits. The film records
b685ae43ae.