@extension.dev/mcp 5.3.1 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,7 @@
10
10
  "name": "extension-mcp",
11
11
  "source": "./",
12
12
  "description": "MCP tools for browser extension development: scaffold from 60+ templates, run the dev server with HMR, inspect the live DOM and logs, and publish store-ready builds for Chrome, Edge, and Firefox.",
13
- "version": "5.3.1",
13
+ "version": "5.5.0",
14
14
  "category": "development",
15
15
  "author": {
16
16
  "name": "Cezar Augusto"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "extension-mcp",
3
3
  "description": "MCP tools for browser extension development: scaffold from 60+ templates, run the dev server with HMR, inspect the live DOM and logs, and publish store-ready builds for Chrome, Edge, and Firefox. Ships /extension, /extension-add, /extension-debug, and /extension-publish commands.",
4
- "version": "5.3.1",
4
+ "version": "5.5.0",
5
5
  "author": {
6
6
  "name": "Cezar Augusto",
7
7
  "email": "boss@cezaraugusto.net",
package/CHANGELOG.md CHANGED
@@ -1,5 +1,94 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.5.0
4
+
5
+ The debug surfaces learn to point at things: tabs are targetable by
6
+ URL, extensions in lists have names, and eval works on the default
7
+ template by default.
8
+
9
+ ### Added
10
+
11
+ - `extension_dom_inspect` targets tabs by `tabUrl` (case-insensitive
12
+ URL substring, title as fallback). Exactly one match inspects it and
13
+ the result names the resolved target; zero or multiple matches return
14
+ the candidate targets instead of guessing. `listTargets: true` lists
15
+ the browser's live CDP page targets (targetId, url, title, type) with
16
+ the standing warning that a CDP targetId is NOT a chrome.tabs id.
17
+ - `extension_list_extensions` names its entries. The dev session's own
18
+ extension resolves to `name`, `version`, and `ownExtension: true`
19
+ (identified by recomputing Chrome's unpacked-extension id from the
20
+ ready contract's distPath) and sorts first; entries that cannot be
21
+ resolved carry a note saying why instead of a silent bare id. Other
22
+ extensions' contexts are never attached to or evaluated in.
23
+
24
+ ### Fixed
25
+
26
+ - `extension_eval` works on the default template by default. On
27
+ Chromium with an MV3 manifest the default context is now `page` (the
28
+ MV3 service worker CSP blocks background eval), disclosed in the
29
+ result as `defaultedContext` with the reason; explicit
30
+ `context: "background"` is unchanged and keeps its CSP explanation.
31
+ Firefox and MV2 defaults are untouched. A defaulted eval that lands
32
+ on an unreachable active tab returns a hint to navigate or pass
33
+ `url`/`tab`.
34
+ - Error remedies speak tool arguments, never CLI flags: the engine's
35
+ `--context page --tab <id>` prose is rewritten into `context:`/
36
+ `tab:`/`url:` vocabulary, with guards so ordinary prose is never
37
+ garbled by the rewriting.
38
+ - The debugging documentation's headline example now runs on the
39
+ default template (page-context eval); the background variant is
40
+ labeled MV2/Firefox, and the cross-browser matrix states per-context
41
+ eval support honestly with the MV3 CSP footnote.
42
+
43
+ ## 5.4.0
44
+
45
+ The DevX swarm's non-blocker friction clusters, cleared: waiting is
46
+ narrated, ports tell the truth, artifacts say where they are, and error
47
+ prose explains the extension instead of the engine.
48
+
49
+ ### Added
50
+
51
+ - `extension_wait` narrates its budget. `timeoutMs` is a documented
52
+ argument (default 45000, clamped 1000 to 50000; the legacy `timeout`
53
+ spelling stays as a deprecated alias), every result carries `budgetMs`
54
+ and `elapsedMs`, and a timeout says what WAS observed plus a
55
+ call-again hint instead of an opaque failure. The status splits
56
+ `compiled` from `browserAttached`, and a `noBrowser` build-only
57
+ session returns immediately with `buildOnly: true` and a plain
58
+ statement that no browser will ever attach.
59
+ - `extension_build` with `zip: true` returns `zipPath`, the absolute
60
+ path of the file the engine actually wrote (its name sanitizer strips
61
+ punctuation, so the filename rarely matches the project name), and
62
+ `zipSourcePath` for `zipSource: true`. When a zip cannot be located
63
+ after a successful build the result says so in `zipPathNote` instead
64
+ of omitting the field silently.
65
+
66
+ ### Fixed
67
+
68
+ - `extension_dev` reports the actually-bound port. The engine's
69
+ ready.json carries the bound port from its first stamp, so dev reads
70
+ it after the health window and re-registers the session with the true
71
+ port; when the stamp has not landed yet, dev claims no port at all
72
+ and says `extension_wait` reports the bound one. dev and wait now
73
+ share one source of truth and cannot disagree about the same session.
74
+ - `extension_build` warns when it writes over a live dev session's
75
+ dist: the dev browser may serve the production artifact until the
76
+ next recompile. The build is never blocked; the clobber is named.
77
+ - `extension_inspect` classifies `.zip` files as archives and excludes
78
+ them from `shippableSize` and the 10MB store gate (the package is not
79
+ payload), with an `archiveNote` explaining the exclusion.
80
+ - `extension_whoami` anchors its identity to the stored token that
81
+ `extension_login` minted: it does not follow the current working
82
+ directory, and the wording now says so.
83
+ - `extension_open` explains a popup-less extension instead of relaying
84
+ the engine error: a manifest pre-check reports that nothing sets
85
+ `action.default_popup`, lists the surfaces the manifest DOES declare,
86
+ and points at the right next verb. Headless popup errors state the
87
+ exact headed path (`extension_dev` with `replace: true` and
88
+ `EXTENSION_HEADLESS=0`).
89
+ - `extension_dev`'s `earlyOutput` drops V8 asm.js verdict lines (pure
90
+ noise); real errors are preserved.
91
+
3
92
  ## 5.3.1
4
93
 
5
94
  ### Added