Changelog
Changelog
Section titled “Changelog”All notable changes to rn-dev-agent will be documented in this file.
Format follows Keep a Changelog.
[0.9.0] — 2026-04-02
Section titled “[0.9.0] — 2026-04-02”- Experience Engine (Phases A-D) — self-improving failure pattern learning system:
- Phase B: Classification + Retrieval — normalized error signatures, failure family matching, three-layer experience cascade (seed → project → user), environment fingerprint filtering
- Phase B: Ghost Recovery — auto-recovers FF_STALE_CDP transparently (depth-1 circuit breaker, 30s cooldown, 15s timeout)
- Phase C: Compaction + Promotion — telemetry scanner, candidate generator, auto-promotes ghost recoveries, stale heuristic decay,
rn-agent-compactcommand - Phase D: Sharing + Polish — anonymized export/import, experience health dashboard,
rn-agent-export,rn-agent-import,rn-agent-healthcommands
- Auto-handle Dev Client picker (#9) —
cdp_statusdetects and dismisses the Expo Dev Client server picker viadevice_find, auto-retries CDP connection after dismissal FF_DEV_CLIENT_PICKERfailure family in seed experience
Changed
Section titled “Changed”- MCP tool count: 25 (unchanged). Command count: 6 → 10 (4 new experience engine commands).
cdp_statusrefactored: extractedbuildStatusResult()helper, picker detection in catch blockrecord_proof.shstandardized video output (#14): always MP4 with-movflags +faststart,ffprobevalidation before copy, graceful fallback preserving correct extension- All command/skill
.movreferences updated to.mp4 - Zod schemas tightened:
count,holdMs,durationMs,amount,scalenow have min/max bounds
- ENAMETOOLONG on marketplace install (#6) — changed to local source
"./"in marketplace.json - Shell globbing vulnerability in
androidClipboardFill— escape*?[]{}chars - Missing
-sdevice serial in adb calls — addedgetAdbSerial()helper - Platform detection gap —
isAndroidSession()falls back toANDROID_SERIALenv - Misleading
disableDevMenufallback — removed unrelatedsetIsDebuggingRemotelycall ANDROID_SDK_ROOTnot honored in run.sh — maps toANDROID_HOME- Ineffective
ANDROID_SERIALexport — persisted to file for cross-process access - Inexact package matching in post-edit health check — exact match with
grep -cxF - Video corruption (#14) — record to temp, convert on stop, validate with ffprobe
- Double
.mp4.mp4extension — strip any extension before appending .mp4
[0.8.0] — 2026-03-30
Section titled “[0.8.0] — 2026-03-30”device_longpress— long press by @ref or coordinates with configurable duration. Enables context menus, drag initiation, hold-to-delete.device_scroll— native directional scroll with configurable amount (0-1). Smoother than swipe for list scrolling.device_scrollintoview— scroll until element visible by text or @ref. Works with ScrollView content (FlatList virtualizes, so elements must be rendered).device_pinch— pinch/zoom gesture with scale factor and optional center point. iOS simulator only.device_pressenhanced — addeddoubleTap,count(repeated taps), andholdMs(long press via ref) options.device_swipeenhanced — now supports coordinate-based swipes (x1,y1,x2,y2,durationMs) for precise gestures (drag-to-reorder, bottom sheets, pull-to-refresh). Direction shortcut still works, now delegates to native scroll.
Changed
Section titled “Changed”- MCP tool count: 21 → 25 (4 new device gesture tools).
[0.7.2] — 2026-03-30
Section titled “[0.7.2] — 2026-03-30”disableDevMenuaction forcdp_dev_settings(#8) — suppresses shake-to-show dev menu viaDevSettings.setIsShakeToShowDevMenuEnabled(false). Auto-called before proof recordings.- Pre-recording readiness check in proof-capture and rn-feature-dev Phase 8 (#8) — verifies valid navigation route (not Dev Client picker) and disables dev menu before recording starts.
- Dev Client clearState warning in rn-testing skill (#8) — all Maestro YAML examples updated to not use
clearState:true.
Changed
Section titled “Changed”- rn-tester agent Safety Constraints now explicitly forbid
clearState:truewith Dev Client builds.
[0.7.1] — 2026-03-30
Section titled “[0.7.1] — 2026-03-30”- Video label subcommand (
record_proof.sh label) — adds timed text labels to proof videos in a dedicated dark bar below the video content. Cross-platform (works on any .mp4). Uses Pillow for rendering, auto-installs in venv if missing.
[0.7.0] — 2026-03-30
Section titled “[0.7.0] — 2026-03-30”- Android emulator readiness script (
scripts/ensure-android-ready.sh) — checks boot completion, cleans stale port forwarding, auto-selectsANDROID_SERIAL, warns about Play Protect. Runs on SessionStart. - Android text input workaround —
device_fillauto-detects Android sessions and chunks long/special-char strings into safe 10-char segments viaadb shell input text. - Android app installation check in post-edit health check — verifies
expo.android.packageviaadb shell pm list packages. - Android-Specific Testing Rules section in rn-testing skill — maestro-runner enforcement, text input best practices, boot timing, Play Protect.
- 2 new failure families —
FF_MAESTRO_GRPC_ANDROIDandFF_ANDROID_TEXT_INPUT_CRASHin seed experience. - 3 new platform quirks —
PQ_ANDROID_MAESTRO_GRPC,PQ_ANDROID_TEXT_INPUT_CRASH,PQ_ANDROID_PLAY_PROTECT.
Changed
Section titled “Changed”- maestro-runner enforced on Android — all agents (rn-tester, rn-debugger) and skills now require maestro-runner over classic Maestro for Android flows. Classic Maestro’s gRPC driver is unreliable (upstream #998).
- All Maestro commands now include
--platformflag explicitly.
- Maestro gRPC UNAVAILABLE on Android (#7) — bypassed by enforcing maestro-runner which uses HTTP to UIAutomator2 instead of gRPC.
mobile_type_keyscrashes app on Android (#7) — special characters and long strings now auto-chunked.
[0.6.1] — 2026-03-30
Section titled “[0.6.1] — 2026-03-30”- ENAMETOOLONG on marketplace install (#6) — repo renamed from
react-native-dev-claude-plugintorn-dev-agent, shortening marketplace qualifier from 39 to 21 chars on every cached path. - Shortened 9 long reference filenames in
skills/rn-best-practices/references/(max 42 → 31 chars). - Updated all internal references: plugin.json, marketplace.json, README install commands, troubleshooting, and source clone instructions.
[0.5.0] — 2026-03-20
Section titled “[0.5.0] — 2026-03-20”collect_logstool — multi-source log collection from JS console, native iOS (xcrun simctl log stream), and native Android (adb logcat) in parallel. Results merged by timestamp.- App-Side Dev Bridge (
@rn-dev-agent/runtime) — stable public API replacing fragile fiber walks for navigation state, store state, console, and errors. Localdev-bridge.tsfor test-app integration. - Vercel RN Best Practices skill — 36 rules from
vercel-labs/agent-skills+ 3 custom rules. Pass 4 keyword-triggered reviewer integration. - Post-edit health check hook — detects app crashes after source file edits via PostToolUse hook. Gated on active CDP session to avoid false positives.
- MCP server resilience — reconnect window extended to 46s (30 attempts), background Metro poll for auto-reconnect after Metro restart.
- DiagnosticsScreen (test-app) — dev-only screen with FlashList log viewer, level filter pills, and pull-to-refresh for
collect_logsvalidation. - GlobalSearchModal (test-app) — FlashList with heterogeneous items, cross-store search, text highlighting.
- TaskStatsCard (test-app) — Reanimated animated progress bar with staggered entries.
- Auto-update guide in README for marketplace plugin users.
- Navigation debugging recipe — B75 nested navigator patterns documented in
skills/rn-debugging/references/.
Changed
Section titled “Changed”- Plugin now requires Node.js >= 22 (LTS).
- Reviewer agent (Pass 4) loads best-practice rules based on keyword triggers in reviewed code.
- Architect agent references CRITICAL/HIGH rules when designing component architecture.
cdp_statusreportscapabilities.bridgeDetectedandcapabilities.bridgeVersion.- Bridge-aware routing in navigation state, store state, console log, error log, and dispatch tools.
- Health check hook gated on active CDP session flag file (
/tmp/rn-dev-agent-cdp-active). - Bridgeless mode target detection checks both
.titleand.descriptionfields.
- Post-edit health check false positives outside RN projects (GH #1).
- Post-edit health check false positives when app not installed or simulator booted without app (GH #2).
- Console double-wrapping on Fast Refresh via global sentinel.
- Store auto-detection re-scans globals on every call instead of caching first result.
- Bridge detector validates required methods instead of accepting any truthy global.
- Reconnect resets bridge state in
handleClose()andsoftReconnect().
[0.1.0] — 2026-03-09
Section titled “[0.1.0] — 2026-03-09”- Initial release.
- 19 MCP tools: 11 CDP (status, evaluate, reload, component tree, navigation state, store state, error log, network log, console log, interact, dev settings) + 8 device (list, screenshot, snapshot, find, press, fill, swipe, back).
- 3 skills: rn-device-control, rn-testing, rn-debugging.
- 5 agents: rn-tester, rn-debugger, rn-code-explorer, rn-code-architect, rn-code-reviewer.
- 5 commands: rn-feature-dev, test-feature, debug-screen, check-env, build-and-test.
- Injected helpers IIFE for Hermes runtime introspection.
- Ring buffers for console (200), network (100), and error (50) events.
- Network fallback for RN < 0.83 via fetch/XHR monkey-patches.
- Auto-discovery across Metro ports 8081/8082/19000/19006.
- maestro-runner and agent-device auto-installation hooks.