feat(download): real desktop cockpit and tray screenshots with provenance manifest#215
Merged
Conversation
…e manifest Add a 'What you're installing' section to /download built from two real, unretouched captures: the desktop cockpit's connect screen (unmodified v0.6.1 vite build, no engine attached) and the published openadapt-tray 0.1.1 menu open live in the macOS menu bar in its standalone state. Captions state the Experimental/unsigned reality, the tray's separate packaging, and that no released desktop build provides the companion service the tray expects. Capture provenance (repo, commit, method, sha256) is recorded in public/desktop-preview/MANIFEST.json and enforced by tests/desktopPreview.test.js (hash match + honesty labels + static, no-layout-shift section). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM
✅ Deploy Preview for cosmic-klepon-3c693c ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
abrichr
added a commit
that referenced
this pull request
Jul 19, 2026
Add authentic Windows 11 captures alongside the macOS cockpit/tray surfaces merged in #215, from a real NSIS installer run (OpenAdapt-Desktop-Experimental-v0.6.1-windows-x86_64-unsigned-nsis-setup.exe). - DesktopPreview: a "Windows install flow" strip of three NSIS wizard stills (welcome -> choose location -> finish) in neutral Windows chrome, with honest captions. Explicit 1044x784 dims, static, no motion. - download.js First launch: pair the existing unsigned-build guidance with the real "Open File - Security Warning" / Unknown Publisher capture so users see exactly what to expect. Reworded to name the actual dialog. - Honesty: no app-window shots exist because the shipped build panics at launch (openadapt-desktop issue #26); the finish caption says so and no app window is implied. Windows tray omitted to avoid redundancy with the macOS tray already shown in #215. - MANIFEST.json: source, capture method, sha256, and dims for all four new assets. desktopPreview.test.js extended to hash-verify every /desktop-preview image across DesktopPreview.js and download.js and to assert the required honesty phrases. Claude-Session: https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
abrichr
added a commit
that referenced
this pull request
Jul 20, 2026
Add a Cypress regression assertion that visits /download at 375px and 390px and asserts documentElement.scrollWidth stays within the viewport. Investigation finding: the /download page does NOT currently scroll horizontally at any width from 320-414px in the fully-loaded ready state (chart + stats + install-flow + desktop preview all render and fit). Confirmed by measuring documentElement.scrollWidth and by a full-page mobile screenshot. Recent download-page work (#215/#216/#219/#223/#229) appears to have already resolved any earlier overflow. Because globals.css sets `overflow-x: hidden` on html/body, a naive scrollWidth check would be clamped by Chrome and trivially pass, masking future regressions — and that mask does not reliably stop horizontal panning on iOS Safari, which is the surface this guards. The assertion therefore neutralizes the mask first so it measures the true content width. Verified meaningful: injecting a 900px element with the mask neutralized makes the assertion fail as expected. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a "What you're installing" section to
/downloadwith two real, unretouched captures of the Experimental desktop surfaces, each framed in the site's window-chrome convention with an honesty-first caption:vite buildoutput ofopenadapt-desktopv0.6.1 (commit4912989), served locally and captured with Playwright at 2x in the app's real default window size (1120x760). No Tauri runtime or engine sidecar was attached, so the cockpit rendered its real connect (Sign in) surface through its own graceful-degradation code path. No DOM was injected or modified.openadapt-tray0.1.1 PyPI package running in the macOS menu bar with its real menu open, captured with macOSscreencaptureand cropped. State shown is the true standalone state (no desktop companion, sync offline). The only deviation from stock: the pynput global-hotkey listener was not started (it hard-crashes without Input Monitoring permission in the capture session), and a neutral dark window was placed behind the menu before capture so the shot doesn't leak unrelated screen content. The menu bar, icon, and menu are unmodified.Mobile rendering
Honesty boundaries enforced
desktop-v0.6.1prerelease labels; v0.5.1 named in the original ask is now marked "Superseded — do not use" upstream, so captions pin to the current interface code instead).pip install openadapt-traypackage, explicitly not included in the installers on this page, and explicitly "no released desktop build provides the companion service it connects to yet" — the tray README's own boundary. It is never described as controlling the desktop app.public/desktop-preview/MANIFEST.jsonrecords repo, commit, capture method, dimensions, and sha256 for both assets (same convention asproduct-preview/MANIFEST.json), and the page links to it.tests/desktopPreview.test.jsenforces the contract: every rendered image must have a manifest entry whose sha256 matches the bytes on disk; the honesty phrases must be present; the section must stay static (nouseState/useEffect/setInterval, explicitwidth/heighton both images → no motion-token or reduced-motion surface, no layout shift).Landing-page decision: kept off the landing page
Judgment call per the brief: what the product honestly renders without a signed-in engine is a sign-in card and a modest tray menu. That is exactly right for
/download(it sets accurate first-launch expectations next to the install buttons) but is empty-state-heavy next to the landing page's DashboardShowcase and reference-footage sections — a sign-in screen would weaken the landing narrative rather than strengthen it. The landing page was also deliberately left untouched to avoid colliding withfix/authentic-cloud-showcase-media, which is reworking the adjacent showcase onpages/index.js. If you want a strip anyway, the assets and component are reusable in one line.What was tried and skipped (real or nothing)
PluginInitialization("updater", "Error deserializing 'plugins.updater' ... invalid type: null, expected struct Config")(src-tauri/src/main.rs:77). Worth an upstreamopenadapt-desktopissue; the Vite capture of the same interface code stands in.Gates
npm test: 71/71 (publicTruth untouched, new desktopPreview suite included)next build: clean🤖 Generated with Claude Code
https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM