How To Read This Matrix
Watching splits into two halves, and they have different support stories:- Delivery (
ws.watch()+ws.notify()) works on every mount today. Delivery is notify-driven: any detection you run maps its signal to aFileEventand injects it, and Mirage handles invalidation, scope matching, and the event stream. No per-backend code is involved. - Detection is per-backend. The Pull column marks resources whose
delta_hook()ships with Mirage (checkpointed diff, the self-healing truth path). The Push signal column names the provider mechanism your receiver would subscribe to; mapping its payload to aFileEventis consumer code, and Mirage ships a sample where marked.
What “Delivery ✓” buys you without a hook
Even with no shipped detection, any backend is watchable end to end the moment you have a signal from anywhere:Adding pull detection to a backend
ListingDeltaHook is generic; a backend earns the Pull column with one
small walk class that lists entries with fingerprints:
list_folder/continue, Graph
delta) can skip the walk and implement pull(root, checkpoint) directly; the
opaque checkpoint becomes the server cursor, and consumers cannot tell the
difference.