Skip to content

v0.6.0

Choose a tag to compare

@holgern holgern released this 27 Jul 21:46
· 5 commits to main since this release

Full Changelog: v0.5.1...v0.6.0

[0.6.0] - 2026-07-27

Added

  • Added DestinationPrecondition dataclass for typed before-state fingerprints
  • Added MigrationPhase and MigrationItemState enums for schema-3 state machine
  • Added Schema3MigrationJournal, Schema3ItemJournalState, Schema3ConfigSwitchState dataclasses
  • Added write_schema3_journal and _parse_schema3_journal for schema-3 TOML persistence
  • Added StorageMigrationHooks for lifecycle callbacks (quiescence, staged/activated validation, finalize)
  • Added MigrationLock for advisory project migration locking
  • Added _check_same_filesystem and _validate_same_filesystem for cross-filesystem detection
  • Added _durable_rename for fsync-backed atomic renames
  • Added render_ledger_manifest and render_ledger_local_config for pure TOML rendering
  • Added strict plan-structure validation (_validate_plan_structure) for migration_id, policies, strategies, kinds
  • Added stage/backup collision detection in _check_path_overlaps
  • Added source fingerprint population during planning

Changed

  • Changed file fingerprints (sha256-file-v1) to be path-independent (content hash only, no filename)
  • Changed fingerprint failures to fail closed: state='invalid' instead of 'owned' with missing fingerprint
  • Changed config inspection to check parent binding even when file is absent
  • Changed noop-if-exact to compare against expected_target_fingerprint (not before-state)
  • Changed replace-owned to use expected_before.fingerprint for before-state validation
  • Changed executor to call validate_storage_migration_plan before first journal write

Fixed

  • Fixed fail-open validation where fingerprint errors allowed owned+replaceable state
  • Fixed missing config file bypassing foreign parent detection
  • Fixed unknown destination policies/strategies falling through to default action