Releases: SimTimms/deploynope
Releases · SimTimms/deploynope
v2.1.0
What's New
Global Hook Installer
- Added
install.sh— one-command installer that symlinks commands and hooks to~/.claude/, merges hook config into~/.claude/settings.jsonwith backup - Added
uninstall.sh— paired cleanup script that only removes DeployNOPE symlinks and config - Updated README quick start to lead with
./install.sh, manual steps in collapsible details block /deploynope-configurenow warns if hooks aren't installed globally
Worktree CWD Fix
- Added
hook-helpers.sh— shared helper for CWD resolution and config reading across all hooks - All 9 hooks now resolve the effective working directory from
cdprefixes in commands, fixing false positives when working in git worktrees - Push hook correctly parses explicit branch targets from command arguments, handling flags like
--force-with-leasebetween push and remote/branch
Full Changelog
v2.0.0
What's New
Hook Hardening (Breaking)
- JSON safety: All 9 hooks now use
jq -nfor output — commands with quotes, backslashes, and special characters no longer produce invalid JSON - Config-driven branches: Removed hardcoded
master/mainassumptions from merge, tag, reset, and push hooks — all branch names read from.deploynope.json - False positive fix:
echo git commitno longer triggers the commit hook
Merged from 1.9.0+
- Protection-unlock state tracking: Reset hook hard-blocks production resets unless
.deploynope-protection-unlockedstate file exists (created automatically by the API protection hook) - Protected branch deletion guard: Cannot delete production/staging/development branches via Claude Code
- Commit warnings: Warns when committing directly to protected branches
- Force-push escalation: Escalated warnings for force-pushes to staging and other branches
- Configure options: Team size and commit prefix settings added to
/deploynope-configure
Test Suite
- 116 assertions across all 9 hooks (up from 109 in 1.8.0)
- Tests verify fixed behavior, not document bugs
- Coverage matrix updated
Run Tests
./tests/run-tests.shv1.12.0
What's Changed
- Added mandatory branch sync step after manifest/changelog — syncs staging and development with master before clearing staging
- Added automatic post-deploy checks at end of every deployment
- Updated changelog to run automatically when enabled, before branch sync
- Replaced README version history with link to GitHub Releases
- Reordered all three deployment checklists with correct step sequence
v1.11.0
v1.10.0
What's Changed
- Restored 1.6.0 review fixes to production (hook improvements, configure validation, branch delete protection, commit warnings for protected branches, force-push escalation, production reset state tracking)
- Increased hook timeouts for reliability
- Added
.deploynope-protection-unlockedstate file tracking
v1.9.0
What's Changed
- Added stale release branch guard — before resetting staging, verifies the release branch contains all commits currently on production, preventing production rewind
- Updated preflight check with stale branch detection as a blocker
- Updated all deployment checklists (feature, hotfix, chore) to include the new check
v1.8.0
What's New
Hook Test Suite
- Added a comprehensive bash test suite (
tests/) with 109 assertions covering all 9 DeployNOPE hooks - Test helpers create disposable git repos, simulate hook JSON input, and assert decisions (deny/ask/passthrough)
- Coverage matrix documenting every rule's enforcement mechanism and identifying gaps
- Discovered two bugs: quotes-in-JSON hook output and false positive on
echo git commit
Run Tests
./tests/run-tests.sh # all tests
./tests/run-tests.sh push merge # filter by hook namev1.7.0
v1.6.0
Critical Review Fixes (W1-W10)
Hook Safety Upgrades
- W1: Hard-block
git reset --hardon production without verified protection unlock - W2: Detect force-pushes (
--force,-f) with escalated warnings for staging - W3: Track branch protection unlock/relock state via
.deploynope-protection-unlockedfile - W6: Hard-block deletion of production, staging, and development branches
- W8: Warn when committing directly to protected branches
Command Improvements
- W9: Config validation in
/deploynope-configure— tests repo access, branch existence, API access - W10: Auto-detect
previousVersionin release manifests
Configuration
- W7: Increased hook timeout to 15s for network-dependent push/reset hooks
v1.5.0
v1.5.0
Added
- Contextual stage labels: replaced static
Protected by DeployNOPEtag withDeployNOPE @ <Stage>tags across all commands - Release branch validation before suggesting base branch or PR target — prevents branching off or targeting already-deployed release branches
Changed
- Framework Visibility section now includes a full stage label lookup table
- Commit and push confirmation blocks use dynamic stage labels