feat: [Remote rendering 3.5a] move variable ownership to server - #152
Draft
LKasianAnsys wants to merge 7 commits into
Draft
LKasianAnsys wants to merge 7 commits into
LKasianAnsys wants to merge 7 commits into
Conversation
LKasianAnsys
changed the base branch from
main
to
feat/3.4-server-owned-ui-state
October 1, 2026 18:24
LKasianAnsys
marked this pull request as draft
October 1, 2026 18:25
LKasianAnsys
force-pushed
the
feat/3.4-server-owned-ui-state
branch
2 times, most recently
from
October 1, 2026 18:58
e64851b to
1916c0e
Compare
LKasianAnsys
force-pushed
the
feat/3.5a-move-variable-ownership-to-server
branch
2 times, most recently
from
October 1, 2026 21:53
d5b9b47 to
a6e2619
Compare
LKasianAnsys
force-pushed
the
feat/3.4-server-owned-ui-state
branch
from
October 2, 2026 15:51
1916c0e to
f5cf3cb
Compare
LKasianAnsys
force-pushed
the
feat/3.5a-move-variable-ownership-to-server
branch
from
October 2, 2026 17:23
a6e2619 to
328ccf1
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue
Addresses #23
Status: WIP
Context
This is the first PR for user story 3.5 in Phase 3 of the remote rendering epic, which sees the visualizer state authority move from client to server.
This PR moves the global variable ownership to the server; previously this was handled on the client.
Copilot summary
This pull request implements a significant architectural change for variable ownership in the VISOR state synchronization model: the server now owns and manages variable records and their ranges, rather than relying on the client to provide this information. This centralizes variable state, improves consistency, and ensures the backend is the authority for variable information. The changes include new models for server-owned variable records, new APIs for setting variable ranges, and updates to validation and persistence logic.
Key changes:
Server-side variable ownership and management:
VisorVariableRecordandVisorVariableRecordsinvisor_variable_record.pyto represent and manage variable state and ranges on the server, including logic for merging, updating, and persisting variable ranges.VisorVariableStateto clarify that it is now a persisted projection of the server-ownedVisorVariableRecord, not a passthrough of client data.API and payload changes:
SetVariableRangePayloadmodel for the newset_variable_rangetrigger, enabling the frontend to request updates to variable ranges, which are now applied scene-wide by the server.LocalAppinlocal_app.pyto add theset_variable_rangetrigger and handler, and updatedset_part_color_variableto ignore client-supplied min/max values, instead using the server's record. [1] [2] [3] [4] [5] [6]Persistence and validation updates:
PersistedViewerStateV1.from_componentsto requirevariable_statesas a keyword-only argument, reflecting the server's authoritative role. [1] [2] [3]VisorSaveStateResponseto discard anyvariableStatessent by the client, ensuring only server-owned variable records are persisted and validated.These changes collectively ensure that variable state is managed, validated, and persisted solely by the server, improving reliability and future extensibility.