How snapshots work
When you create a snapshot probe on a line, HyperProbe injects lightweight instrumentation into the running process. The next time execution reaches that line, the agent captures variable state and call stack frames, then immediately continues execution. The captured data appears in the HyperProbe panel in VS Code within seconds.Creating a snapshot probe
Open the HyperProbe panel in VS Code
Click the HyperProbe icon in the activity bar, then select Insert a Snapshot from the probe type list.
Select your source
Choose the target service, environment, and commit from the Source dropdown. This tells HyperProbe which running instance to instrument.
Set the file path and line number
Enter the relative path to the file (for example,
apps/api/src/orders.ts) and the line number where you want the snapshot to fire.Add watch expressions
Enter one or more expressions to evaluate when the probe fires. HyperProbe evaluates these in the context of the instrumented line, so you can reference any variable or method in scope.Watch expressions appear in their own panel in the results view, separate from the automatically captured local variables.
Set a condition (optional)
Enter a boolean expression to filter when the probe fires. The probe only captures a snapshot when the condition evaluates to
true.Configuration reference
Relative path to the source file, as it appears in your editor. For example,
apps/api/src/orders.ts.Line number where the snapshot probe fires. Must be a positive integer.
Expressions to evaluate and capture when the probe fires. Each expression is evaluated in the scope of the instrumented line. Defaults to an empty array; local variables are always captured regardless of this field.
Maximum number of times the probe captures before it auto-expires. Accepts 1–20. Defaults to
1.A boolean expression that must evaluate to
true for the probe to fire. Leave blank to capture on every execution.How long the probe remains active. Accepts
An Hour or A Day.Viewing snapshot results
Open the HyperProbe panel and click any completed or active snapshot probe to open the inspector. The inspector shows:- Hit navigation — Use the arrow controls to page through captures. The counter shows
Hit N / Total, ordered from oldest to newest. - Watch Expressions panel — The evaluated result of each expression you specified at creation time, displayed as an expandable tree.
- Variables panel — All local variables captured at the instrumented line, scoped to the currently selected call frame. Use the search box to filter by name.
- Call Stack panel — Every stack frame at the moment of capture. Click any frame to switch the Variables panel to show that frame’s local scope.
Click Show more in the inspector header to see the probe’s ID, hit limit, condition, and current status.
Understanding the hit limit
The hit limit is the most important safety setting for snapshot probes. Every capture creates a record in the database and transmits data from your production process to the HyperProbe backend. The default of1 is intentionally conservative: the probe captures once, then expires automatically.
Increase the hit limit when you are investigating intermittent bugs that don’t reproduce on every request — for example, a race condition or an error that affects only a subset of users. Use the condition field together with a higher hit limit to capture precisely the cases you care about without creating noise from unrelated executions.
Watch expressions vs. variables
Every snapshot automatically captures all local variables in scope at the instrumented line — you do not need to specify them explicitly. Watch expressions are for anything that is not a plain local variable:- Nested property access:
user.profile.address.city - Array or object computed values:
cart.items.filter(i => !i.fulfilled).length - Method call results:
formatCurrency(order.total) - Globals or module-level values accessible at that scope
