nth Labs Help centre
⌘K
Open console

The console

Memory and coverage

Every run starts where the last one ended. The memory is a map of your product built out of the surfaces runs have really driven, and it is honest about the parts it has never seen.

What is in it

Which surfaces exist, how they link, which stand behind the sign-in, which are dead, what has been found on each and what has been fixed. Every later run reads it, which is why the second run on a product is better than the first.

Run history: each run with the module it ran, what it found and what it cost.
What persists between runs, read back: the module each run drove, what it found and what it cost.
node cli.cjs memory
node cli.cjs memory reset     # when the product changes shape
Reset when the product changes shape

A memory of a product that no longer exists is worse than none: it will keep driving surfaces that were removed and reasoning about a structure that changed.

Coverage is the counterweight

node cli.cjs coverage

How much of the product is tested: the pages your front door links to, measured against the surfaces runs actually drive. Free, no key.

A clean report over three surfaces is a true statement about three surfaces. Coverage is what stops it being read as a statement about the product.

How much has never been seen

node cli.cjs calibration estimates, by capture-recapture across repeated runs, how much of your product no run has met yet. It is the same technique used to count a wild population from repeat sightings, and it refuses to print a figure it cannot support.

Looking before you spend

node cli.cjs scope HEAD~1

Which surfaces a run would cover if scoped to the diff since a ref, and why. Costs nothing and starts nothing.