Commit Graph

  • 9ab59365b2 redact passwords only, and say what each step did in the log (#93) master v0.0.5 pj 2026-09-05 23:54:12 +05:30
  • 2e4993e620 docs(runs): record what the android hierarchy re-read costs per step redact-only-passwords pj 2026-09-05 22:38:27 +05:30
  • 8595094410 fix(sidecar): match a field to its xml node by class as well as id and bounds pj 2026-09-05 22:31:17 +05:30
  • ab0e8a4132 test(sidecar): compare the whole tree when checking the annotation changes nothing else pj 2026-09-05 22:31:17 +05:30
  • 687f601e10 refactor(sidecar): inline the one attempt passed to callViewHierarchy pj 2026-09-05 22:31:17 +05:30
  • db43f450bc refactor(hierarchy): name no screen for a tree Transitional calls a cross-fade pj 2026-09-05 22:31:17 +05:30
  • 8dc4d08bc1 chore(folio): ignore run output anywhere under examples/folio pj 2026-09-05 16:40:27 +05:30
  • 57f7737274 docs(ci): say how just ios lands on the simulator the boot step chose pj 2026-09-05 16:40:27 +05:30
  • c25265944e feat(folio): pin ios recipes to one simulator udid and ask when several match pj 2026-09-05 16:40:27 +05:30
  • 419ed9d1c0 feat(folio): ask which android device to run on when none is named pj 2026-09-05 16:40:27 +05:30
  • 8c31e2bf6f fix(testrun): pass the jvm the flag that silences the jdk 24 unsafe warning pj 2026-09-05 16:40:27 +05:30
  • 7b44b0c9a9 docs: record that the apk can name the package itself pj 2026-08-31 10:21:51 +05:30
  • f4b614d3ba feat(cli): let --android-app-path supply the bundle id pj 2026-08-31 10:21:51 +05:30
  • 51d3504e9a feat(android): read the application id out of an apk pj 2026-08-31 10:21:45 +05:30
  • 9a25a444e1 docs: the last two tests that credit the sidecar for an iOS fact action-wire-and-test-scaffolding pj 2026-08-22 21:48:47 +05:30
  • ac0ec68cb8 docs: record the audit and correct what this branch disproved pj 2026-08-22 21:46:28 +05:30
  • 9c21489ae7 test(chrome): pin that Metrics reports no CPU sample rather than a zero pj 2026-08-22 21:41:40 +05:30
  • 28402bda7b fix(trace): cpu_percent is omitted when no CPU was sampled pj 2026-08-22 21:41:40 +05:30
  • 1fb910e0a2 fix(driver): a CPU sample the driver never took is absent, not zero pj 2026-08-22 21:41:40 +05:30
  • 577993b540 test(runner): retire the scaffolding the package grew by copying pj 2026-08-22 21:39:22 +05:30
  • d9f96602d9 docs(hierarchy): iOS writes accessibilityText through the companion pj 2026-08-22 21:37:58 +05:30
  • a2dbcd1579 fix(testrun): delete a java check that was dead and wrong pj 2026-08-22 21:37:58 +05:30
  • 658574b568 docs: correct the false statements on DeviceDriver and in the runner pj 2026-08-22 21:31:13 +05:30
  • 3caf53cfb6 test(chrome): one launch preamble, and parity now pins ground truth pj 2026-08-22 21:31:13 +05:30
  • 5ae825109e test: one run-directory writer for the packages that share it pj 2026-08-22 21:23:54 +05:30
  • 5a0439d394 test(verifier): one spec bundler instead of four pj 2026-08-22 21:20:40 +05:30
  • 22296c5316 test(mock): one failure plan replaces the per-call wrapper drivers pj 2026-08-22 21:20:27 +05:30
  • 970dc9a6f5 docs(hierarchy): the package doc states the match rules the code implements pj 2026-08-22 21:20:27 +05:30
  • d5f3937338 fix(sidecar): pollUntilStable stops charging the read to the stability streak pj 2026-08-22 21:17:11 +05:30
  • e713b0ea5e fix(runner): a read the driver cannot make is recorded, not counted as passed pj 2026-08-22 21:16:24 +05:30
  • 1de179995b fix(ios): three unbacked reads report not-supported instead of success pj 2026-08-22 21:16:24 +05:30
  • 08df960e0f docs(verifier): unambiguousSelector no longer contradicts resolveCoordinates pj 2026-08-22 21:15:01 +05:30
  • 759803e684 docs: correct three claims the audit checked against the code pj 2026-08-22 21:14:02 +05:30
  • 749a173020 fix(confusion-matrix): the same exclusion, so silence is not scored as agreement pj 2026-08-22 21:12:27 +05:30
  • 3e4633f588 fix(analyze): a run that never explored is excluded, not counted as evidence pj 2026-08-22 21:12:27 +05:30
  • 52625d95a7 fix(replay-ui): the selector key list comes from the cross-runtime contract pj 2026-08-22 21:12:05 +05:30
  • 4619eb8bfb docs: stop labelling current behaviour as legacy pj 2026-08-22 21:11:13 +05:30
  • 61bf82e43c docs(verifier): Action's field comments name the kinds that read them pj 2026-08-22 21:10:22 +05:30
  • 90b5e59cc1 ci: run the 541 lines of tag-gated tests pj 2026-08-22 21:08:56 +05:30
  • 30febb78b8 fix(replay): a truncated index is a 500, not a partial 200 pj 2026-08-22 21:07:58 +05:30
  • dbd57ef989 fix(chrome): a failed metrics round trip is an error, not zero bytes pj 2026-08-22 21:07:15 +05:30
  • 16952bf0f7 docs: say what a mismatched spec package and binary now do pj 2026-08-22 21:04:24 +05:30
  • d57bd0e508 feat(chrome): the web host applies the same action-encoding rule pj 2026-08-22 21:04:23 +05:30
  • 81713fa183 feat(verifier): refuse a bundle built against a different action encoding pj 2026-08-22 21:04:23 +05:30
  • 912ad71804 feat(spec): the runtime entry declares the action encoding it serializes pj 2026-08-22 21:04:23 +05:30
  • 83d988afda fix(runner): a swipe whose endpoints coincide is not dispatched pj 2026-08-22 21:02:09 +05:30
  • 047076f9c3 chore: move subject-specific experiments to an ignored playground module pj 2026-08-22 21:00:51 +05:30
  • 8c0df6266b docs: record that ios and web state secure:false for compose password fields pj 2026-08-19 18:55:51 +05:30
  • 71219d71da fix(sidecar): state the fact on a field named by its hint alone pj 2026-08-19 18:51:07 +05:30
  • 528b2c7756 test(sidecar): fail the build if maestro renames the call the fact comes from pj 2026-08-19 18:50:29 +05:30
  • a38b4a8047 docs: correct the record that android never reports a secure field pj 2026-08-19 18:48:02 +05:30
  • 8b4c300ad2 fix(sidecar): state on android whether a field is a secure entry pj 2026-08-19 18:42:34 +05:30
  • f59b7eab82 feat(runner): say what each step did in the step log pj 2026-08-19 18:37:55 +05:30
  • be8a7e0194 feat(hierarchy): name the route a native tree shows pj 2026-08-19 18:37:51 +05:30
  • 9b4ff5f247 record what the model picker did, and make both policies see the same actions (#74) v0.0.4 pj 2026-08-19 11:07:49 +05:30
  • c6e4431807 docs(manual): both hosts read the hint ladder, placeholder is the attribute llm-recording-and-analysis pj 2026-08-19 10:37:17 +05:30
  • dbfbc14eb5 test(chrome): compare the hint keys and placeholder across both matchers pj 2026-08-19 10:37:10 +05:30
  • f02a65772b fix(chrome): a hint target is not tapped by the placeholder attribute pj 2026-08-19 10:37:03 +05:30
  • 6e551e9559 fix(spec): a hint selector names the ladder both producers derive pj 2026-08-19 10:36:57 +05:30
  • 01aa365d0e docs(hierarchy): the package doc names every key an alias reaches pj 2026-08-19 10:18:40 +05:30
  • 817a548d1e docs(manual): state which attribute each alias reads, and what bounds is pj 2026-08-19 10:14:26 +05:30
  • 48425e113f fix(hierarchy): bounds is a raw attribute, not a cross-platform key pj 2026-08-19 10:13:52 +05:30
  • 77ee3fc31e test(chrome): compare the alias keys and the two derived facts pj 2026-08-19 10:12:18 +05:30
  • 43970686d7 fix(spec): an editable or scrollable selector names what this host derives pj 2026-08-19 10:12:12 +05:30
  • c4fbe79016 fix(spec): resolve the identifier, label and class aliases against the DOM pj 2026-08-19 10:11:54 +05:30
  • 1bcbb8b7e8 fix(hierarchy): reach a web test tag through testTag and testID pj 2026-08-19 10:07:00 +05:30
  • ae629d9d7d fix(hierarchy): reach the accessible label through every name for it pj 2026-08-19 10:06:56 +05:30
  • 5a7c223464 docs(manual): list className among the cross-platform aliases pj 2026-08-19 09:55:39 +05:30
  • 2cbd60d70b test(spec): pin className and class on the same elements pj 2026-08-19 09:55:35 +05:30
  • 53ee9aa292 test(chrome): compare className across both matchers pj 2026-08-19 09:55:25 +05:30
  • 5f66e5fb3e fix(hierarchy): reach the class attribute through className pj 2026-08-19 09:55:22 +05:30
  • 31f9c8de11 docs(manual): state how text combines with the key beside it pj 2026-08-19 09:41:48 +05:30
  • 4b3c2601e7 test(chrome): compare a compound text selector across both matchers pj 2026-08-19 09:41:44 +05:30
  • c16cb88d38 test(spec): pin text against the key beside it in either order pj 2026-08-19 09:41:39 +05:30
  • 4768b8048b fix(spec): and text with the keys written beside it pj 2026-08-19 09:41:31 +05:30
  • f8a025eb83 docs(folio): state that android recipes need ANDROID_DEVICE pj 2026-08-18 20:47:27 +05:30
  • 8abe2c1ca0 fix(folio): refuse to install and fuzz a device nobody named pj 2026-08-18 20:47:24 +05:30
  • 3a79f9f0e7 docs(manual): state what the other boolean state selectors match pj 2026-08-18 20:44:19 +05:30
  • 84baf18ee9 fix(spec): keep a selector out of the head subtree pj 2026-08-18 20:44:15 +05:30
  • 5404909e12 test(chrome): compare checked, selected and focused across both producers pj 2026-08-18 20:43:46 +05:30
  • 654c0afd90 test(chrome): resolve the five state selectors on both matchers pj 2026-08-18 20:43:40 +05:30
  • c8ca350115 fix(chrome): state every boolean flag the dump can state pj 2026-08-18 20:43:29 +05:30
  • d177726c4e fix(spec): keep a tag selector valid beside another key pj 2026-08-18 20:43:20 +05:30
  • f7135b81d8 fix(spec): a boolean state selector names what the live element reports pj 2026-08-18 20:43:09 +05:30
  • 4bcd82a8a6 fix(analyze): write an undefined paired p-value as null, not as NaN pj 2026-08-18 20:24:10 +05:30
  • 8fad1937bb fix(conformance): g4 reads a doubling out of what the field grew by pj 2026-08-18 20:22:39 +05:30
  • 8e8eb621c3 refactor(analyze): hoist the sign test's loop bound pj 2026-08-18 20:20:49 +05:30
  • 37e6298992 test(conformance): g4 sees a doubling appended to what the field held pj 2026-08-18 20:20:47 +05:30
  • 132ed25313 docs(skills): quote the summary line the runner prints now pj 2026-08-18 20:20:04 +05:30
  • a257a91988 docs(manual): exit 1 also means a run that holds no verdict pj 2026-08-18 20:20:04 +05:30
  • dd625de068 docs(analyze): name the tests the tool actually runs pj 2026-08-18 20:17:39 +05:30
  • 1008402558 fix(analyze): score a seed pair by which run outlived the other pj 2026-08-18 20:16:40 +05:30
  • e2f9864201 fix(spec): keep a secure selector valid beside another key pj 2026-08-18 20:16:03 +05:30
  • c8d52cb7d5 test(browser): the exit code a dead run and a violated one actually leave pj 2026-08-18 20:14:59 +05:30
  • f4b9ff1468 fix(conformance): g4 skips an input that names no field pj 2026-08-18 20:14:28 +05:30
  • faa1a33a68 test(conformance): g4 keeps checking past an input typed at coordinates pj 2026-08-18 20:14:14 +05:30
  • b9a48cc36f docs(manual): state what a secure selector matches pj 2026-08-18 20:14:07 +05:30
  • 9a920444b3 test(chrome): compare the secure fact across both producers pj 2026-08-18 20:14:07 +05:30
  • 6aecccd2d6 test(chrome): resolve the secure selector on both matchers pj 2026-08-18 20:14:07 +05:30
  • b0895ef179 fix(spec): a secure selector names the password field on web pj 2026-08-18 20:14:01 +05:30