v4.9.0
A second pass from the persona swarm, closing the gaps 4.8.0 left and the top
new blockers it surfaced.
- Honest
extension_manifest_validate. It now scans the project source for
permission-gatedchrome.*/browser.*calls and flags any the manifest does
not declare — an API used without its permission isundefinedat runtime and
crashes the context, the exact case where validate used to reportvalid:true.
The headline is now honest (valid:false+buildBlocking:trueon any error),
and it accepts singularbrowseras an alias forbrowsers. extension_opencan navigate a tab. Pass aurl(Chromium, via CDP) to
drive a content-script test page, awebNavigationtarget, or the popup as a
page (chrome-extension://<id>/popup.html) — the loop the surface-only open
could not do.targetis accepted as an alias forsurface.extension_stopactually reaps the session. It now terminates the dev CLI
and both browser families (gecko profile + chromium--load-extension, under
the project's dist) and refuses to reportstopped:truewhile any survive.extension_waitwon't lie about a dead session. Aready.jsonwhose pid
is dead now returnsstatus:"stale"instead ofready, so you don't walk into
a reload/eval that fails with a misleading control-channel error.- Dropped-channel errors name the real cause. A
1006/ "no control channel"
now detects an exited dev server (stale ready.json + dead pid) and says so,
instead of asking "is the session started with allowControl?" when it was. extension_doctorsurfaces recent error-level logs as aruntime-errors
check (so a background throwing on every event isn'thealthy:true), keeps the
project-local engine version in project mode, and flags when that engine
differs from a pinnedEXTENSION_MCP_CLI_VERSION.extension_buildlists declared entrypoints in its success output, so a
content script no longer reads as "didn't build".extension_createforces non-interactive git (GIT_TERMINAL_PROMPT=0) so a
credential prompt can't hang the template download, retries once on a transient
network/timeout failure (cleaning the partial dir first), reports a download
failure as such instead of "choose a valid template name", and warns when the
scaffold'sextension@latestpin will win over your pinned CLI.- Eval/inspect error guidance now speaks MCP JSON args (
context,tab,url)
instead of CLI flags.