What's new

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.
  • The MCP server gained the matching submit_feedback tool.
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