Use graph-minimal model IDs in static Bokeh output
Author: bryevdvCreated Sep 3, 2026Updated Sep 3, 2026
Labelstag: component: bokehjspython
Static Bokeh output currently assigns IDs more broadly than needed. An ID is necessary when it preserves shared or cyclic graph identity, or when a live protocol needs to address the model. A model used only once in a static tree does not need a globally addressable identity.
Add an explicit static serialization path that omits IDs from tree-local models while retaining them for shared, cyclic, or externally addressed models. Artifact roots will use logical structural keys instead of model IDs. Canonical documents, server sessions, patches, comms, and live notebooks will remain ID-full. Python and BokehJS will use the same round-trip fixtures.
This is a narrower follow-up to the closed JSON simplification issue #8458.
Source: bokeh/bokeh