Aquí hi ha 4 versions de ff-rdp, des de 6 de maig del 2026 fins a l’actual, 0.4.1. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.
| Versió | Data | Mida | Fitxers |
|---|---|---|---|
| 0.4.1Darrera versió | 5 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versióA small release from one user session's feedback: perf can bypass the HTTP cache with --cold, perf compare no longer hangs after the first URL and names the URL and step when it does time out, and navigate gained --wait-idle. No flags were removed or renamed.
Added
- perf summary|vitals|audit|compare --cold: bypasses the HTTP cache for that command's loads (Firefox's cacheDisabled, scoped to the command's connection), so total_transfer_size and the vitals reflect a network load instead of zeros. The envelope carries meta.cache: "bypassed". It does not touch service worker caches or warm TCP/TLS/DNS state. The non-compare subcommands reload the current page first.
- navigate --wait-idle [--idle-ms N] (default 500 ms, floor 200 ms): after the document commits, waits until no network event has arrived for the quiet window, then until in-viewport and non-lazy images are complete, all within --timeout-ms. Adds results.idle = {idle_at_ms, requests_observed, images_complete, lazy_images_deferred}. Runs before --wait-for/--wait-text/--wait-selector; conflicts with --no-wait and --with-network. Off-screen loading="lazy" images are never fetched by Firefox and are counted, not waited for. reload --wait-idle shares the same drain loop.
Changed
- perf compare: --help now says --timeout bounds each step (connect, navigate, readystate, collect), not the whole run. A readyState timeout is now a Timeout error (exit 124) instead of a User error.
- a11y --help describes a11y summary output as the object it actually returns (landmarks, headings, interactive), matching a11y summary --help.
Fixed
- perf compare hung on the second URL even at the default timeout: after navigateTo it read document.readyState on the old page (already complete) and sent the collect eval to that page's dead console actor. Each URL now uses the same commit wait as navigate, and timeouts name the URL and the step instead of a bare phase: recv.
Internal
- Mock-server fixtures can now be cached (Cache-Control: no-store is only the default); new live tests live_295_perf_cold and live_295_navigate_wait_idle; new recorded cacheDisabled fixture. Plan: kb/iterations/iteration-295-feedback-quick-fixes.md. |
| 0.4.0 | 4 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versióThe connection daemon is gone: every command opens its own Firefox connection, nothing to start or stop. New since 0.3.0: --with-page on every action, --query on every read command, a bare ff-rdp home view with a SessionStart hook, and fixes for Firefox 152 through 157.
Background on the reset: kb/research/step-back-2026-10-02.md.
Breaking / Removed
───────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────
Removed │Use instead
───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────
daemon status, daemon stop, --no-daemon, --daemon-timeout │nothing; run commands directly
───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────
cross-command event capture via the daemon │navigate URL --with-network, or network --follow > net.ndjson & started first
───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────
throttle command │navigate/reload --throttle slow-3g|fast-3g --block PATTERN (that load only)
───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────
emulate command │screenshot --color-scheme light|dark --media print|screen, navigate --user-agent
│UA
───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────
network --since │network --follow
───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────
inspect <actor-id> │inspect <js-expression> [--depth N]
───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────
--wait-timeout on wait and navigate │--timeout-ms (no alias)
───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────
screenshot --viewport-height, --dppx │screenshot --window-size WxH or launch --window-size WxH
───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────
meta.route, meta.daemon_fallback, eval meta.eval_path, click │gone from the envelope
entered │
───────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────
Also:
- Refs (e<N>) are stamped on elements and numbered per document. A ref from an earlier page fails with error_type: "stale_ref" instead of clicking the wrong thing.
- page-text is capped at 8000 characters (--full lifts it); storage values at 2048 (--max-value-chars 0).
- --fields / --sort with an unknown name exit 1.
- launch: results.auto_consent is now results.auto_consent_extension_installed; --replace only stops Firefoxes that ff-rdp launched.
- Bare ff-rdp exits 0 with the home view, not usage exit 2.
- ff-rdp-core: fronts/ merged into actors/; ObjectActor::own_property_names and set_custom_viewport_size removed.
Added
- Act and see: --with-page on navigate, click, type, reload, back, forward, scroll returns the resulting page (headings, reader excerpt, interactive refs, page.facts from infoboxes). --query TEXT narrows it.
- Find, don't guess: --query / --query-regex on page-text, snapshot, a11y summary, dom.
- Ambient context: bare ff-rdp shows browser, tabs and the current page; install-hook --claude|--codex adds a SessionStart hook.
- Network: navigate --with-network --headers/--security; network --source watcher|performance-api.
- Consent: consent accept / navigate --auto-consent handle Sourcepoint, BBC and consentmanager; cli |
| 0.3.0 | 11 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versióWhat's Changed
Other Changes
- iter-54: protocol correctness & robustness by @ractive in #57
- iter-55: daemon hardening, module borders & agent-friendly docs by @ractive in #58
- iter-56: dogfooding session 41 fixes (exit codes, defaults, schema docs) by @ractive in #59
- iter-57: dogfooding session 42 fixes by @ractive in #60
- iter-58: ff-rdp-debug skill (v0) + install-skill subcommand by @ractive in #61
- iter-59: auto-wait, pointer events, settle/wait-for, retry classification by @ractive in #62
- iter-60: compact responses, ARIA-tree dom, and ref-id selectors by @ractive in #63
- iter-61: script runner + recorder (JSON-first, YAML accepted) by @ractive in #64
- iter-61b: recorder CLI wiring + iter-61 review-feedback fixes by @ractive in #65
- kb: dogfood session 45 + iter-61c plan by @ractive in #66
- iter-61c: NDJSON contract + secret-leak fixes + recorder fidelity by @ractive in #67
- kb: dogfood session 46 + iter-61d plan by @ractive in #68
- iter-61d: recorder wait --timeout + version-info fallback + recorder formatting by @ractive in #69
- chore(iter-61b): mark status=done by @ractive in #70
- kb(iter-61g): add plan for navigate blocking + network buffer + sources fallback by @ractive in #71
- iter-61g: navigate blocking + nav-scoped network buffer + sources walker fallback by @ractive in #72
- iter-61h: fix headless screenshot on Firefox 149+ via chrome-scope fallback by @ractive in #73
- iter-61i: same-URL navigate, dom array shape, --stringify hint suppression by @ractive in #74
- iter-61j: dogfood-51 fixes (page-text, eval, computed, dom, navigate, network, screenshot) by @ractive in #75
- iter-61k: dogfood-52 fixes (screenshot, locale, network, computed, navigate, eval, dom, tabs) by @ractive in #76
- iter-61l: dogfood-53 fixes (A/B/F/G/H/K live-verified; C/D/N1/N2 deferred) by @ractive in #77
- feat(iter-61m): wire-level tracing and structured errors by @ractive in #78
- feat(iter-61n): daemon quick-fixes — watchTargets, boundary, mpsc, protocol version by @ractive in #79
- iter-61o: live-verify-by-default + mock watcher push events by @ractive in #80
- feat(iter-61p): actor registry + Front lifecycle + invalidation by @ractive in #81
- iter-61q: ResourceCommand bus foundation (themes A & B) by @ractive in #82
- feat(iter-61r): eval mapped.await fix + live test scaffolding by @ractive in #83
- iter-61s: typed protocol layer (spec modules + typed Front methods) by @ractive in #84
- iter-61t: wire Registry, ResourceCommand bus, ScopedGrip, Resource::Destroyed by @ractive in #85
- iter-61u: spec & front correctness (oneway, longstring, renames) by @ractive in #86
- iter-61v: navigate document-event gating, screenshot fallback drop, bus throttle 0 by @ractive in #87
- iter-61w: security hardening (auth, refstore, terminal escapes) + bulk-packet skip + kb refresh by @ractive in #88
- iter-61x: honest commits — close iter-61t..v claim/code gap + cleanup by @ractive in #89
- iter-61y: iteration discipline tooling (xtask, pre-commit hook, plan template) by @ractive in #90
- feat(iter-61z): discipline skill integration — claims-vs-code + AC fidelity by @ractive in #91
- feat(iter-62): page-map index — crawl, extract, emit JSON by @ractive in #92
- iter-63: daemon lock-recover sweep + file:// gating + table sanitization by @ractive in #93
- iter-64: vendor Consent-O-Matic XPI (remove AMO download) by @ractive in #94
- feat(iter-65): safe-write helper + --output-root containment by @ractive in #95
- iter-66: backfill iter-61w security regression tests by @ractive in #97
- feat(iter-67): sandbox script runner env vars + run depth/path containment by @ractive in #98
- iter-68: supply-chain CI gates + parser fuzz harnesses by @ractive in #99
- feat(iter-69): strict reply/event matching + shared transport helpers by @ractive in #100
- iter-70: dpr-as-string, parent-chain registry invalidation, kb refresh by @ractive in #101
- iter-71: ResourceCommand lifecycle — gc, Session slot, legacy listener probe by @ractive in #102
- i |
| 0.2.0 | 6 de maig del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versióWhat's Changed
Other Changes
- iter-51: connection diagnostics & onboarding (doctor, port collision, meta.connection) by @ractive in #54
- iter-52: input & eval ergonomics by @ractive in #55
- iter-53: stability fixes (navigate wait, daemon noise, screenshot fallback) by @ractive in #56
Full Changelog: v0.1.0...v0.2.0 |