AI agents: read this page as markdown at /docs/agents/whats-new.md, or start from the full AI-readable index at /llms.txt.

What's new

Unless a change is specific to one surface, changes listed here apply equally to the CLI and the corresponding MCP tools.

August 17, 2026 — get real coverage for a base commit

  • meticulous agent complete-base-run (new) replays the rest of a base run's selected sessions, to complete its coverage information.
  • meticulous agent js-coverage now refuses a base run whose selected set hasn't fully replayed, saying how many sessions are missing, rather than reporting an understated total.
meticulous agent complete-base-run
meticulous agent js-coverage

August 11, 2026 — discover available check IDs, and a renamed check command

  • meticulous agent test-run-checks is renamed to meticulous agent test-run-check, since it operates on a single check.
  • The new --availableIds flag (MCP: get_test_run_check_available_ids) lists the check IDs that have reported results for a test run.
meticulous agent test-run-check --availableIds --testRunId="<id>"
meticulous agent test-run-check --checkId="accessibility" --testRunId="<id>"

August 10, 2026 — agent diff reviews and review comment writes

  • meticulous agent reject-diff records a rejection with a review comment explaining why.
  • meticulous agent ignore-diff says a diff looks like an unrelated variant / flake, currently as a comment only.
  • The new create-diff-comment and reply-to-diff-comment commands let agents start and continue review threads independently of a decision.
  • meticulous agent diff-comments gained an isAgentAuthored attribute, distinguishing agent-written comments from human ones.
meticulous agent reject-diff --replayDiffId="<id>" --screenshotName="<name>" --reason="..." --x=0.5 --y=0.5
meticulous agent reply-to-diff-comment --commentId="<id>" --text="..."

August 7, 2026 — non-visual check reports, session activity counts, and see and change which project you're querying

  • meticulous agent test-run-checks retrieves the Markdown report for a non-visual check. For customer-reported checks, use --checkType="custom".
  • meticulous agent sessions gained --includeNumberUserEvents and --includeNumberUrlsVisited for adding the recorded user-event and URL-visit counts to each session, and --includeDurationSeconds for adding each session's duration in seconds (omitted for sessions where a duration couldn't be computed, e.g. recorded before this was tracked).
  • The MCP server gained whoami, list_projects, get_project and set_project, matching the existing meticulous auth commands — so an agent can now check which project its calls resolve to, and change it, without leaving the connection. meticulous auth get-project and set-project also gained --json.
  • Relatedly, an empty test-run or session lookup now names the project it searched and how to change it, rather than just reporting nothing found: a default project lives on your user account, so it is shared across machines and sessions and an unexpectedly empty result is usually the wrong project rather than missing data.
meticulous agent test-run-checks --checkId="accessibility"
meticulous agent test-run-checks --checkId="network-requests" --testRunId="<id>"
meticulous agent sessions --includeDurationSeconds
meticulous agent sessions --includeNumberUserEvents
meticulous agent sessions --includeNumberUrlsVisited
meticulous auth get-project --json

August 4, 2026 — filter and focus test-run diffs

  • meticulous agent test-run-diffs --onlyWithComments filters to screenshot diffs with at least one open review comment.
  • The --only* row filters now combine as a union, so passing several returns the diffs matching any of them.
  • meticulous agent test-run-diffs returns all diffs when there are at most five; above that, a selected representative subset in priority order. Full-diff results no longer include an isSelected field. --onlyRejected/--onlyWithComments are unaffected by this cap, they always return every matching diff.
  • meticulous agent test-run-diffs --counts now also reports numWithOpenComments.

August 3, 2026 — review comments, rejected diffs, and leaner test-run-diffs output

  • meticulous agent test-run-diffs --includeReviews adds decision (previously --includeReviewDecisions) and openComments to each diff.
  • meticulous agent diff-comments --replayDiffId="<id>" --screenshotName="<name>" retrieves the corresponding open comments with nested replies.
  • meticulous agent test-run-diffs --onlyRejected returns every screenshot diff already marked rejected, across every difference rather than only the selected subset.
  • meticulous agent test-run-diffs no longer returns index or outcome, and now returns mismatchFraction only with --includeMismatchFraction.
meticulous agent test-run-diffs --includeReviews
meticulous agent diff-comments --replayDiffId="<id>" --screenshotName="<name>"
meticulous agent test-run-diffs --onlyRejected
meticulous agent test-run-diffs --includeMismatchFraction

July 24, 2026 — submit feedback about Meticulous

  • meticulous agent submit-feedback (new) lets an agent send free-form feedback to the Meticulous team — whether Meticulous helped catch or debug a problem, what was confusing, and what information would have made the task easier. Optionally tag it with --outcome (helped/neutral/hindered), the related --testRunId, the --skill being followed, and --agentName/--agentModel.
meticulous agent submit-feedback --message="Caught a real regression in the checkout flow" --outcome="helped" --testRunId="<id>" --skill="meticulous-review"

July 21, 2026 — OAuth device flow login and project-level JS coverage

  • meticulous auth login --device (new) logs in via the OAuth 2.0 Device Authorization Grant: the CLI prints a URL and code you can open and confirm in a browser on any device, then polls until the grant is confirmed. Use this on remote or sandboxed machines (SSH sessions, containers, cloud coding agents) where a browser can't reach the CLI's localhost — unlike --non-interactive, which still requires opening the printed URL on the same machine as the CLI.
  • meticulous agent js-coverage gained --latestForProject, which returns per-file coverage from the project's preferred latest successful test run.

July 20, 2026 — list a project's recently recorded sessions

  • meticulous agent sessions (new) lists a project's most recently created sessions, newest first — useful, for instance, for finding the id of a session you just recorded.
  • meticulous agent trigger-test-run gained --maxDurationSeconds (or none for unlimited) to override the replay engine's duration cap on runs with pinned --sessionIds — useful, for instance, to prevent agent-recorded sessions from being cut at the default 5min cap.
meticulous agent sessions
meticulous agent sessions --createdSince="2026-07-01" --createdUntil="2026-07-10"
meticulous agent sessions --recordedBy="user@example.com" --visitedUrlFilter="*/checkout*"
meticulous agent sessions --recordedSince 2026-07-10 --excludeSyntheticSessions --limit 10
meticulous agent trigger-test-run --sessionIds="<id1>,<id2>" --maxDurationSeconds=none

July 16, 2026 — MCP server for agents

The Meticulous MCP server exposes the agent CLI's read and analysis commands as tools your coding agent can call directly — see the MCP server page for setup and the full list of available tools. Every read-only agent command has a matching tool; the two mutating ones, upload-build and trigger-test-run, aren't exposed yet but are coming soon.


July 13, 2026 — review-state aware test-run-diffs, diff counts, and per-account default project

  • meticulous agent test-run-diffs now understands PR review state, and can report totals without the full list:

    FlagWhat it does
    --includeReviewDecisionsAdd a decision column with each diff's PR review decision (accepted/rejected/ignored/unreviewed; unreviewed when undecided or there's no PR)
    --onlyUnreviewedReturn only the diffs still awaiting review — everything left to look at, across every difference (implies --includeAllDiffs, so the isSelected column is included)
    --countsPrint just the aggregate totals — number of replays, number of differences, and the review-decision breakdown (approved / ignored / rejected / unreviewed) — instead of the per-diff list
  • Your default project is now a per-account setting, too:

    • meticulous auth set-project now persists your default project on your Meticulous account instead of a local file — so it's consistent across machines and available to the MCP server. meticulous auth logout leaves it untouched.
    • meticulous auth get-project (new) prints your default project, which you can also view and change from your user settings in the web app.
    • meticulous agent test-run-for-commit, test-run-diffs, js-coverage, and trigger-test-run gained --project — a one-off override (id, organization/name slug, or unique bare name) for that call only, which doesn't change your stored default.
    meticulous auth set-project --project="my-org/my-project"
    meticulous auth get-project
    meticulous agent js-coverage --project="my-org/my-project"
    

July 10, 2026 — test-run-diffs is differences-only

meticulous agent test-run-diffs no longer returns matching screenshots — it reports only genuine visual differences, the same set Meticulous counts and displays everywhere else. The --includeMatches flag is removed.


July 7, 2026 — get combined coverage from multiple test runs

meticulous agent js-coverage gained --headPlusTestRunIds and --testRunIds for unioning coverage across several test runs (same project, same commit) — e.g. combining a run's head coverage with a separate run triggered via agent trigger-test-run --sessionIds="<ids>" to assess how these sessions improve coverage.

meticulous agent js-coverage --headPlusTestRunIds="<id1>,<id2>"
meticulous agent js-coverage --testRunIds="<id1>,<id2>,<id3>"

July 6, 2026 — consistent machine-readable output for agent & auth

  • agent and auth commands gained --json for JSON-structured output instead of default format.
  • agent and auth commands also gained --verbose, which prints additional progress logs on stderr.
  • --rawJson is renamed to --jsonArgs (old name still works, now deprecated).
meticulous agent js-coverage --json
meticulous auth whoami --json

July 1, 2026 — more coverage info, session pinning, and non-interactive login

  • meticulous agent js-coverage gained new flags for richer per-file coverage data: --includeExecutableRanges, --includeUncoveredRanges, --includeCoveragePercentage, and --prDiffOnly (test-run queries only), plus --includeAllFiles and --globFilter (also for replay and replay-diff queries).
  • meticulous agent trigger-test-run can now run with no arguments at all — it infers the already-uploaded deployment for your local HEAD commit.
  • meticulous agent trigger-test-run now accepts --sessionIds, a comma-separated list of session IDs to replay for both the base and the head, instead of the project's auto-selected golden set.
  • meticulous agent trigger-test-run now also accepts --commitSha as an alternative to --deploymentId, resolving to the most recently uploaded deployment for that commit — useful for re-triggering a run against a commit that has already gone through Meticulous.
  • meticulous auth login --non-interactive lets the login flow run without a TTY: it prints the login URL instead of opening a browser.
meticulous agent js-coverage --includeCoveragePercentage --prDiffOnly
meticulous agent trigger-test-run
meticulous agent trigger-test-run --deploymentId="<id>" --baseSha="<base-sha>" --sessionIds="<id1>,<id2>"
meticulous agent trigger-test-run --commitSha="<sha>" --baseSha="<base-sha>"
meticulous auth login --non-interactive --project="my-org/my-project"

June 29, 2026 — separate build upload from triggering a test run

Two new agent commands, upload-build and trigger-test-run, give agents their own counterparts to the CI upload commands (ci upload-assets / ci upload-container) — and split building and uploading your app from kicking off a test run. You can now upload a build once, capture its deployment ID, and trigger one or more runs against it independently. Git options such as the commit SHA are resolved automatically from your local repository.

# Upload a static build (or a container image) and capture the deploymentId
meticulous agent upload-build --appDirectory="<path-to-build>"
meticulous agent upload-build --localImageTag="<image-tag>"

# Trigger a run against an uploaded build
meticulous agent trigger-test-run --deploymentId="<id>"

June 24, 2026 — smoother authentication and non-interactive project selection

Authentication is easier to drive from scripts and agents, and a stored login is no longer shadowed by a stale token.

  • A logged-in OAuth session now takes precedence over a stale METICULOUS_API_TOKEN or ~/.meticulous/config.json token, so you won't get silently stuck on an expired credential.
  • meticulous auth login (new) forces a fresh browser login and then selects a project.
  • meticulous auth whoami now also reports which credential is actually in use.
  • meticulous auth logout now also clears the selected project, and warns if an environment-variable or config-file token will keep being used.
  • meticulous auth list-projects (new) lists the projects you can access.
  • Argument --project org/project (new) on login / set-project lets you select a project non-interactively.
meticulous auth login --project="my-org/my-project"
meticulous auth list-projects

June 19, 2026 — richer, curated test-run-diffs output

By default, meticulous agent test-run-diffs now returns a curated, priority-ordered set of the most relevant visual differences as a single flat list. New flags let you control what comes back:

FlagWhat it does
--includeDomDiffIdsInclude DOM-diff IDs for each screenshot
--includeAllDiffsReturn every diff, not just the curated set (adds an isSelected column)
--includeMatchesInclude matching and known-flaky screenshots too, not just differences (implies --includeAllDiffs)
--orderByReplayDiffsOrder by replay then event index instead of priority

Polling output is also quieter, and runs that can't produce diffs now fail fast with a clear message.


June 12, 2026 — JavaScript coverage and lookup by commit

New agent commands surface the JavaScript code coverage captured during replays, and let you resolve a test run straight from a commit — so an agent can go from local git context to the right run without tracking run IDs.

meticulous agent js-coverage          # coverage for a test run (defaults to the current git HEAD)
meticulous agent js-coverage-diff     # base-vs-head coverage diff for a replay diff
meticulous agent test-run-for-commit  # the latest test run for the current commit