Skip to content

v0.0.13

Choose a tag to compare

@ClayGendron ClayGendron released this 08 Apr 03:17
· 71 commits to main since this release

What's Changed

Added

  • GroverObjectBase.clone() — Fast (~1.7µs) method to create a detached copy of a model instance with independent SQLAlchemy state. Uses shallow copy + fresh InstanceState so clones can be safely added to any session.

Fixed

  • write(objects=...) no longer mutates input objects_group_objects_by_terminal now clones objects before stripping mount prefixes, preserving the caller's original list.
  • add_prefix path normalization — Prefixes are now normalized via normalize_path() before concatenation, ensuring paths always have a leading / regardless of prefix format.
  • strip_prefix safety — Now validates the prefix matches the start of the path and raises ValueError on mismatch instead of blindly slicing. Prefixes are normalized before comparison.
  • _rederive_path_fields normalization — Calls normalize_path() as a safety net, guaranteeing all post-mutation paths are valid before reaching the database.

Full Changelog: v0.0.12...v0.0.13