v2.13.0
Install and onboarding, hardened. Desktop apps told apart from browser tabs. Verdicts that say what they actually know.
Added
reticle_sessionsreports the runtime —web,electronortauri. Three sessions can share one origin and one project; nothing in the listing told them apart.initrefuses two machines up front — an unwritable checkout, and a resolved package manager the machine does not have. Both used to surface far from their cause.init --relaunchdecides what a restart should do, and refuses a session id with no transcript:--resumeon one opens an empty conversation that looks exactly like success.
Changed
reticle_act_sequencerefuses a sub-step assertion instead of dropping it.untilon a step was accepted, never evaluated, and reportedcompleted.initcontinues to the runtime phase when instrumentation needs a manual step, and an explicit--timeoutis now the budget rather than a floor.- Visual baselines are scoped to the renderer that produced them. An Electron window, a Tauri webview and a browser tab do not draw the same URL the same way.
initno longer turns on network body capture. Three deliberate ways in; none of them silent. (#705)
Fixed
- Route assertions work on a hash router — the default for a packaged desktop renderer. Six places read the document pathname, which is
/on every page. - An absence claim over a window that lost evidence is
unknown, not a pass. - A verdict that points at
coveragehas something there. Most visible on a one-way IPC send, which grades green for an outcome nothing can observe. mode:"interactive"is the actionable view again — adata-testidis not evidence that an element can be driven.- An interrupted
inittakes its dev server with it. Ctrl-C used to leave it holding a port indefinitely. - A backgrounded desktop window is not told to open a browser tab.
- The browser launcher reports its exit, not its spawn — on a headless box it starts fine and has nothing to open.
initnames the cause when a hostile machine stops it: no dev script, a dead dev server, a self-signed certificate, a bridge port held by a stranger, a monorepo with several apps, no browser, an unreachable registry.- A
package.jsonthat will not parse is a refusal, not a stack trace, and--appis read before the framework guess. - A CSP that would block the bridge is warned about at install —
connect-srcfalls back todefault-src, and only the former was checked. - Plus route/element consequences no longer losing to an unread body (#507), an empty
reticle_sessionsnaming a listening dev server (#604), the destructive-action guard leaving Log out and Payment options alone (#596), pairing tokens on three install paths (#610),serve --http-porthonoured or refused (#687), and hover refusing rather than faking:hover(#703).
Full detail: CHANGELOG
Thanks
@7487 · @adityabagla7 · @anisayakmitra-in · @DevChiniwala · @kkkhs · @kushals256 · @s0NRAYY · @shaurya703 · @vaibhav8a · @vanshsinghn1-spec