Releases: ZephyrDeng/ego-jev
Releases · ZephyrDeng/ego-jev
Release list
v0.3.2 — fix table-cell label pairing
Fixed
parseSnapshotnaming blind spot on table-layout forms (HN-style: label text in the precedingtable_cell, not a sibling of the input). Unnamed textboxes all looked identical to Jev — it filledtitlethen couldn't tell which field wasurl, answerednonetwice and wentblocked. Unnamed nodes now take the nearest earlier-sibling subtree text, walking up ancestors.- Found by dogfooding: this exact path was exercised live submitting the project's own Show HN post. With the fix:
fill title → fill url → click submit → donein 4 steps / 3.8 s.
Tests
- New BDD regression case covering table-cell label pairing. 16/16 passing (
npm test).
v0.3.1 — timings attribution + verify recheck
What's new
Richer timings attribution
llmCallsnow records the served model, not just the requested alias: the typesafe backend reportsbody.model(e.g.jev-latest→jev-1.13.0), the gateway reportsproviderMetadata.gateway.routing.canonicalSlug. Response metadata rides back on the answers object under the exportedASK_METAsymbol.- Token usage captured per call (
rec.usage) and summed intotimings.tokens—formatTimingsshows41.2K tok inin the header. timings.plannernames the driving agent harness: passoptions.planner("devin/swe-2-high"or{agent, model}) for full attribution, or let env markers (AI_AGENT,CLAUDECODE,CODEX_HOME, …) identify the harness automatically.
jev timings · 3 steps · 3.90s total · llm 3 calls 2.26s (avg 753ms) · jev-1.13.0 · 30.9K tok in · planner devin/swe-2-high
Reliability
- New
verifyRecheckMs(default 400): when Jev claimsdonebutverifyfails, recheck once in the same step after a short grace — absorbs "done while navigation still commits" without spending another loop step + LLM call. state.elementsname/context clipped (80/60 chars): smaller Jev payload on heavy pages.- Fixed
option_retrycalls being recorded under the wrongkind.
Tests
- vitest BDD specs (
scripts/jev-loop.test.mjs): 15 cases covering every timings exit path, retry/option_retry kinds, served-model override, planner attribution, and verify recheck.npm test— pure Node, no browser or API key needed.
No changes to decision logic or confidence thresholds.
v0.3.0 — per-call latency timings
What's new
runJevLoopnow records where every step's time goes. All exit paths (done/escalate/blocked/max_steps) returnresult.timings:timings.llmCalls— one{seq, step, kind, ms, ok}per System One request, includingdecide-retryandoption_retrycalls, withERRflags on failurestimings.steps— per-step phase breakdown:snapshotMs/domMs/askMs/actMs/verifyMs/stepMstimings.totalMs/timings.llmMs— wall time and summed Jev latency
- New
formatTimings(result)export renders a compact per-step latency table to show the user after the loop:
jev timings · 3 steps · 155ms total · llm 3 calls 153ms (avg 51ms)
# op target snap dom llm act step
1 fill 2 0ms 1ms 41ms 0ms 42ms ▮▮▮▮▮▮▮▮
2 click Search 0ms 0ms 51ms 0ms 51ms ▮▮▮▮▮▮▮▮▮▮
3 done 0ms 0ms 61ms - 61ms ▮▮▮▮▮▮▮▮▮▮▮▮
- SKILL.md / reference.md document the timings structure; selftest prints the table.
No behavior changes to the decision logic — instrumentation only.
v0.2.1
What's in v0.2.1
Docs polish release — the skill itself is unchanged from v0.2.0.
- README homepage: banner, loop diagram, per-step latency table, sibling link to jev-ultrafast
- SKILL.md: explicit requirements — ego lite, the
ego-browserskill, andTYPESAFE_API_KEYorAI_GATEWAY_API_KEYin~/.config/ego-jev/secrets.env - Listed on skills.sh
Install
npx skills add ZephyrDeng/ego-jev
# or
gh skill install ZephyrDeng/ego-jevOffline smoke test (mock decider, no key):
cd skills/ego-jev && ego-browser nodejs < scripts/selftest.mjsFull Changelog: v0.2.0...v0.2.1
v0.2.0
Full Changelog: https://github.com/ZephyrDeng/ego-jev/commits/v0.2.0