Repository navigation
Release Notes - v1.0.4
Highlights
- Added robust stale-lock self-healing to avoid manual unlocks after interrupted runners.
- Reduced default advisory lock wait timeout from 300s to 180s.
- Added integration coverage for double-
createruns to catch lock-leak/deadlock regressions.
What Changed
- Lock acquisition hardening:
- Added lock-holder app name:
postgres-branching-lock-holder. - Added lock-holder keepalive tuning for faster dead-session detection:
LOCK_TCP_KEEPALIVES_IDLE_SEC(default30)LOCK_TCP_KEEPALIVES_INTERVAL_SEC(default10)LOCK_TCP_KEEPALIVES_COUNT(default3)
- Added stale-lock cleanup on timeout with one retry:
LOCK_STALE_AFTER_SEC(default1800)
- Added lock-holder app name:
- Reduced default lock wait timeout:
LOCK_WAIT_TIMEOUT_SECdefault changed from300to180.
- Expanded docs:
- Added lock behavior details and lock tuning environment variables.
- New integration safety test:
createrun twice in sequence on the same branch.- Verifies second run is no-op and no lingering lock-holder query remains.
Validation
- Unit tests:
tests/test_create_action.shtests/test_delete_action.shtests/test_reset_action.sh
- Integration script syntax:
tests/test_create_action_integration.sh
Compatibility
- No breaking input/output changes.
- Existing workflows remain compatible.
Full Changelog: v1.0.3...v1.0.4