Repository navigation
Refactor server state - #44
Merged
Merged
Conversation
Expose the typed broadcast decoder for replay and keep numeric shader inputs as FlatBuffers views when requested. Preserve list-based decoding for the public dictionary API. Author numeric arrays directly through USD array constructors and convert values at native Blender input boundaries.
Give scene data, transaction admission and commits, journal persistence, collaboration, and history maintenance explicit owners. Extract playback, metrics, inspection, and snapshot preparation from ServerState. Centralize admission and maintenance barriers, trust validated data during commit, and keep persistence, rollback, and shutdown boundaries explicit. Share compaction merge rules with payload-child replay to preserve partial updates, layer identities, and time samples. Read typed wire records and reuse complete updates to avoid redundant decoding and merge allocations.
Respect deletion and sample barriers during child replay. Make grouped transaction outcomes explicit, centralize scene rollback and export snapshots, and synchronize collaboration assignments with layer lifecycle. Correct stale locking and durability comments and test observable behavior at the extracted boundaries. Validation: 2227 unit tests passed, 21 skipped; selected server integration checks passed after correcting test setup; Ruff and whitespace checks passed.
Carry validated transaction metadata through commit, share duplicate and gap checks, and consolidate receiver resync and committed-event delivery. Simplify startup, replay cleanup, and shutdown resource handling. Read managed replay metadata from typed records, reuse journal encoding and persistence for child replay, and rely on validated receiver fields. End transaction batches at payload loads so child replay is published in sequence order before later transactions.
Retain typed event records through compaction and child replay instead of rebuilding routing dictionaries and wrapping each pending record. Use one immutable collaboration layer order and derive PointInstancer badges from tracked prim types, keeping badges correct after type changes. Share department client release handling across merge and delete while preserving the public server API.
Organize server entry points around lifecycle, transactions, replay, and maintenance. Clarify publication and encoding names and simplify snapshot preparation and topology capture. Complete deleted spec fields in transaction order before encoding, while keeping ordinary geometry encoding outside the scene lock. Reject stale compaction plans after history replacement and keep prim counts and descendant tracking current without scanning the tree for every deletion.
Keep department priorities, shared-layer graphs, playback state and playback locks writable through their owning components. Preserve RuntimeError positional arguments for VFS exceptions. Decode numeric connectable inputs as Python lists using bulk reads so custom adapters retain their existing value contract. Remove redundant shader array conversions while keeping geometry buffer views unchanged.
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.
Uh oh!
There was an error while loading. Please reload this page.