nornir-funnel-embed — live auto-poll
The dwarves funnel pane now grows on its own: instead of a manual ⟳ Refresh only, it re-fetches Funnel.Show on an interval so the plan-DAG lights up new nodes as ideas land — matching workspace_nordisk/.nornir/funnel-live-graph.md.
How
FunnelPanelgainsauto_poll(on by default),poll_interval_s(DEFAULT_POLL_INTERVAL_S = 1.5),last_poll_s.poll_due(now_s)(pure) =auto_poll && now - last_poll >= interval;now_sis egui input time (no wall-clock read → deterministic + testable offline).- In
ui(): if due →refresh()+ stamplast_poll_s; while live →ctx().request_repaint_after(interval)keeps the loop ticking with no input (throttled to the interval — never a busy-spin). Manual⟳ Refreshand a● live/⏸ pausedtoggle both reset the timer. - Non-blocking / safe: reuses the existing 3s-connect-timeout current-thread runtime; an offline server stays the clean
Unavailablestate, never wedges. - Robot/host seam:
state_jsonexposesauto_poll+poll_interval_s;update_jsonaccepts{"auto_poll":bool},{"poll":true},{"refresh":true}.
Coverage (in code, self-driving)
poll_due_respects_interval_and_toggle · update_json_toggles_auto_poll_in_state · live_poll_offline_stays_unavailable_no_panic (+ nornir-funnel-embed/ live_auto_poll_offline_safe test-matrix cell via facett-core → edda).
Flow
See assets/live-poll.svg.