Skip to content

fix(snippets): report a tracking snippet without interactions as tracking, not as an error - #324

Merged
nucliweb merged 3 commits into
mainfrom
fix/no-interactions-tracking
Oct 25, 2026
Merged

nucliweb merged 3 commits into
mainfrom
fix/no-interactions-tracking

Conversation

@nucliweb

Copy link
Copy Markdown
Owner

Summary

Before any interaction, INP, Interactions and Input-Latency-Breakdown returned status: "error". The extension showed it as a failure, in red, and the CLI counted the snippet as failed and exited with 1. Nothing failed: someone has to use the page first. That is what tracking means in the contract.

  • getINP(), getINPDetails(), getInteractionSummary() and getInputLatencyBreakdown() return status: "tracking" with a message (No interactions yet: click, tap or type on the page, then call getINP() again.) and their getDataFn. getINPDetails() keeps count: 0 and items: [].
  • snippets/SCHEMA.md: a window function returns tracking when there is nothing to report yet and someone has to act first, and error only for a snippet that failed.
  • CLI: after a click or a key press it reads the snippet again while it is still tracking, as it did while it returned error. The human and markdown reports show it as not measured with its message, and it no longer counts as a failed snippet, so it does not make the command exit with 1. There is no INP budget today; one should fail when INP was not measured.
  • The MCP server describes the state in read_results, and the INP page in its troubleshooting.
  • The extension shows tracking in the blue of information instead of the yellow of a warning.

The changelogs tell whoever retried on error to retry on tracking. The skills, dist/ and llms-full.txt are regenerated.

Screenshots of the panel after Read result with no interaction: INP, Interactions and Input-Latency-Breakdown.

Test plan

  • E2e (local): getINP() and getINPDetails() before any interaction are tracking with their getDataFn and the message, and no error; the same for Interactions and Input-Latency-Breakdown; read_results of the MCP server on a session with nothing recorded gives tracking. They failed before the change.
  • Unit tests of the reporters (local): a tracking result shows as not measured with its message in the human and markdown reports, without the error marks. They failed before the change.
  • Lint, check:emoji, CLI unit 331 of 331, CLI e2e 577 of 577, test:skills 179 of 179, test:site 44 of 44, test:extension 66 of 66, test:extension:e2e 77 of 77 (local).
  • By hand with the CLI (local): --snippet INP on a page without interaction steps prints · INP not measured: … and exits with 0; on main the same run printed INP undefined.
  • By hand in the panel (local, harness of the extension e2e): the three snippets after Read result with no interaction, screenshots attached.

…king, not as an error

INP (getINP() and getINPDetails()), Interactions and Input-Latency-Breakdown returned status error before any interaction, so the extension showed it as a failure and the CLI counted the snippet as failed. Nothing failed: someone has to use the page first. They return status tracking with a message and their getDataFn, which is what tracking means in snippets/SCHEMA.md, and the schema keeps error for a snippet that failed. The CLI reads such a snippet again while it is still tracking after a click or a key press, reports it as not measured with its message in the human and markdown reports, and no longer exits with 1 for it. The MCP server describes the state in read_results, the INP page in its troubleshooting, and the extension shows it in the colour of information instead of the one of a warning.
@vercel

vercel Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
webperf-snippets Ready Ready Preview Oct 25, 2026 11:29pm UTC

The changelog keeps both sections of Unreleased: Added, from the audit filter of the extension (#323), and Changed, from this pull request.
…n is not measured

The interaction workflow page said that interactions and input-latency report an error when the script has a click but the page records no interaction. They are reported as not measured and do not count as errors.
@nucliweb
nucliweb merged commit 57de91c into main Oct 25, 2026
3 checks passed
@nucliweb
nucliweb deleted the fix/no-interactions-tracking branch October 25, 2026 23:35
nucliweb added a commit that referenced this pull request Oct 25, 2026
The changelog of the CLI keeps the entries of both pull requests under Unreleased, and the page of the CLI keeps the wording of #324, not measured, with INP among the steps that need a click and the exception of a budget that needs their metric.

This branch was successfully deployed

1 active deployment
Preview — 685617ab Deployed Oct 25, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant