pj
65ba5345a3
test(verifier): cross-runtime goja/node parity gate on the shared picker
2026-06-01 17:20:04 +05:30
pj
dba182b96f
feat(testrun): surface unsupported verbs in run report
2026-06-01 17:14:39 +05:30
pj
1a17734ce0
refactor(runner): collapse WebDriver forks behind ActionSource/ExtractorSource
2026-06-01 17:14:35 +05:30
pj
0436c6094e
feat(verifier): collect unsupported verbs for the run report
2026-06-01 17:14:32 +05:30
pj
26f638f021
test(runner): bundle authored specs with the goja runtime entry
2026-06-01 16:59:23 +05:30
pj
aee5d8110a
test(verifier): author specs through the shared picker path
2026-06-01 16:59:23 +05:30
pj
f8e3baf439
refactor(runner): decode V8 actions via the unified DecodeAction; wire goja runtime
2026-06-01 16:59:18 +05:30
pj
411aefe25f
refactor(verifier): goja host + shared picker replace the duplicate Go picker
2026-06-01 16:59:12 +05:30
pj
59cb77d29c
refactor(verifier): one DecodeAction reads the unified flat wire contract
2026-06-01 16:59:04 +05:30
pj
50cb9e98cb
feat(spec): serialize selector-only string targets for the runner to re-resolve
2026-06-01 16:58:59 +05:30
pj
1a9d82711f
refactor(spec): drop the legacy goja bridge fields from action factories
2026-06-01 16:58:59 +05:30
pj
76c68b84ac
feat(testrun): bundle the goja runtime entry so the verifier runs the shared picker
2026-06-01 16:43:50 +05:30
pj
45366ddde5
feat(bundler): optional RuntimeFile prepends a runtime-entry import via stdin
2026-06-01 16:43:50 +05:30
pj
bf89f3b1cf
feat(spec): goja runtime entry wires the shared picker over the Go host
2026-06-01 16:42:48 +05:30
pj
7a5fc9aca5
refactor(spec): picker emits native selector + scroll endpoints, setup precedence
2026-06-01 16:42:38 +05:30
pj
6600994ef1
test(spec): cover the WEB Host surface and seed precision
...
Replace the deleted-picker tests with Host coverage: platform()==web,
seedHi() parsing a 64-bit seed without Number precision loss, seedLo()==0,
reportUnsupported warning, the installed next-action/extractor globals, and
queryCandidates verb routing + per-tick caching over a querySelectorAll stub.
2026-06-01 16:37:42 +05:30
pj
b23bd516a8
refactor(spec): web-runtime becomes the WEB Host, delegates to shared picker
...
Delete the duplicate picker (resolveGenerator/pickWeighted/randomTap/
randomInput/randomSwipe/randomPressKey/pickFromArray, the mulberry32 PRNG,
and the snake_case serializeAction) plus the __sanderling__ action factory
binds. web-runtime now implements Host (platform/seedHi/seedLo from the
injected 64-bit seed via BigInt, queryCandidates over the live DOM with a
per-tick cache, reportUnsupported) and calls installRuntime so both engines
run pick.ts over the same Pcg. Swipe/longPress/scroll follow the verbs.ts
matrix instead of silently returning null. Keeps the DOM helpers (selector
translation, queryElement, elementHandle, buildState, sanitize, extractors)
and the global locking. Net -214 lines (741 -> 527).
2026-06-01 16:37:37 +05:30
pj
b6a706699b
refactor(spec): installRuntime accepts a lazy root resolver
...
The web bundle imports the runtime before the spec, so the action root
on globalThis.actions only exists after the spec evaluates. Accept a
function form so the goja and web hosts resolve the root per tick.
2026-06-01 16:37:30 +05:30
pj
26e27832a2
test(spec): tolerate legacy bridge fields on builtin nodes
2026-06-01 16:31:37 +05:30
pj
58585b88b2
fix(spec): web runtime walks the spec's globalThis.actions data tree
2026-06-01 16:31:37 +05:30
pj
ee54c474b6
refactor(spec): bridge data-tree nodes to the legacy goja picker tags
2026-06-01 16:31:37 +05:30
pj
c9d8f165b1
test(spec): runtime-entry serializeAction wire-contract round-trip
2026-06-01 16:27:29 +05:30
pj
51200ed829
test(spec): assert data-tree shapes for action factories
2026-06-01 16:27:29 +05:30
pj
804cee70d2
feat(spec): export LongPress/Scroll/longPresses/scrolls factories
2026-06-01 16:27:29 +05:30
pj
e18feff5fe
feat(spec): shared runtime-entry installs next-action over pick.ts
2026-06-01 16:24:24 +05:30
pj
06ae965387
refactor(spec): wire from() sampling through the picker rng
2026-06-01 16:24:24 +05:30
pj
fe3ebd0484
refactor(spec): actions.ts returns pure GeneratorNode data trees
2026-06-01 16:24:20 +05:30
pj
b34f73f3f7
test(spec): picker draw-order and determinism
2026-06-01 16:13:53 +05:30
pj
3e9f0b9367
test(spec): verb matrix and warn-once semantics
2026-06-01 16:13:53 +05:30
pj
d253d68b52
feat(spec): deterministic shared action picker
2026-06-01 16:13:47 +05:30
pj
a4bbd71e04
feat(spec): verb support matrix and warn-once helper
2026-06-01 16:13:47 +05:30
pj
af9dd6c741
feat(spec): action-tree types and Host interface
2026-06-01 16:13:44 +05:30
pj
882c3fb053
feat(spec): shared input corpus and press-key pools
2026-06-01 16:13:44 +05:30
pj
39f2197b2f
test(spec): assert pcg.ts matches the PCG golden fixture
2026-06-01 16:09:02 +05:30
pj
231f96f5a5
feat(spec): bit-exact PCG port of Go math/rand/v2
2026-06-01 16:09:02 +05:30
pj
307213ef45
test(spec): add Go math/rand/v2 PCG oracle and golden fixture
2026-06-01 16:09:02 +05:30
pj
d4ffdce8f9
test: cover web-runtime seeded PRNG, weighted pick, and seed define wiring
2026-06-01 15:10:04 +05:30
pj
6fc1c971c7
feat(testrun): inject seed into web bundle via SANDERLING_SEED define
2026-06-01 15:10:01 +05:30
pj
d7c05181b0
fix(web-runtime): seed PRNG for reproducible runs and align weighted pick
2026-06-01 15:09:58 +05:30
pj
b5e8d9892e
test(ltl): lock implies and bounded-always false-negative regressions
2026-06-01 14:11:26 +05:30
pj
1834019419
fix(ltl): eliminate implies and bounded-always false-negatives
...
Rewrite a -> b to (not a) or b in NNF so a pending temporal antecedent
can no longer defer the whole implication and drop a consequent that was
false at the current step. Carry a pending inner past a bounded-Always
window close instead of dropping it to holds, so a deferred obligation is
resolved by a later step or Finalize.
2026-06-01 14:11:26 +05:30
pj
283bf44920
test(verifier): finalize surfaces unmet eventually with witness
2026-06-01 13:58:45 +05:30
pj
8ac05b458e
test(ltl): lock violation witness reason, IsError, and step
2026-06-01 13:58:45 +05:30
pj
17f4c7e600
feat(runner): thread violation witnesses, finalize, skip marker into trace
2026-06-01 13:57:34 +05:30
pj
3cf668e59a
feat(trace): witnesses map and skipped-verification marker on Step
2026-06-01 13:56:31 +05:30
pj
4dcd01eba9
test(verifier): witness API for thrown predicates
2026-06-01 13:56:15 +05:30
pj
f346864b2f
refactor(verifier): replace predicate err side-channel with violation witness
2026-06-01 13:56:11 +05:30
pj
e6a3852112
feat(ltl): flag thrown-predicate witnesses with IsError
2026-06-01 13:56:08 +05:30
pj
a01e126ff9
test(ltl): migrate thunk call sites to (bool,error)
2026-06-01 13:53:42 +05:30
pj
9be00dff90
feat(ltl): witness violations and (bool,error) predicate thunks
2026-06-01 13:53:38 +05:30