Changelog
The format follows Keep a Changelog; versions follow SemVer within the limitations of a 0.x API (minor releases may make documented breaking changes).
[0.4.2] - 2026-10-24
Distributed through GitHub Releases
and npm: @apixly/jev-filter@0.4.2 with four native platform packages.
Registered as io.github.apixly-ai/jev-filter in the Official MCP Registry. Registration verifies namespace and package ownership; the listing does not establish security certification, traffic lift or adoption growth.
Added
- Add official MCP Registry metadata for the local, read-only stdio adapter, including a caller-selected workspace and a private inference credential.
- Declare the npm MCP namespace and Glama maintainers for directory ownership verification and distribution.
- Add manually triggered Registry publication with GitHub Actions OIDC. It checks the exact published npm identity, reconciles existing immutable versions, submits at most once, and verifies the exact Registry record while retaining uncertainty.
- Include deleted Registry versions in reconciliation and inspect read-only Actions history across runs and earlier attempts. Missing numbered history, unreadable journals or prior same-version publication block submission. The guard supports fewer than 100 workflow runs and 10 attempts per run, with 90-day artifacts; expired or incomplete evidence requires manual reconciliation. Workflow reruns may reconcile an exact active record, but cannot create a new submission.
[0.4.1] - 2026-10-04
Fixed
- Nested scroll decisions now receive observed container position, dimensions, remaining travel and clipped-control evidence. Clipped text no longer appears actionable; freshness, origin, irreversible and uncertainty gates stay intact.
- Native dropdown click compatibility is retained, including lazy option loading.
Validated with live inference
- 24 whole-agent raw/filtered runs: all selected ID sets correct; filtered 12/12 complete versus raw 11/12. Returned context falls 91.6–97.2%, while five of six scenario/model cells have higher latency and one cheap-model cell higher modeled cost.
- Paid record and published-interface checks include code/diff/query/triage, JS, official MCP, local extraction and survey. Interface E2E passes 13/13.
- Direct published-0.4-versus-patch browser comparison: nested completion 0/3 to 3/3, existing six tasks 12/18 in both arms. Six strict-policy review stops remain visible.
- A benchmark-only planner continuation handles reviews and independently rejected DONE, reaching 6/6 expected outcomes while preserving order confirmation gates. It is a reference integration, not a shipped automatic model fallback.
- Every earlier negative experiment and unknown-usage attempt is retained. Actual billing is unavailable; token-based Jev estimates and subscription/API-equivalent main-model usage are disclosed separately with dated rate sources.
[0.4.0] - 2026-10-04
Added
- One shared uncertainty policy for filtering, atomic requirements, candidate choice, and hosted operation/target/value selection. Failed metrics retain review reasons.
- Versioned analysis contracts with semantic fingerprints tied to rule and model.
- Opt-in bounded BM25 code recall and Python one-hop caller clues, preserving exact matches, source hashes and explicit coverage limits.
diff-reviewfor pinned commit ranges, staged or unstaged tracked changes with complete bounded before/after evidence and post-inference freshness checks.- A typed JavaScript/TypeScript client and four-tool read-only scoped MCP stdio adapter sharing the core, partial results, receipts and input/output budgets.
- Offline group-separated
evalfor saved probabilities, threshold selection and holdout reliability/coverage diagnostics. No model calls or fitted calibrator. - Deterministic
--verify-controlsfor unique observed current control states and guarded nested vertical scrolling. - Reproducible fixed-input behavior, retrieval and browser observation A/B reports, optional official System One Adapter comparison, and outcome-led bilingual pages.
Fixed
- Hosted failures preserve sanitized provider codes and unknown request usage, including retries, verifier failures and separate text-model accounting.
- Stale independent final observations cannot verify an earlier page as completed.
- Explicit roleless controls and labelled transparent native toggles are observable; current SELECT values and native/ARIA boolean states support verification.
triage --input -accepts bounded UTF-8 stdin for programmatic callers.- JS cancellation terminates the process tree with bounded escalation, waits for close before cleanup, and preserves analysis modes and exit-2 partial packets.
- Documentation folding renders Markdown tables, images and links consistently.
Compatibility and measured scope
- Analysis uncertainty remains opt-in. Hosted defaults stop with
needs_reviewbelow a 0.55 selected probability or 0.10 top-two margin; zero thresholds reproduce legacy behavior. Permission, freshness and independent verification remain separate. - MCP supports connection-scoped revisions 2024-11-05 through 2025-11-25; newer stateless protocol support, per-request in-flight cancellation and new-tab following are excluded.
- New A/B data is offline/scripted, with no semantic inference: extra recall lowers fixture precision and grows context/time; safer decisions increase review. Historical live measurements stay dated and are not 0.4 open-web success promises.
[0.3.0] - 2026-09-30
Added
- Hosted execution: Jev Filter now executes, not only filters. Jev chooses among actions the program enumerated; the program acts, re-checks every target first and verifies results.
browse: web goals over a standard-library DevTools client (private headless Chrome/Edge/ Chromium, or--cdp-portto attach) or a local Camofox server. One request per step asks the operation and a target per operation (design adapted from browser-use/jev-ultrafast, MIT). Named values (--value), optional text model (--text-model), origin limits, dialog handling,--verify-text/--verify-url/--verify-question,--dry-run, and pause/resume for irreversible actions with aconfirm_tokenbound to the page state and the action (--keep-open,--cdp-port/--target-id,--confirm).extract: structures a page into header-labelled table rows, blocks and links, then applies thequerycontract.desktop: the same loop in one Windows (UI Automation) or macOS (Accessibility) application, with an OCR fallback (Windows.Media.Ocr, Vision) for drawn UI and--listfor windows. Deterministic safety gates refuse terminals, credential managers and system settings, locked sessions and elevated targets, and stop on a STOP file or pointer in the top-left corner.survey: typed questions over JSONL/CSV/JSON/text inputs with optional screening, packed concurrent evaluation, code-side aggregation (distributions, crosstabs, examples, uncertain and failed IDs), pre-flight budgets (--max-usd,--max-requests),--labelscalibration and optional category proposal from a fixed-seed sample.doctorreports hosted-execution readiness. Thedesktopextra adds the desktop backends (install it from the Git tag; there is no PyPI package).- Recorded runs: an interactive replay page (browser, desktop, survey; English and Chinese),
GIFs and videos made from real runs with live Jev on the fixtures, and README usage examples
with real output.
python -m benchmarks.showcase.record/renderreproduce them. - Agent skill:
skills/jev-filter/references/hosted.mdexplains how to buildbrowse,desktop,extractandsurveyinputs (values files, survey specs, labels) and how to act on each output status. - Benchmarks:
python -m benchmarks.hosted --livewith synthetic browser, desktop and survey fixtures and program-checked outcomes; results inbenchmarks/results/2026-09-30-hosted.json.
Fixed
- Camofox is reached on
127.0.0.1instead oflocalhost, removing a ~2 s IPv6 fallback per request on Windows (locatetutorial 5059 ms -> 1192 ms). Benchmark tab cleanup sendsuserIdin the DELETE body as Camofox 2.4.8 requires. - The Windows elevation probe passes pointer-sized handles; an unreadable own token no longer
refuses every elevated target.
doctorno longer fails whenwinrtis not installed. needs_valueoutput keeps the full list of skippedfields. macOS window lookup sees applications launched after the first query.
Scope
- Hosted execution is a short-step executor with an observable outcome; open-web long tasks belong to a planning agent. macOS was exercised with a fake accessibility tree and on CI runners when Accessibility can be granted, not on a physical Mac.
[0.2.4] - 2026-09-24
Fixed
--input -and JSON output are read and written as UTF-8 regardless of the console codepage; on Windows (GBK) piped records previously failed withJSONDecodeError.- npm publication waits up to ~15 minutes per package for the registry to finish asynchronous processing (previously ~4 minutes, which aborted the 0.2.3 publication after each platform bundle); the workflow timeout is raised to 90 minutes accordingly.
[0.2.3] - 2026-09-24
Fixed
- The Python package runs natively on Windows:
poolno longer imports the POSIX-onlyresourcemodule, key files are read withoutO_NOFOLLOW/getuid(symlinks still rejected; Unix mode checks are POSIX-only), andexecdrains pipes with reader threads and kills the command tree withtaskkill /Twhereselect()andkillpgare unavailable. - The dashboard no longer sets
SO_REUSEADDRon Windows, where it let a second instance bind a busy port instead of raisingEADDRINUSE; busy-port fallback andPortInUsenow behave the same on every platform. - All text files (dashboard template, locator script,
--inputJSON, stats config/exports) are read and written as UTF-8 explicitly instead of the process locale, which is not UTF-8 on Windows by default. - CI runs the test suite on
windows-latestin addition to Linux and macOS. - Docs: native Windows installation points at the GitHub Release wheel or a git source install; there is no PyPI package.
[0.2.2] - 2026-09-23
Added
- The dashboard opens its authenticated localhost URL in the default browser on startup. Use
--no-openin headless environments. - Browser launch failures retain the running server and printable URL; browser launch runs separately from HTTP serving.
- Publication waits for npm asynchronous processing and package-index visibility before fresh installation, without repeating uploads.
[0.2.1] - 2026-09-23
Fixed
- Dashboard startup automatically chooses a free loopback port if the default 8765 is occupied.
- Explicit busy ports return an actionable
PortInUseerror;--port 0selects an available port. Invalid port values are rejected before binding. - Dashboard instances never share a listening port, including on Python versions with reusable-port defaults.
[0.2.0] - 2026-09-23
Added
- Opt-in, private SQLite usage ledger for CLI collection/filtering and typed-batch costs.
- Per-call input-token reduction and USD input-value estimates, Jev cost, price snapshots and explicit unknown/negative results.
- Local byte estimates, optional tiktoken text counts and opt-in official OpenAI/Anthropic counters.
- Read-only localhost dashboard with model/date/method filters, daily/tool breakdowns and filtered JSON/self-contained HTML exports.
- Isolated arithmetic, privacy, failure, API-adapter, concurrent-write and rendered desktop/mobile tests.
Scope
- Statistics estimate normalized candidate JSON versus the returned packet once; they do not claim whole-agent or subscription invoice savings.
- No change to semantic predicates, inference planning, authorization or result-cache policy.
0.1.0 - 2026-09-22
Added
- Portable packaged CLI and Python API with no private workspace dependencies.
- Context admission, typed selection/filtering, scoped evidence and failure retention.
- Code-search, browser locator, grouped JSON/JSONL triage, and caller-command wrapper.
- HTTPX connection reuse, bounded retries, up to 30 workers and no result cache.
- Optional Python-packaged JS/TS/Go grammar support; Python AST support is built in.
-
English/Chinese documentation, agent skill, reproducible benchmarks and release CI.
-
Native npm distribution for macOS and Linux x64/ARM64, including interpreter, parsers and pinned ripgrep.
- Visual bilingual README, data-derived charts, runnable recipes and agent integration instructions.
- Repository moved to Apixly; immutable release tags and restricted workflow permissions.