Version 1.2.0
November 8, 2026
Added
Craft's MCP server (Craft 5.12+). Component Check adds what only a browser run knows, all read only:
- instructions in
info.get: the mode, the last run and whether templates changed since, the snapshottestcompares against, how to run a check; component-check.results: the last run, case by case, failures first, with reasons and screenshot paths;component-check.usages: the live pages each block is on, and which a run tests;component-check.screenshot: a block now and in the snapshot, as images;- the check
component-check-coverageincontent-model.audit: blocks the snapshot no longer covers, and blocks without markers.
Only for control-panel users, never where the mode is
off. Nothing changes on Craft before 5.12; if a later Craft no longer accepts these, they are left out and a warning is logged, and the site's MCP server keeps working.- instructions in
Fixed
- After the site's time zone changed,
testreported every block in the snapshot as “edited after the snapshot” and stopped comparing it. Dates are now compared as moments, not as text.
Version 1.1.0
October 5, 2026
Added
- A shared baseline for CI. The new
snapshotPathsetting (envCOMPONENT_CHECK_SNAPSHOT_PATH) and--snapshot-pathoption onsnapshot,testandwatchkeep snapshots in a folder of your choice — commit it, and CI compares every pull request against it. See “A shared baseline” in the README for a GitHub Actions job. - Snapshots record the browser and OS that took them. When
testorwatchcompares in another environment, it says so, so that rendering differences are not taken for your change.
Changed
snapshot --resetdeletes only the files an earlier snapshot wrote, not the whole folder — it may be a folder in your repository.
Version 1.0.2
September 29, 2026
Fixed
watchwith Component Map installed re-checks only the blocks a saved template affects again. Component Map got no file names (Yii read the path as the value of--json), so every save fell back to checking everything.- When Component Map cannot answer,
watchshows its error message instead of the whole command line.
Version 1.0.1
September 29, 2026
Fixed
test --changed,--sinceandwatchno longer test everything because of files that never reach the browser. Docs, dotfiles (.ddev/,.github/,.env),composer.json/.lock,package.jsonand other lockfiles, andconfig/project/are listed as ignored instead; CSS, JS, PHP and anything inweb/still test every component. A local setup with an uncommittedcomposer.lockused to make every--changedrun a full one.
Version 1.0.0
September 29, 2026
First release.
Added
component-check/discover: every Matrix block on every live page, grouped by component, with the representative pages that would be tested and the block types that have no content anywhere.- Sampling by variant (section, page type, site, filled-in fields, option values): as few pages as possible, every variant covered.
component-check/test: Playwright runs on desktop (1440×900) and mobile (390×844). Page checks: HTTP status, uncaught JS errors, failed scripts and stylesheets, sideways scrolling. Component checks (with markers): rendered, has a size, fits the viewport, images load.- Screenshots of the failing component and a Playwright trace for every failure.
--jsonoutput and stable exit codes (0 passed, 1 regressions, 2 could not run) for CI and coding agents.component-check/doctor: checks mode, Node, Playwright, Chromium, output directory, site reachability and marker usage.- Twig markers —
craft.componentCheck.start(block)/end()andcraft.componentCheck.attributes(block)— rendered only for signed test requests. component-check/snapshotand before/after comparison intest: per block and viewport, geometry and computed style are recorded and compared, and changes are reported in words (“h1: width 334→1200px, now cut off by 235px”), with before/after screenshots. Blocks whose content was edited after the snapshot are not compared. Snapshots are local (storage/component-check/snapshot).component-check/watch: snapshots the components once, keeps a browser open and re-checks them on every save, printing what changed and what got fixed since the previous save. Keys:rrun,snew snapshot,qquit. Polls for changes (watchPaths,watchIgnore,watchInterval), so it works across the DDEV mount.- With Component Map installed:
test --changed(uncommitted changes) andtest --since=<branch>test only the blocks rendered through the changed templates — everything when CSS, JS or PHP changed — andwatchre-checks only the blocks a saved file affects. php craft component-checklists the commands and the current mode.- Layout heuristics — sideways scrolling, overflow, text cut off by
overflow: hidden— are warnings, not failures: they cannot know what the design intends. A change against a snapshot fails instead. - Modes
off/readonly/full, followingallowAdminChangesunless set explicitly (COMPONENT_CHECK_MODE).