Skip to content

v0.6.10

Choose a tag to compare

@divshekhar divshekhar released this 18 Jun 14:34
ad2ff44

[0.6.10] — 2026-06-18

Added

  • Deterministic waiting — the settled predicate (packages/server). A new predicate
    { kind: "settled", quietMs } passes once network + structural-DOM activity has been quiet for
    quietMs (default 500ms); ambient dom.text/animation churn (count-ups, spinners) is ignored so
    an animated page can still settle. Usable in iris_wait_for and iris_assert, and composable inside
    allOf with the consequence you expect. Replaces fixed sleeps — the #1 cause of flaky agent tests.
  • iris_act_and_wait auto-settle (packages/server). Omit until and the tool waits for the page
    to settle instead of requiring a predicate — "act, then wait for quiet" is now a single zero-config
    call, the documented alternative to a sleep.
  • iris_query token controls (packages/server) — limit (cap returned descriptors; reports
    total + truncated so a trim is never silent) and count_only (return just the match count).
  • iris_network / iris_console token controls (packages/server) — limit (keep the most
    recent N matches, reporting total + droppedOldest) and a cost:{bytes,tokens} hint, matching the
    other read tools so the agent can self-budget everywhere.
  • iris_domain mustHold per flow (packages/server) — each flow now reports the success
    consequence that must hold for it (signal name / net URL), so an agent can answer "what are the
    critical flows and what must hold for each?" from the domain model alone.

Changed

  • Self-healing now verifies the consequence before persisting (packages/server). iris_flow_heal
    with apply:true re-replays the healed flow and re-asserts its success consequence; if a rebound
    locator resolves but the flow no longer satisfies its intent, the write is refused
    (status:consequence_broken, file untouched). It heals the locator, never the intent.

Fixed

  • Browser observers fully restore patched globals on teardown (packages/browser). The network,
    route, and console observers stored a bound copy and assigned it back on teardown, so window.fetch
    / history.pushState / console.* were never restored to their original identity. They now keep the
    true original for restore and a bound copy only for invocation.