reticle_state reads live framework state straight out of the running app, without the app broadcasting anything. Reach for it when the DOM looks right and you want to know whether the application actually accepted the change, which is where false greens live.
The DOM tells you what the app drew. reticle_state tells you what it believes. The gap between those two is where false greens live: a row appears in the table, the store never changed, and a reload makes the row vanish.
Example
depth: 2 collapsed the contents to size markers: {…30 keys} rather than thirty keys of JSON. On a large store this is the difference between a cheap look and a very expensive one.
Arguments
Drill in once you know what you want:
path comes back { "found": false, "availableKeys": [...] } rather than an empty value, so a typo is diagnosable instead of looking like an empty store.
You have to register stores first
reticle_state reads what your app registered in src/reticle-dev.ts. With nothing registered, storeNames comes back empty and this tool has nothing to say.
Why this is the strongest evidence you have
APOST returning 200 proves the server was reachable. A row in the DOM proves React rendered something. Neither proves your application accepted the change.
State does. When reticle_act_and_wait reports
200 without touching state gets caught right there, and nowhere else.
Instrument your app
Registering one store for your most important flow is the highest-value line you can write.