Skip to content

Various fixes and improvements across the whole project#38

Open
leducp wants to merge 1 commit into
masterfrom
various_fixes
Open

Various fixes and improvements across the whole project#38
leducp wants to merge 1 commit into
masterfrom
various_fixes

Conversation

@leducp

@leducp leducp commented Jun 15, 2026

Copy link
Copy Markdown
Owner

Data loss & crashes:

  • serialize: parse labels before links so label-routed wires survive save/load
  • engine: fail build with MissingInput/DuplicateInputWiring instead of throwing at tick
  • app: wrap engine play()/tick() so a compute exception stops the engine, not the editor
  • migrate: refuse to overwrite input, reject already-migrated and empty-result files

Core robustness:

  • contain malformed JSON fields as per-item diagnostics instead of leaking json::type_error
  • reject id 0 / negative ids; guard reserve_ids_above overflow
  • throw on non-array "pipelines"; validate/clamp theme grid spacing and font size
  • fix AddStage/AddModeProfile undo deleting pre-existing entries
  • repair_label_clusters honors first-by-id; registry heterogeneous lookup; add Lint kind

Memory safety (Python bindings):

  • find_node/find_link/find_attr return copies; engine handles are shared_ptr surviving build()
  • Step accessors throw instead of segfaulting; Stage keeps name alive; complete Diagnostic.Kind
  • guard external-IO downcast (FactoryTypeMismatch); delete Engine copy/move; probe sink steps

Performance:

  • cache node geometry per frame (kills O(pins^2) CalcTextSize); cull off-screen links
  • debounce live-engine rebuild; pre-resolve per-stage blocks; drop per-frame exception throws

Build/packaging/docs/CI:

  • fix README quick start; declare conan dep; fatal setup failure
  • install rules + cmake.install packaging + version; gate IPO out of package builds
  • BUILD_TESTS without BUILD_APP; pin GLFW commit; MIT license notices
  • add GitHub Actions CI running the full suite

@leducp leducp changed the title Various fixes and improvements across the whole project: Various fixes and improvements across the whole project Jun 15, 2026
Data loss & crashes:
   - serialize: parse labels before links so label-routed wires survive save/load
   - engine: fail build with MissingInput/DuplicateInputWiring instead of throwing at tick
   - app: wrap engine play()/tick() so a compute exception stops the engine, not the editor
   - migrate: refuse to overwrite input, reject already-migrated and empty-result files

Core robustness:
   - contain malformed JSON fields as per-item diagnostics instead of leaking json::type_error
   - reject id 0 / negative ids; guard reserve_ids_above overflow
   - throw on non-array "pipelines"; validate/clamp theme grid spacing and font size
   - fix AddStage/AddModeProfile undo deleting pre-existing entries
   - repair_label_clusters honors first-by-id; registry heterogeneous lookup; add Lint kind

Memory safety (Python bindings):
   - find_node/find_link/find_attr return copies; engine handles are shared_ptr surviving build()
   - Step accessors throw instead of segfaulting; Stage keeps name alive; complete Diagnostic.Kind
   - guard external-IO downcast (FactoryTypeMismatch); delete Engine copy/move; probe sink steps

Performance:
   - cache node geometry per frame (kills O(pins^2) CalcTextSize); cull off-screen links
   - debounce live-engine rebuild; pre-resolve per-stage blocks; drop per-frame exception throws

Build/packaging/docs/CI:
   - fix README quick start; declare conan dep; fatal setup failure
   - install rules + cmake.install packaging + version; gate IPO out of package builds
   - BUILD_TESTS without BUILD_APP; pin GLFW commit; MIT license notices
   - add GitHub Actions CI running the full suite
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