feat: add python state, remove uneeded functions, convert node type to enum#160
Conversation
seankmartin
commented
May 12, 2026
- refactor: use annotationId pattern for nodeId
- revert: remove uneeded format hover this was used when we initially had ID=label
- python: add state for new viewer state related to skesl
- refactor: convert node type as str to enum
this was used when we initially had ID=label
| "spatialSkeletonNodeQuery", optional(str, "") | ||
| ) | ||
| spatial_skeleton_node_filter = spatialSkeletonNodeFilter = wrapped_property( | ||
| "spatialSkeletonNodeFilter", optional(int, 0) |
There was a problem hiding this comment.
codex: spatialSkeletonNodeFilter is incompatible between Python and TS. In Python it was added as optional(int, 0) in viewer_state.py (line 992), but the frontend TrackableEnum reads/writes enum strings ("leaf", "virtual_end", etc.) in trackable_enum.ts (line 45).
There was a problem hiding this comment.
Fixed this, added a Python script for trying the state. At the moment it needs your own catmaid source though (can be the metacell one for e.g.). Maybe could move to docs instead, but might be fine for now
Either way the script brought up a few extra issues around credentials and outdated state which were also addressed in this. The python credentials provider is based on the pattern for the other providers already setup
also indicate via comments diff paths and clear seg hasSelectedSegment
this allows us to be more maintainable. This bug stemmed from the isReady using a different path for chunk manage then the rendering did
fix: correct isReady check on spatial skeleton layers
feat: add saturation support and seg higlight to spatial skeleton render
fix: remove skeleton double rendering in browse pass