pj a1e6bd7853 fix(ltl): keep the authored window on a step-bounded obligation
reduce decremented StepBound into the residual, so the trace reported the
remaining window rather than the authored one: a within(1915, "steps") showed
up as 1875 after 40 steps, and the replay UI renders that string verbatim. The
duration case was fixed when bounded windows were made to serialize their
resolved deadline; the step case was not, and withinFor's comment claimed
otherwise.

The window is now immutable and the closing observation is resolved once, which
mirrors Deadline exactly. A step counts observations the evaluator reduced,
not steps the runner executed, because a skipped step gave the property no
chance to discharge and transitional-step rate is itself policy-dependent.

Claude-Session: https://claude.ai/code/session_01A5KmftdEJ49A9z5mF5ESrX
2026-08-14 17:50:19 +05:30
2026-07-31 21:12:00 +05:30
2026-06-09 20:13:54 +05:30

sanderling

Autonomous property-based testing for mobile and web apps.

You write rules that must always hold about your app. sanderling explores the app on its own for minutes or hours, performing thousands of taps, swipes, and inputs, and records every step where a rule breaks. No scripted test paths. One TypeScript spec runs against Android, iOS, and web builds of the same app.

import { extract, always } from "@sanderling/spec";
import { defaultActions } from "@sanderling/spec/defaults";
import { noUncaughtExceptions } from "@sanderling/spec/defaults/properties";

const balance = extract("balance", s =>
  parseInt(s.ax.find({ testTag: "Balance" })?.text ?? "0", 10));

export const properties = {
  noUncaughtExceptions,
  balanceNeverNegative: always(() => balance.current >= 0),
};

export const actionsRoot = defaultActions;

Every run produces a trace: one JSON line and one screenshot per step. sanderling replay opens it in a web UI for stepping through actions, screenshots, property timelines, and violations.

Alpha. Android, iOS, and web (Chrome driver only). Full scope in the v0.1.0 roadmap.

Docs


sanderling

sanderling, a wading bird that probes the shoreline for bugs that lie beneath.

S
Description
No description provided
Readme Apache-2.0
51 MiB
0 Stars 1 Watchers 0 Forks
Languages
Go 74.6%
TypeScript 15.2%
Kotlin 5.5%
Shell 2.7%
Swift 1%
Other 0.9%