Releases: SimTimms/deploynope
Releases · SimTimms/deploynope
v2.22.0
[2.22.0] - 2026-03-26
Added
- File locking for dashboard state writes using mkdir-based POSIX locking (macOS compatible)
state_lock,state_unlock, andstate_locked_updatehelpers in hook-helpers.sh- Stale lock detection and automatic cleanup after 30 seconds
- Empty-output protection: jq transforms that produce empty results no longer overwrite the state file
- Active Claude session detection: agents with a running Claude process show yellow terminal icon + "ACTIVE" badge
- Repurposed worktree detection: warns when branch name ticket doesn't match commit content
- Agents sorted by active sessions first, then by most recent activity
Changed
- All state file writes (hooks, scan, PR create) now go through
state_locked_update - "Ahead" drift badge colour changed from grey to green
- Active agents cannot be marked stale
Fixed
- Dashboard stage hook resolves agent by branch to enrich scan entries instead of duplicating
dashboard_update()resolves existing agent by branch before creating new entry
v2.21.0
[2.21.0] - 2026-03-26
Added
- Left accent bar on agent cards colored by stage (blue=feature, yellow=staging, red=production, green=active/complete, grey=idle)
- "Awaiting staging" stage detection for branches that have been pushed but not yet merged to staging
- Contextual status hints in agent meta row: "Pushed — awaiting staging", "Committed — not yet pushed", "Working locally", "Ready for cleanup", "No recent activity"
- Stage-aware progress bar colours (yellow=staging, red=production, green=complete)
Changed
- Agent cards now use transparent background with soft bottom dividers instead of bordered cards
- Progress bar uses subtle background instead of border
- Agent meta row shows actionable status instead of repeating the branch name when branch matches agent name
- Stale threshold increased from 60 minutes to 1 week
Fixed
- Dashboard stage hook resolves agent by branch name to enrich scan entries instead of creating duplicates
- Hook skips protected branches when matching agents, preventing wrong agent enrichment
- Hook excludes completed deployments from repo-level matching
v2.20.0
What's New
Branch Drift Detection
- Stage hook and scan detect how far branches are behind/ahead of production
- Drift warning badges on agent cards (yellow 1-10, red 11+, grey ahead count)
- Deploy framework enforces drift rules: informational at early stages, blocking at Staging Contention onwards
Dashboard Improvements
- Development bar separates dev branches from agent cards, like staging
- "In development" progress bar for agents without active DeployNOPE
- Descriptive stage labels (e.g. "Working on feature branch" instead of "Feature")
- Scan button and
/api/scanendpoint restored - Production branches (main/master) filtered from work agent cards
- Duplicate branch→target row hidden when identical
Workflow Tracking
- Stage hook tracks by DeployNOPE context (e.g. "timeline-fixes") not session/cwd
- All stage updates for a workflow go to one card regardless of cwd changes
- Dedup prefers most advanced pipeline stage over most recent timestamp
- "Complete" terminal stage with modified-after-complete flag
Tests
- Timeline progression tests (49 assertions covering all 18 stages)
- Branch drift detection tests (6 assertions)
- Visual timeline test with optional drift simulation
Fixes
- Branches with no unique commits no longer marked "safe to delete"
- Scan button missing from worktree dashboard builds
Full Changelog: v2.19.0...v2.20.0
v2.19.0
Dashboard Timeline & Worktree Management
Added
- Dashboard: group agent cards by repository with dedicated repo headers
- Dashboard: per-repo staging environment bars showing claimed/available status with timeline
- Dashboard: progress bar timeline on all agent cards, inferred from branch context when no hook data
- Dashboard: finer-grained deployment stages in timeline (19 steps)
- Dashboard: clickable PR banner showing awaiting-merge status with link to PR
- Dashboard: agent remove button with worktree cleanup and dirty-check confirmation modal
- Dashboard: worktree cleanup detection in scan — shows "safe to delete" / "review" banners
- PostToolUse hook to capture PR URLs from command output
- Render-time deduplication of agents by cwd to prevent duplicate cards
- Scan deduplication: skip repos already registered by hooks
Fixed
- Scan no longer fabricates fake staging validation gate for branches on staging
- Stale threshold increased to 60 minutes, based on last action timestamp not scan time
- Reduced agent name font size for lighter visual weight
See CHANGELOG.md for full details.
v2.18.0
What's Changed
Dashboard — Human Gate Tracking
- Stage hook auto-sets/clears gate when stage name implies a human gate (validation, sign-off, awaiting)
- Scan infers gate for repos sitting on staging branch
- Dashboard renders gate banner on agent cards
- Card layout: repo/branch on dedicated row below title
- Production tag only inferred from target branch, not checked-out branch
- Small red warning when agent is checked out on production branch
- Agents with active gates no longer shown as stale
- Gate count shown in header status bar
v2.17.0
Added
- Real-time web dashboard for monitoring DeployNOPE activity across all agents and worktrees — run with
./dashboard/start.sh - All 9 hooks now write agent state to
~/.deploynope/dashboard-state.jsonfor dashboard tracking dashboard_updateandresolve_repo_namehelper functions inhook-helpers.sh
Fixed
- Dashboard state updates run synchronously in hooks (background processes were killed on hook exit)
- Server watches state directory instead of file for macOS inode compatibility with atomic writes
v2.16.0
Added
- Configurable reconciliation strategy (
merge/cherry-pick/ask) for branch alignment during/deploynope-reconcile— analyses divergence and recommends a strategy based on commit count, direction, and history shape - Configurable default base branch for new work (
defaultBaseBranchin/deploynope-configure)
v2.15.0
What's new in 2.15.0
Fixed
- Hook command parsing: Chained commands (
cd && git checkout && git merge) now correctly detect the merge target and source branch - Hook push guard: Post-reset fast-forward pushes to production (e.g. release manifests, branch sync) are prompted for approval instead of hard-blocked
- Hook merge guard:
origin/prefix stripped when comparing merge source against production branch name