v1.11.0
Native device logs in get_logs
When a React Native app dies below the JS layer — a missing .so, a JNI abort, a Java exception in MainApplication — the process dies before any JS runs. CDP never connects, Metro reports nothing, and get_logs returns an empty buffer while the answer sits in logcat/os_log the whole time.
get_logs now reads those logs, filtered to the app under test.
source—"js"(default),"native", or"all". The default never shells out, so the hot path is unchanged.kind—crash|anr|exception|lifecycle|messageminLevel— relevance floor, defaultwarn. Crashes and ANRs are returned regardless.since— ISO timestamp or a relative form like5m.
Native lines are correlated into events, so a 39-line crash backtrace costs one row. get_log_details(id) expands one on demand. JS console logs use the same event model, with stable [jN] ids.
When the JS buffer is empty and the app is disconnected — the signature of a native crash — native crash events are consulted automatically, turning the tool's most common dead end into an answer.
Scope: iOS Simulator and Android emulator/device. Physical iOS devices are not supported (simctl is simulator-only, and devicectl exposes no console subcommand).
Breaking
get_component_tree/find_components:format="tonl"is nowformat="compact". The old value is rejected by the enum.get_logs,search_logs,get_network_requests,search_network: theformatparameter is removed. TONL measured 10–18% larger than plain text on this output — an 83-char preamble per response plus quoting of every value containing a comma or quote — contradicting its own "30–50% smaller" claim. ThecomponentToolsformatters that shared the name are a different implementation that beats JSON 5–6×; those were kept and renamed.
Also
tools.jsonnow records each tool's parameter names and ships in the package, so consumers can validate their docs against the real surface.