Detect a release
When the app you document ships a new version, find the screenshots that show the old UI and approve them for a reshoot.
Watch everything Pantheon ships
One command checks every product in a watchlist, plus the release notes, and says which screenshots each change can affect. watchlists/pantheon.json covers 35 products: the P1 and Content Publisher SDKs, Terminus, WordPress and Drupal core, the upstreams, and Pantheon’s WordPress plugins and Drupal modules. It also reads the release notes feed for changes with no version, such as the dashboard.
-
Give each inventory record the product whose releases can change it, using a watchlist ID:
{ "screenshot_id": "dashboard.home.overview", "product": "pantheon-dashboard", "...": "..." } -
Run the watch:
node scripts/watch.mjs --watchlist pantheon --state watch-state.json --inventory <inventory> --only-newProducts P1 editor (p1-next-sdk) NEW RELEASE 0.20.0 → 0.20.1 → 2 in progress for an older version: p1.live.editor-shell, p1.live.workstream-selector release-check --product p1-editor --version 0.20.1 P1 starter kit NEW RELEASE 0.20.0 → 0.20.1 33 more with no change Pantheon release notes: 5 new since 2026-10-05 2026-10-06 New dashboard home experience, bookmarks feature now in beta [User interface] https://docs.pantheon.io/release-notes/2026/10/dashboard-home-experience-beta 2026-10-06 WordPress 7.1.3 Security Release now available [Action required, Security, WordPress] https://docs.pantheon.io/release-notes/2026/10/wordpress-7-1-3 2026-10-06 Pantheon MCP Server (Beta) [New feature] https://docs.pantheon.io/release-notes/2026/10/pantheon-mcp-beta 2026-10-06 Public API v1 (Beta) [New feature] https://docs.pantheon.io/release-notes/2026/10/pantheon-api-v1-beta 2026-10-05 Introducing Workspace Performance Insights [User interface] https://docs.pantheon.io/release-notes/2026/10/workspace-performance-insightsThis is a real run on 2026-10-09, against a saved state from before P1 0.20.1 shipped and a demo inventory whose two records were handed off for 0.20.0, so they show as in progress for the older version.
--only-newlists only the products with a new release and counts the rest; without it, every product gets a line.A release-notes entry tagged User interface or Account management points at
pantheon-dashboard, Content Publisher atcontent-publisher-dashboard, and Infrastructure atpantheon-platform. A change with no version is labeled by its date (2026.10.6), so it compares like a version. -
Approve the screenshots that need a reshoot with the
release-checkcommand it prints, adding--reopen. The watch itself changes nothing. -
Mark everything as seen, and commit
watch-state.jsonnext to the inventory so the next person sees only newer changes:node scripts/watch.mjs --watchlist pantheon --state watch-state.json --update
The first run has no state, so it lists every product’s current version and the last 14 days of release notes (--since-days changes that). It exits 3 when something is new, 0 when nothing is, and 1 when a source fails. Another company or product works the same way: copy the watchlist and change its products and feed.
Every day, on GitHub
.github/workflows/release-watch.yml runs the same watch at 13:17 UTC every day. When something is new, it comments on the open issue labeled release-watch, or opens one titled “Pantheon releases to check”, and commits watch/pantheon-state.json so the next day starts from there. When nothing is new, it does nothing. A source that fails makes the run fail, and GitHub emails the repository’s owner.
The issue lists releases and release notes; it doesn’t know which screenshots they affect, because the inventory isn’t in this repository. Run the release-check command it shows, or the watch with --inventory, where your inventory lives. To run it now, use Actions > Release watch > Run workflow.
Check one product
-
List the screenshots and the release each was captured for:
node scripts/inventory.mjs list --inventory <inventory> -
Compare the version the capture app runs with the latest published one.
--configuses your preset’s release source: the P1 SDK on npm forp1-editor, WordPress core forwordpress-admin, Drupal core fordrupal-admin:node scripts/inventory.mjs release-check --registry --config p1-editor.config.json --inventory <inventory> node scripts/inventory.mjs release-check --app <capture app folder> --config p1-editor.config.json --inventory <inventory>@pantheon-systems/p1-next-sdk 0.16.0 (installed in the app), latest published 0.20.0 WARN: the app you would capture runs @pantheon-systems/p1-next-sdk 0.16.0, but 0.20.0 is the latest published.If the app still runs the old version, update it first: screenshots show the installed UI.
For any other product, name the source:
--source github:<owner>/<repo>,--source npm:<package>, or--source page:<url> --pattern '<regex>'for a version printed on a page. Release sources lists them all.node scripts/inventory.mjs release-check --registry --source wordpress --inventory <inventory>wordpress 7.1.3, latest published 7.1.3 -
Check the inventory against the new version:
node scripts/inventory.mjs release-check --version <new version> --inventory <inventory>@pantheon-systems/p1-next-sdk 0.20.0 0 screenshot(s) already captured for 0.20.0 BEHIND p1.live.editor-shell (captured, still targets 0.16.0); finish or retarget it with: transition --id p1.live.editor-shell --to approved --release 0.20.0Each screenshot captured for an older version is listed as
BEHIND, with the exact command that retargets it. -
Decide which ones need a new image, and approve each for the new release:
node scripts/inventory.mjs transition --id <id> --to approved --release <new version> --inventory <inventory>The record keeps its earlier release in
historyand moves toapprovedwithrelease_status: refresh. Nothing is captured until a person approves it.
Next: Capture the editor.