Skip to content

Commit dc4eb3d

Browse files
committed
docs: update README, CHANGELOG, CLAUDE.md for v0.22.0
- Tool count 51 → 52, test count 144 → 148 - Added cdp_set_shared_value to CDP tools list - New benchmark row (Glass UI stories) - New troubleshooting entries (NativeWind corruption, Reanimated scroll) - Full CHANGELOG for v0.22.0 with all 13 fixes + security update - Added expo-blur to tested libraries
1 parent a5b7735 commit dc4eb3d

3 files changed

Lines changed: 43 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,36 @@ All notable changes to rn-dev-agent will be documented in this file.
44

55
Format follows [Keep a Changelog](https://keepachangelog.com/).
66

7+
## [0.22.0] — 2026-04-16
8+
9+
### Added
10+
- **`cdp_set_shared_value` tool** — Drive Reanimated SharedValue animations by testID for proof captures when gesture/scroll synthesis is unavailable. Walks the React fiber tree, finds the named prop, sets `.value` on the JS thread (D623).
11+
- **Fast-runner auto-restart** — When fast-runner dies mid-session, `tryFastRunner` automatically attempts one restart using the session's deviceId. `isFastRunnerAvailable()` now probes process liveness via `kill(pid, 0)` instead of just checking state file (D620).
12+
- **Reload counter + NativeWind corruption warning**`cdp_status` warns after 5+ `cdp_reload` calls in a session: "NativeWind stylesheet may be corrupted" (D622).
13+
- **Auto-open device session in Phase 5.5** — The 8-phase pipeline skill now mandates opening a device session at verification start, preventing fallback to bash commands (D619).
14+
- **9 new unit tests** for deviceId parsing — covers all 4 agent-device response shapes, UDID regex validation, priority ordering, and edge cases. Test count: 139 → 148 (D625).
15+
16+
### Fixed
17+
- **B103: `cdp_navigate` false success** — Fallback navigation path now verifies the target screen exists in the navigation state after dispatch. Returns error if screen not found in any navigator (D616).
18+
- **B106: `device_scroll`/`device_swipe` deadlock on Reanimated screens** — Routes through fast-runner HID synthesis when available, bypassing agent-device daemon's `waitForIdle` which deadlocks with Reanimated worklets (D610).
19+
- **B107: `deviceId` parsing for agent-device v0.8.0** — Parses `data.device_udid`, `data.id`, and `data.device.id` (when object). Prefers `device_udid` over generic `id`. Validates against UDID regex before `ensureFastRunner` (D611, D618).
20+
- **R2: `device_screenshot` ignores requested path** — Fast-runner screenshot tier now copies the captured PNG to the requested output path instead of always writing to `/tmp` (D617).
21+
- **R5: Scroll amount semantics diverge** — Dropped `* 2` factor in fast-runner scroll computation to match agent-device daemon's interpretation of `amount` (D621).
22+
- **MCP-only proof capture enforcement** — Added "Never use `xcrun simctl` for screenshots" and "Never use `sleep` for settling" to skill boundaries (D624).
23+
24+
### Security
25+
- **hono 4.12.12 → 4.12.14** — Fixes HTML injection in JSX SSR (Dependabot #5). Transitive dep of `@modelcontextprotocol/sdk`.
26+
27+
### Changed
28+
- MCP tool count: 51 → 52 (`cdp_set_shared_value`). CDP tools: 24 → 25.
29+
- Plugin version: 0.21.1 → 0.22.0. MCP server: 0.16.0 → 0.17.0.
30+
- Decisions logged: D610-D625 (16 new).
31+
32+
## [0.21.1] — 2026-04-15
33+
34+
### Fixed
35+
- **MCP tools unavailable in spawned subagents** (GH #31) — Agents split into protocol playbooks (parent-session-only) and spawnable workers.
36+
737
## [0.19.2] — 2026-04-13
838

939
### Fixed

CLAUDE.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,9 @@ Fallback: `xcrun simctl` (iOS) + `adb` (Android) for device lifecycle when agent
7878

7979
### MCP Server (cdp-bridge)
8080

81-
51 tools exposed via MCP:
81+
52 tools exposed via MCP:
8282

83-
**CDP tools** (24 — React internals via Chrome DevTools Protocol over WebSocket):
83+
**CDP tools** (25 — React internals via Chrome DevTools Protocol over WebSocket):
8484
- `cdp_status` — health check with domain capabilities + reconnect state
8585
- `cdp_connect` / `cdp_disconnect` / `cdp_targets` — connection management
8686
- `cdp_evaluate` — arbitrary JS execution in Hermes
@@ -95,6 +95,7 @@ Fallback: `xcrun simctl` (iOS) + `adb` (Android) for device lifecycle when agent
9595
- `cdp_cpu_profile` — CPU profiling with hot function ranking
9696
- `cdp_object_inspect` — handle-based lazy object inspection
9797
- `cdp_exception_breakpoint` — catch exceptions with timed capture
98+
- `cdp_set_shared_value` — set Reanimated SharedValue by testID for proof captures
9899
- `collect_logs` — parallel multi-source log collection
99100

100101
**Device tools** (14 — native interaction via agent-device CLI):

README.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
A [Claude Code](https://docs.anthropic.com/en/docs/claude-code) plugin that turns Claude into a React Native development partner. It explores your codebase, designs architecture, implements features, then **verifies everything live on the simulator** — reading the component tree, store state, and navigation stack through Chrome DevTools Protocol.
44

5-
**51 MCP tools** | **5 agents** | **13 commands** | **46 best-practice rules** | [Full documentation](https://lykhoyda.github.io/rn-dev-agent/)
5+
**52 MCP tools** | **5 agents** | **13 commands** | **148 tests** | **46 best-practice rules** | [Full documentation](https://lykhoyda.github.io/rn-dev-agent/)
66

77
---
88

@@ -103,11 +103,11 @@ if (__DEV__) {
103103

104104
## MCP Tools
105105

106-
51 tools across three layers. [Full reference](https://lykhoyda.github.io/rn-dev-agent/tools/)
106+
52 tools across three layers. [Full reference](https://lykhoyda.github.io/rn-dev-agent/tools/)
107107

108108
| Category | Count | Examples | Docs |
109109
|----------|-------|---------|------|
110-
| **CDP** (React internals) | 24 | `cdp_component_tree`, `cdp_store_state`, `cdp_evaluate`, `cdp_network_body` | [CDP tools](https://lykhoyda.github.io/rn-dev-agent/tools/#cdp-tools) |
110+
| **CDP** (React internals) | 25 | `cdp_component_tree`, `cdp_store_state`, `cdp_evaluate`, `cdp_set_shared_value` | [CDP tools](https://lykhoyda.github.io/rn-dev-agent/tools/#cdp-tools) |
111111
| **Device** (native interaction) | 14 | `device_find`, `device_press`, `device_fill`, `device_screenshot` | [Device tools](https://lykhoyda.github.io/rn-dev-agent/tools/#device-tools) |
112112
| **Testing** (E2E + proof) | 13 | `proof_step`, `cross_platform_verify`, `maestro_run` | [Testing tools](https://lykhoyda.github.io/rn-dev-agent/tools/#testing-tools) |
113113

@@ -118,7 +118,7 @@ Claude Code
118118
├── Skills (knowledge) + Agents (protocols) + Commands (entry points)
119119
120120
├── MCP Server (CDP Bridge) ─── WebSocket → Metro → Hermes CDP
121-
51 tools: component tree, store state, profiling, network, interaction
121+
52 tools: component tree, store state, profiling, network, interaction
122122
123123
└── Bash (device lifecycle)
124124
xcrun simctl / adb / maestro-runner / agent-device
@@ -130,15 +130,16 @@ Claude Code
130130

131131
## Benchmarks
132132

133-
35 stories completed on the test app. [Full benchmarks](https://lykhoyda.github.io/rn-dev-agent/benchmarks/)
133+
38 stories completed on the test app (35 Ralph Loop + 3 Liquid Glass). [Full benchmarks](https://lykhoyda.github.io/rn-dev-agent/benchmarks/)
134134

135135
| Complexity | Time | Crashes | Manual interventions |
136136
|-----------|------|---------|---------------------|
137137
| Simple (search, toggle, store) | 3-5 min | 0 | 0 |
138138
| Medium (forms, charts, lists) | 5-10 min | 0 | 0 |
139139
| Complex (3-step wizard, onboarding) | 11-25 min | 0 | 0 |
140+
| Glass UI (BlurView, Reanimated, haptics) | 27-90 min | 0 | 1 (Metro restart) |
140141

141-
**Libraries tested:** react-hook-form, zod, @tanstack/react-query, @gorhom/bottom-sheet, @shopify/flash-list, zustand, react-native-svg, expo-notifications, react-native-reanimated, react-native-gesture-handler, expo-haptics
142+
**Libraries tested:** react-hook-form, zod, @tanstack/react-query, @gorhom/bottom-sheet, @shopify/flash-list, zustand, react-native-svg, expo-notifications, react-native-reanimated, react-native-gesture-handler, expo-haptics, expo-blur
142143

143144
## Troubleshooting
144145

@@ -151,6 +152,8 @@ Claude Code
151152
| Plugin not detected | `/plugin install rn-dev-agent@Lykhoyda-rn-dev-agent` then `/reload-plugins` |
152153
| Tools fail after upgrade | Restart Claude Code ([why](https://lykhoyda.github.io/rn-dev-agent/troubleshooting/)) |
153154
| Spawned subagent says "MCP tools unavailable" | Never spawn `rn-tester` / `rn-debugger` via Task tool — MCP stdio doesn't propagate to subprocesses (GH #31). Use `/rn-dev-agent:test-feature` or `/rn-dev-agent:debug-screen` instead; protocols run inline in the parent session. |
155+
| Blank white screen after many reloads | NativeWind stylesheet corruption after 5+ `cdp_reload` cycles. Kill Metro, restart it, relaunch the app. `cdp_status` warns when reload count is high. |
156+
| `device_scroll` times out on Reanimated screens | agent-device daemon `waitForIdle` deadlocks with Reanimated worklets. Fixed in v0.22.0 — scroll routes through fast-runner HID synthesis. Ensure fast-runner is healthy via device session. |
154157

155158
[Full troubleshooting guide](https://lykhoyda.github.io/rn-dev-agent/troubleshooting/)
156159

@@ -171,7 +174,7 @@ cd rn-dev-agent/scripts/cdp-bridge && npm install && npm run build && cd ../..
171174
cd /path/to/your-rn-app && claude --plugin-dir /path/to/rn-dev-agent
172175
```
173176

174-
Tests: `cd scripts/cdp-bridge && npm test` (144 tests, [CI](../../actions))
177+
Tests: `cd scripts/cdp-bridge && npm test` (148 tests, [CI](../../actions))
175178

176179
## License
177180

0 commit comments

Comments
 (0)