Skip to content

Refactor server state - #44

Merged
RoboticHuman merged 7 commits into
masterfrom
refactor-server-state
Sep 28, 2026
Merged

RoboticHuman merged 7 commits into
masterfrom
refactor-server-state

Conversation

@RoboticHuman

@RoboticHuman RoboticHuman commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner
  • Refactors server state into focused components with clearer ownership and simpler transaction, replay, and maintenance flows.
  • Improves naming and code organization, reduces duplicated bookkeeping, and fixes consistency issues around deletions, scene caches, and compaction while preserving the public server API and wire protocol.

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.
@RoboticHuman RoboticHuman self-assigned this Sep 25, 2026
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.
@RoboticHuman
RoboticHuman merged commit 392fdd9 into master Sep 28, 2026
1 check passed
@RoboticHuman
RoboticHuman deleted the refactor-server-state branch October 1, 2026 21:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant