Skip to content

v2.13.0

Choose a tag to compare

@divshekhar divshekhar released this 02 Sep 12:02
· 41 commits to main since this release

Install and onboarding, hardened. Desktop apps told apart from browser tabs. Verdicts that say what they actually know.

Added

  • reticle_sessions reports the runtimeweb, electron or tauri. Three sessions can share one origin and one project; nothing in the listing told them apart.
  • init refuses 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 --relaunch decides what a restart should do, and refuses a session id with no transcript: --resume on one opens an empty conversation that looks exactly like success.

Changed

  • reticle_act_sequence refuses a sub-step assertion instead of dropping it. until on a step was accepted, never evaluated, and reported completed.
  • init continues to the runtime phase when instrumentation needs a manual step, and an explicit --timeout is 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.
  • init no 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 coverage has 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 — a data-testid is not evidence that an element can be driven.
  • An interrupted init takes 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.
  • init names 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.json that will not parse is a refusal, not a stack trace, and --app is read before the framework guess.
  • A CSP that would block the bridge is warned about at installconnect-src falls back to default-src, and only the former was checked.
  • Plus route/element consequences no longer losing to an unread body (#507), an empty reticle_sessions naming 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-port honoured 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