Rewrite Zarr notebook with FRP reactive pipeline
- Entire notebook is a reactive pipeline: drawing bbox automatically
triggers fetch → PCA → overlay update
- Uses Note signals throughout: bbox_signal, mosaic_signal (async state),
pca_signal, training_points_signal, current_class_signal
- Frp_async.async_bind bridges Note signals to Lwt: Loading/Ready/Error
states with stale request cancellation
- Status bar updates reactively from mosaic_signal state
- PCA overlay updates reactively when pca_signal changes
- Classification triggered by button, samples mosaic + points signals
- No mutable refs — all state in Note signals
- Only 2 cells: the reactive pipeline + the class buttons/classify UI
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>