@rolepod/uiproof 0.4.0 → 0.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
3
  "name": "rolepod-uiproof",
4
- "description": "Multi-platform UI / mobile automation MCP server + 4 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e) for AI coding agents.",
4
+ "description": "Multi-platform UI / mobile automation MCP server + 5 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e, check-errors) for AI coding agents.",
5
5
  "owner": {
6
6
  "name": "nuttaruj",
7
7
  "url": "https://github.com/nuttaruj"
@@ -10,8 +10,8 @@
10
10
  {
11
11
  "name": "rolepod-uiproof",
12
12
  "source": "./",
13
- "description": "15 MCP tools (10 atomic browser/mobile primitives + 5 composite workflows) + 4 user-invocable skills. Web production-ready via Playwright; mobile (iOS/Android) via Appium scaffolded — see `rolepod-uiproof doctor` for readiness.",
14
- "version": "0.4.0",
13
+ "description": "26 MCP tools (21 atomic browser/mobile primitives + 5 composite workflows) + 5 user-invocable skills. v0.5 completes the UI verification surface — console + network observability, hover/drag/fill_form/upload/dialog, runtime emulation, multi-page, gated JS eval — replacing chrome-devtools-mcp and playwright-mcp for UI testing. Web production-ready via Playwright; mobile (iOS/Android) via Appium scaffolded — see `rolepod-uiproof doctor` for readiness.",
14
+ "version": "0.5.0",
15
15
  "author": {
16
16
  "name": "nuttaruj"
17
17
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rolepod-uiproof",
3
- "version": "0.4.0",
4
- "description": "Multi-platform UI/mobile automation for AI agents — 4 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e) + MCP server with 15 tools. v0.3 adds AppiumEngine scaffolding for iOS/Android, scope={ref} audit, replay CLI, ddmin minimization, doctor + install:mobile.",
3
+ "version": "0.5.0",
4
+ "description": "Multi-platform UI/mobile automation for AI agents — 5 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e, check-errors) + MCP server with 26 tools. v0.5 completes the UI verification surface: console + network observability, hover/drag/fill_form/upload/dialog, runtime emulation, multi-page support, gated JS eval replacing chrome-devtools-mcp and playwright-mcp for UI testing.",
5
5
  "author": {
6
6
  "name": "nuttaruj",
7
7
  "url": "https://github.com/nuttaruj"
@@ -19,7 +19,7 @@
19
19
  "mcpServers": {
20
20
  "rolepod-uiproof": {
21
21
  "command": "npx",
22
- "args": ["-y", "@rolepod/uiproof"],
22
+ "args": ["-y", "rolepod-uiproof"],
23
23
  "env": {}
24
24
  }
25
25
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rolepod-uiproof",
3
- "version": "0.4.0",
4
- "description": "Multi-platform UI/mobile automation for AI agents — 4 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e) + MCP server with 15 tools. v0.3 adds AppiumEngine scaffolding for iOS/Android; web is production-ready via Playwright.",
3
+ "version": "0.5.0",
4
+ "description": "Multi-platform UI/mobile automation for AI agents — 5 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e, check-errors) + MCP server with 26 tools. v0.5 completes the UI verification surface: console + network observability, hover/drag/fill_form/upload/dialog, runtime emulation, multi-page, gated JS eval.",
5
5
  "author": {
6
6
  "name": "nuttaruj",
7
7
  "url": "https://github.com/nuttaruj"
@@ -21,17 +21,11 @@
21
21
  "visual-regression"
22
22
  ],
23
23
  "skills": "./skills/",
24
- "mcp_servers": {
25
- "rolepod-uiproof": {
26
- "command": "npx",
27
- "args": ["-y", "@rolepod/uiproof"],
28
- "env": {}
29
- }
30
- },
24
+ "mcpServers": "./.mcp.json",
31
25
  "interface": {
32
26
  "displayName": "Rolepod UIProof",
33
27
  "shortDescription": "UI verification, a11y audits, visual diff, e2e scaffolding — for AI coding agents.",
34
- "longDescription": "rolepod-uiproof ships an MCP server with 15 tools (10 atomic + 5 composite) and 4 user-invocable skills (/verify-ui, /audit-a11y, /visual-diff, /scaffold-e2e). Web is fully supported via Playwright; mobile (iOS/Android via Appium) lands in v0.3.",
28
+ "longDescription": "rolepod-uiproof ships an MCP server with 26 tools (21 atomic + 5 composite) and 5 user-invocable skills (/verify-ui, /audit-a11y, /visual-diff, /scaffold-e2e, /check-errors). Web is fully supported via Playwright; mobile (iOS/Android via Appium) supports basic input. v0.5 completes the UI verification surface — console logs, network requests, HAR/video/trace capture, runtime emulation, multi-page popups.",
35
29
  "developerName": "nuttaruj",
36
30
  "category": "Productivity",
37
31
  "capabilities": ["Read", "Write", "Bash"],
package/.cursor/mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "rolepod-uiproof": {
4
4
  "command": "npx",
5
- "args": ["-y", "@rolepod/uiproof"],
5
+ "args": ["-y", "rolepod-uiproof"],
6
6
  "env": {}
7
7
  }
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "rolepod-uiproof",
3
3
  "displayName": "Rolepod UIProof",
4
- "version": "0.4.0",
5
- "description": "Multi-platform UI / mobile automation MCP server + 4 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e) for AI coding agents. Web production-ready via Playwright; mobile (iOS/Android via Appium) scaffolded.",
4
+ "version": "0.5.0",
5
+ "description": "Multi-platform UI / mobile automation MCP server + 5 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e, check-errors) for AI coding agents. v0.5 completes the UI verification surface: console + network observability, hover/drag/fill_form/upload/dialog, runtime emulation, multi-page, gated JS eval — replacing chrome-devtools-mcp and playwright-mcp.",
6
6
  "author": {
7
7
  "name": "nuttaruj"
8
8
  },
package/CHANGELOG.md CHANGED
@@ -7,6 +7,127 @@ release.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.5.0] — 2026-05-27
11
+
12
+ **Complete UI verification surface — one MCP replaces chrome-devtools-mcp
13
+ and playwright-mcp for UI testing use cases.**
14
+
15
+ Tool count: 15 → 26 (atomic 10 → 21, composite 5 unchanged). The five
16
+ "out of scope for `uiproof`" families (Lighthouse, performance traces,
17
+ heap snapshots, extensions, third-party page tools) are intentionally
18
+ **not** added — those belong to future `rolepod-perfproof` and
19
+ `rolepod-secproof` MCPs.
20
+
21
+ ### Added — 11 new atomic tools
22
+
23
+ Cross-platform (work on chromium/firefox/webkit; mobile stubs throw
24
+ `engine_error` until gestures land):
25
+
26
+ - `rolepod_browser_hover` — `locator.hover()`; refs stay valid
27
+ - `rolepod_browser_drag` — `locator.dragTo()`
28
+ - `rolepod_browser_fill_form` — batch input/select/checkbox/radio
29
+ - `rolepod_browser_upload_file` — `locator.setInputFiles()`, abs path required
30
+
31
+ Web-only (cast to `PlaywrightEngine`):
32
+
33
+ - `rolepod_browser_handle_dialog` — pre-arm one-shot accept/dismiss
34
+ - `rolepod_browser_console` — list/filter/clear ring-buffered console
35
+ messages (1000-entry cap, errors+warnings default)
36
+ - `rolepod_browser_network` — list/filter network requests, optional HAR export
37
+ - `rolepod_browser_set_env` — runtime viewport / offline / geolocation /
38
+ color_scheme / reduced_motion / extra_headers / network_throttle (CDP) /
39
+ cpu_throttle (CDP)
40
+ - `rolepod_browser_evaluate` — arbitrary JS in page context.
41
+ **Disabled by default** — opt in via `ROLEPOD_ALLOW_EVAL=1` env var
42
+ - `rolepod_browser_pages` — list pages in active context (popups,
43
+ target=_blank, OAuth windows)
44
+ - `rolepod_browser_switch_page` — set active page index
45
+
46
+ ### Added — verify_ui_flow capture lifecycle (impl)
47
+
48
+ The `capture` array has accepted these values since v0.1, but only
49
+ `screenshot` was wired. v0.5 fills in the rest:
50
+
51
+ - `console` → `{runDir}/console.json`
52
+ - `har` → `{runDir}/network.har`
53
+ - `video` → `{runDir}/videos/*.webm`
54
+ - `trace` → `{runDir}/trace.zip` (view with `npx playwright show-trace`)
55
+ - `a11y_tree` → `{runDir}/a11y_tree.json`
56
+
57
+ ### Added — 8 new verify_ui_flow step kinds
58
+
59
+ `hover`, `drag`, `fill_form`, `upload`, `dialog`, `set_env`,
60
+ `switch_page`, `evaluate`. All get first-class codegen in
61
+ `scaffold_e2e` for playwright-test and pytest+selenium.
62
+
63
+ ### Added — 4 new verify_ui_flow expect kinds
64
+
65
+ - `no_console_errors` — filter level=error, drop excludes, count must be 0
66
+ - `no_failed_requests` — filter `failure || status>=400` (or `>=500`
67
+ when `allow_4xx`), drop excludes, count must be 0
68
+ - `request_made` — URL regex + optional method must match `min_count`
69
+ (default 1) times
70
+ - `response_status` — URL regex + exact status code must match
71
+
72
+ ### Added — multi-page support
73
+
74
+ A session is now a `context` (was a single page). Popups and
75
+ `target="_blank"` links are auto-tracked. Use `browser_pages` to list,
76
+ `browser_switch_page` to activate. Default active = page 0.
77
+
78
+ ### Added — new skill `/check-errors`
79
+
80
+ Thin wrapper over `rolepod_verify_ui_flow` with strict assertions baked
81
+ in. Use case: PR-gate or post-merge smoke.
82
+
83
+ ### Changed — `/verify-ui` and `/scaffold-e2e` skills
84
+
85
+ Documented every new step / expect / capture kind. Default suggestion
86
+ in `/verify-ui`: include `no_console_errors` and `no_failed_requests`
87
+ in `expect` for any user-visible flow.
88
+
89
+ ### Changed — Engine interface
90
+
91
+ Adds four cross-platform input methods: `hover`, `drag`, `fillForm`,
92
+ `uploadFile`. `OpenOptions.capture` accepts `{ har, video, trace }`.
93
+ `WebSession.page` renamed to `mainPage`; internal call sites go through
94
+ `activePage(s)`.
95
+
96
+ ### Non-changes (intentional)
97
+
98
+ - `screencast_*` not added — Playwright `trace.zip` is strictly better.
99
+ - `click_at` not added — use refs from `snapshot`.
100
+ - Lighthouse not added — axe-core covers a11y.
101
+ - Performance traces / heap snapshots not added — `rolepod-perfproof` scope.
102
+ - Extension management not added — out of scope.
103
+
104
+ ### Migration from 0.4
105
+
106
+ Pure additions; no behavioral changes on existing tools or
107
+ step/expect/capture kinds. Existing replay bundles play back unchanged.
108
+
109
+ ## [0.4.1] — 2026-05-27
110
+
111
+ ### Fixed
112
+
113
+ - **MCP server failed to start via `npx -y @rolepod/uiproof`** — npx
114
+ resolves a scoped package's default executable by the *short* name
115
+ (`uiproof`, after the `/`), but our `bin` field only defined
116
+ `rolepod-uiproof`. The mismatch caused `sh: rolepod-uiproof: command
117
+ not found` and an MCP `-32000` reconnect error in Claude Code,
118
+ Cursor, etc. All `mcpServers` entries (`.mcp.json`, `.cursor/mcp.json`,
119
+ `.claude-plugin/plugin.json`, `plugins/rolepod-uiproof/.mcp.json`)
120
+ now invoke `npx -y rolepod-uiproof`, which npx resolves directly by
121
+ bin name from the registry.
122
+
123
+ ### Added
124
+
125
+ - Tool `title` and `annotations` (`readOnlyHint` / `destructiveHint` /
126
+ `idempotentHint` / `openWorldHint`) on all 15 tools, per the MCP
127
+ 2025-11-25 spec. Clients use these hints to render friendlier names
128
+ in the picker and to auto-approve read-only calls vs. prompting
129
+ harder on destructive ones.
130
+
10
131
  ## [0.4.0] — 2026-05-24
11
132
 
12
133
  **Breaking: project renamed `rolepod-mcp` → `rolepod-uiproof`.**
package/README.md CHANGED
@@ -1,25 +1,29 @@
1
1
  # rolepod-uiproof
2
2
 
3
- **rolepod-uiproof gives Claude Code, Cursor, Codex CLI, and Gemini CLI a real browser/mobile driver — so the AI can actually click through your UI, audit accessibility, diff screenshots, and scaffold e2e tests instead of guessing.**
3
+ **rolepod-uiproof gives Claude Code, Cursor, Codex CLI, and Gemini CLI a real browser/mobile driver — so the AI can actually click through your UI, audit accessibility, check console errors, inspect network requests, diff screenshots, and scaffold e2e tests instead of guessing.**
4
4
 
5
- One MCP server, one tool surface, four skills you invoke from chat. Web is production-ready via Playwright; iOS and Android use Appium (same client as alumnium — needs a local Appium daemon + simulator/emulator, or a real device). No internal LLM — your Lead agent drives every action.
5
+ One MCP server, one tool surface, five skills you invoke from chat. Web is production-ready via Playwright; iOS and Android use Appium (same client as alumnium — needs a local Appium daemon + simulator/emulator, or a real device). No internal LLM — your Lead agent drives every action.
6
+
7
+ **v0.5 completes the UI verification surface — replacing `chrome-devtools-mcp` and `playwright-mcp` for UI testing.** 26 tools total (21 atomic + 5 composite). New in v0.5: console + network observability, hover / drag / fill_form / upload / dialog, runtime emulation (resize / offline / geolocation / color_scheme / network + CPU throttle), multi-page support, gated JS eval, and impl of HAR / video / trace capture in `/verify-ui`.
6
8
 
7
9
  ## What it helps with
8
10
 
9
- - **Verify a UI change in seconds.** `/verify-ui` opens a real browser, runs your steps, checks your assertions, saves a screenshot + replay bundle.
11
+ - **Verify a UI change in seconds.** `/verify-ui` opens a real browser, runs your steps, checks your assertions, saves a screenshot + replay bundle (optionally HAR + video + trace + console logs).
12
+ - **Gate merges on "no regressions during this flow".** `/check-errors` runs a flow with strict `no_console_errors` + `no_failed_requests` assertions baked in. PR-gate or post-merge smoke check.
10
13
  - **Catch a11y regressions before merge.** `/audit-a11y` runs axe-core against WCAG-A / AA / AAA and returns issues grouped by severity, with WCAG references and fix links.
11
14
  - **Lock down the visual contract.** `/visual-diff` captures a screenshot and compares against a named baseline under `./.rolepod-uiproof/baselines/`. First call seeds; subsequent calls diff.
12
- - **Turn an interactive verify run into a real test file.** `/scaffold-e2e` transcribes a replay bundle into Playwright Test, Vitest+Playwright, or pytest+selenium.
15
+ - **Turn an interactive verify run into a real test file.** `/scaffold-e2e` transcribes a replay bundle into Playwright Test, Vitest+Playwright, or pytest+selenium — with first-class codegen for every step + expect kind.
13
16
  - **Reproduce + minimize a bug deterministically.** `/verify-ui` with `mode: "reproduce"` runs ddmin step-elimination to find the shortest still-reproducing sequence.
14
17
 
15
- ## The four skills
18
+ ## The five skills
16
19
 
17
20
  | Skill | Wraps | What it does |
18
21
  |---|---|---|
19
- | `/verify-ui` | `rolepod_verify_ui_flow` | Drive a session through steps, evaluate assertions, save evidence + replay bundle. `mode: assert` (default) or `reproduce` with optional ddmin minimization. |
22
+ | `/verify-ui` | `rolepod_verify_ui_flow` | Drive a session through steps, evaluate assertions (incl. console errors / failed requests / specific request made / response status), save evidence (screenshot / console / HAR / video / trace / a11y_tree) + replay bundle. `mode: assert` or `reproduce` with optional ddmin minimization. |
23
+ | `/check-errors` | `rolepod_verify_ui_flow` | Thin wrapper with strict `no_console_errors` + `no_failed_requests` baked in. Use as PR-gate or post-merge smoke. |
20
24
  | `/audit-a11y` | `rolepod_audit_a11y` | axe-core audit at WCAG-A / AA / AAA. `scope: "page"` or `scope: { ref }`. Markdown or JSON report. |
21
25
  | `/visual-diff` | `rolepod_visual_diff` | Pixel diff against a named baseline. Auto-seeds on first call. Configurable threshold + pixelmatch sensitivity. |
22
- | `/scaffold-e2e` | `rolepod_scaffold_e2e` | Generate a runnable test file from a scenario + optional replay bundle. Three target frameworks. |
26
+ | `/scaffold-e2e` | `rolepod_scaffold_e2e` | Generate a runnable test file from a scenario + optional replay bundle. Three target frameworks. v0.5 codegen handles every step + expect kind. |
23
27
 
24
28
  Every skill is **single-backend** (D-024) — it calls the rolepod-uiproof server and only the rolepod-uiproof server. If the server is unavailable, the skill fails with a clear diagnostic. Multi-backend routing belongs in the parent [`rolepod`](https://github.com/nuttaruj/rolepod) plugin's phase skills, not here.
25
29
 
@@ -92,7 +96,7 @@ Use this when your tool reads a standard `mcpServers` config (most non-CLI MCP c
92
96
  "mcpServers": {
93
97
  "rolepod-uiproof": {
94
98
  "command": "npx",
95
- "args": ["-y", "@rolepod/uiproof"]
99
+ "args": ["-y", "rolepod-uiproof"]
96
100
  }
97
101
  }
98
102
  }