pj
e9935a15b6
docs: document the llm generator and --generator flag
2026-07-30 22:34:50 +05:30
pj
fee248d08c
chore: ignore .playwright-mcp scratch output
2026-07-30 22:33:59 +05:30
pj
b82a27df4e
refactor(hierarchy): one Tree.Transitional, drop the duplicated cross-fade check
2026-07-30 22:33:46 +05:30
pj
1a893c570d
fix(replay): show a step's own violations in both panels, no next-step bleed
2026-07-13 16:00:42 +05:30
pj
626158fece
fix(replay): attribute deferred violations to the causing step, not detection
2026-07-13 16:00:42 +05:30
pj
cb480d5b28
fix(folio): move balance into the header, one compact line under the account name
2026-07-13 14:21:38 +05:30
pj
00a651b612
fix(folio): show balance as a compact one-line label
...
per review: one line, account-name-sized, e.g. "Balance: $0.00"
instead of a large balance card.
2026-07-13 14:14:32 +05:30
pj
5dd4230251
fix(replay): derive device space from screen extent, not first node
...
the first positive-bounds element is often a short status-bar node
(320x24 on android); using it gave a 320/24 aspect ratio that squashed
the screenshot overlay into a grey horizontal band. use the max extent
across elements (like the runner's screenBounds) instead.
2026-07-13 14:14:32 +05:30
pj
e6b9f6db3c
feat(folio): show current balance on the add-transaction screen
...
renders the account's balance (testTag TxnCurrentBalance) below the
account name, above the credit/debit toggle, so before/after screenshots
carry comparison data.
2026-07-13 12:55:38 +05:30
pj
133ce17d72
fix(verifier): skip llm enumeration on cross-fade frames
...
a navhost mid-transition carries >1 route *Screen in a collapsed
coordinate space; acting on it taps garbage (soft keyboard). real runs
showed the llm acting on 44% of steps being such frames. skip them so the
llm re-observes a settled frame next step.
2026-07-13 09:02:16 +05:30
pj
c9e0f6a366
fix(runner): accept chosen_action echo that carries the weight suffix
...
real runs showed the model copies the whole numbered line including the
trailing (w34) weight annotation, so strict-skip rejected ~91% of picks
and the llm was paralyzed. strip the weight suffix before comparing. also
nudge the prompt to stress-test repeated submissions (idempotency).
2026-07-13 08:22:01 +05:30
pj
938b2cb714
test(runner): cover weight-suffixed echo and stripWeightSuffix
2026-07-13 08:21:49 +05:30
pj
b65b8373e6
fix(verifier): label editable fields by hint, not the typed value
...
an editable field's own text is its transient content; prefer the hint
so the field is named by purpose and the label stays stable.
2026-07-13 08:21:49 +05:30
pj
9845b89173
feat(folio): drive spec.ts under --generator llm; drop spec-llm.ts
2026-07-13 07:27:51 +05:30
pj
98483926a6
refactor(verifier): drop the superseded AllCandidates enumeration
2026-07-13 07:25:02 +05:30
pj
17a0cd5fe5
test(runner): cover choice schema, strict-skip, and setup precedence
2026-07-13 07:23:21 +05:30
pj
37bdf59cbd
feat(runner): llm picks one number from weighted candidates
...
drop the seeded-root call for a setup-only precedence path, render a
numbered weighted candidate list, pin a reasoning-first choice schema,
strict-skip when chosen_action does not echo the numbered entry, and let
the model supply typed values (corpus fallback when empty).
2026-07-13 07:23:21 +05:30
pj
75aa1eefd6
feat(trace): record llm choice number and chosen_action echo
2026-07-13 07:23:21 +05:30
pj
0ead53757c
refactor(llmclient): make JSONSchema.Schema raw json for pinned field order
2026-07-13 07:23:21 +05:30
pj
08e588a79f
test(verifier): cover SetupAction setup-only precedence
2026-07-13 07:16:57 +05:30
pj
2dea0e57d4
feat(verifier): add SetupAction to walk setup without the seeded root
2026-07-13 07:16:57 +05:30
pj
bf983266ed
test(verifier): cover candidate enumeration walk
2026-07-13 07:14:59 +05:30
pj
dcbe9e1a00
feat(verifier): enumerate llm candidates by walking actionsRoot
...
collect-walk the weighted action tree: recurse weighted branches
accumulating selection probability, call authored leaves once for
concrete actions, enumerate builtins per element. label controls by
visible text (borrowing descendant text), fold gestures into directional
scrolls over scrollable containers, drop disabled, dedup descriptions.
2026-07-13 07:14:59 +05:30
pj
46526f8014
test: cover --generator flag parsing and pickSources gating
2026-07-13 07:07:06 +05:30
pj
5b7a71358c
feat(cmd): add --generator llm|seeded flag
2026-07-13 07:07:06 +05:30
pj
c7402e8f7d
feat(runner): gate llm source on --generator flag
2026-07-13 07:07:06 +05:30
pj
dcf7c4a02a
feat(verifier): read llm config off globalThis.generator
2026-07-13 07:05:11 +05:30
pj
aa67d7ddcf
feat(bundler): map generator export to globalThis.generator
2026-07-13 07:02:56 +05:30
pj
c38c21dea1
docs(folio): describe app in llm spec instructions
2026-07-13 07:02:17 +05:30
pj
637f89ab08
feat(runner): append spec instructions to llm system prompt
2026-07-13 07:02:17 +05:30
pj
d9d206ee00
feat(verifier): read llm instructions off config
2026-07-13 07:02:17 +05:30
pj
5fb01af59c
feat(spec): llm() accepts optional instructions
2026-07-13 07:02:17 +05:30
pj
25ddf7d29e
revert(runner): drop selector-first tap; broke path/testTag selectors
2026-06-18 11:56:28 -04:00
pj
39ccd5c7bf
fix(runner): tap by selector to survive layout shift after observe
2026-06-18 11:50:43 -04:00
pj
1916bd9eea
feat(runner): stamp llm ranked list and chosen rank on trace
2026-06-18 11:48:51 -04:00
pj
84adc0f177
feat(trace): record llm ranked list and chosen rank
2026-06-18 11:47:39 -04:00
pj
fed3345325
fix(runner): explain action kinds in llm prompt to stop swipe loops
2026-06-12 11:18:03 +05:30
pj
7a7672a354
docs: add pr style rules to claude.md
2026-06-12 10:53:08 +05:30
pj
ede495d935
docs: both api keys, example model gpt-5.4-nano
2026-06-12 10:52:14 +05:30
pj
3ca0e9a5b9
refactor(runner): rename openrouter package to llmclient
2026-06-12 10:52:14 +05:30
pj
8eabaaa842
feat(llmclient): support OPENAI_API_KEY, openrouter wins
2026-06-12 10:52:14 +05:30
pj
2bd40cc4ee
docs(folio): document the LLM action backend run
2026-06-12 10:37:58 +05:30
pj
db4113ce37
docs(folio): add llm action-backend example spec
2026-06-12 10:37:58 +05:30
pj
da4a6f1d9f
test(runner): cover llmSource selection, mapping, downscale
2026-06-12 10:36:19 +05:30
pj
8164971e0e
feat(runner): wire llmSource selection and trace stamping
2026-06-12 10:33:20 +05:30
pj
ad6b78c9bf
feat(runner): llmSource selects actions via OpenRouter
2026-06-12 10:33:20 +05:30
pj
bae2ca6e8d
feat(runner): thread step screenshot into PushSnapshot
2026-06-12 10:29:56 +05:30
pj
1b3545abb2
feat(trace): record action Source and LLMReasoning
2026-06-12 10:29:09 +05:30
pj
58c9bb42e1
test(verifier): cover AllCandidates, LLMConfig, SampleInput
2026-06-12 10:28:54 +05:30
pj
276734cad0
feat(verifier): LLM accessors — candidates, config, sampler
2026-06-12 10:28:54 +05:30