You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[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_domainmustHold 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.