Repository navigation
Conversation
|
@copilot please re-review |
Re-reviewed the six commits. One documentation issue: No other high-confidence regressions found in the opt-in/slim-payload changes. Python CI jobs passed; the failing browser job is the unrelated jscatter click-after-lasso test. No files changed. |
The dropped-client-side behavior and SHINYWIDGETS_WS_MAX_SIZE env var land in #481, not this branch; describe the actual disconnect-and-raise-limit behavior (matching the itables docstring).
Verified |
selected() is opt-in (listen_to), so the intro example raised as written.
Without listen_to, plot.selected() raises under the opt-in, so the test's final 'selection reaches Python' check passed on an error string. With it, the bridge's own points message is what trips the size guard.
Stacked on #483; split out of #480. Together with #481, closes #459.
plotly's
selected(),selecting(), andhover()are now opt-in vialisten_to. The bind message declares a per-event payload shape (regionvspoints, unioned in JS withpointswinning):brushed()/brushing()bindregion,selected()/selecting()bindpoints. Opted-in selection frames report{trace_index, point_index, customdata?}instead of duplicatingx/y(~90 → ~25 bytes/point);selected_rows()is unaffected, and the seed path skips building points entirely when only the region is wanted. An app that only readsbrushed()receives a few hundred bytes of selection region instead of tens of MB of points.Known limitation, addressed by the stacked PRs #487 and #488: plotly.py's own
FigureWidgetmirrors every selection unconditionally (#479). Until those land, the size guard (#481) keeps it from killing the session.