Move the viewer avatar list outside the truncated title area so long node titles do not clip avatars. Add a regression test covering long titles with active viewers.
Collaboration restores some empty assigner variable selectors as null, which later reaches the assigner panel and crashes variable-selector reads that expect arrays.
Normalize assigner operation items when converting versioned payloads and when applying operation list updates so variable-mode selectors always stay arrays. Add targeted tests for both the helper path and useConfig exposure.
Knowledge Retrieval panel effects depend on setInputs. In the collaboration branch the callback chain started changing identity on every render, so adding this node could repeatedly write node data and freeze the browser.
Stabilize the collaborative workflow API returned by useCollaborativeWorkflow and keep useNodeCrud.setInputs stable while forwarding to the latest updater. Add a regression test for the stable setInputs contract.
Switch /apps/workflows/online-users request and response schema from workflow_ids/workflow_id to app_ids/app_id without compatibility fallback.
Align app list online avatar lookup and online-user map indexing to app.id, matching socket room identity.
Update backend access checks, API fields, frontend contract/types, and unit tests accordingly.
Avoid writing partial graph into CRDT during initial HTTP draft parsing in workflow-app.
Seed CRDT from current ReactFlow graph only when CRDT is empty and collaboration is connected, then reuse it for leader snapshot rebroadcast.
This prevents join-time resync from broadcasting an empty snapshot when leader has not produced local CRDT mutations yet.