Skip to content
Closed
No due date
Closed Dec 18, 2025

v0.8.1 Release - December 2025

Minor enhancements and improvements to v0.8.0 locking features.

Features Added

#142: Handler Access API

  • Added getHandler(): THandler public method to MigrationScriptExecutor
  • Enables direct handler access for CLI custom commands
  • Removes need for adapter-specific workarounds (e.g., FirebaseRunner.getHandler())
  • Full type safety through THandler generic parameter

#140: Locking Service Lifecycle (BREAKING CHANGE)

  • Added required initialization methods to ILockingService interface:
    • initLockStorage(): Promise<void> - Creates lock storage structures
    • ensureLockStorageAccessible(): Promise<boolean> - Pre-flight accessibility check
  • Fail-fast principle: setup errors occur at initialization, not first lock acquisition
  • Explicit lifecycle management for all locking adapters
  • Breaking: All ILockingService implementations must implement these methods

#141: Lock Orchestration Service

  • Added LockingOrchestrator service using decorator pattern
  • Wraps ILockingService implementations with:
    • Retry logic with configurable attempts/delays
    • Two-phase locking (acquire → verify ownership)
    • Lifecycle hooks for observability (metrics, alerts, audit)
    • Comprehensive error handling
  • Added ILockingHooks interface with 9 optional hook methods
  • Integrated into MigrationWorkflowOrchestrator
  • Consistent lock orchestration across all database adapters

Statistics

  • Issues Closed: 3 (#140, #141, #142)
  • Tests Added: 45 new unit/integration tests
  • Total Tests: 1547 passing (up from 1497 in v0.8.0)
  • Coverage: 100% on all metrics (statements, branches, functions, lines)
  • Breaking Changes: 1 (#140 - required methods in ILockingService)

Upgrade Notes

⚠️ Breaking Change: Issue #140 requires all ILockingService implementations to add:

  • initLockStorage(): Promise<void>
  • ensureLockStorageAccessible(): Promise<boolean>

See migration guide for upgrade instructions.

Quality

  • ✅ 100% test coverage maintained
  • ✅ All linting checks passed
  • ✅ TypeScript compilation successful
  • ✅ No security vulnerabilities
100% complete

List view

    There are no open issues in this milestone

    Add issues to milestones to help organize your work for a particular release or project. Find and add issues with no milestones in this repo.