aidevops 2.144.0 → 2.145.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.144.0
1
+ 2.145.0
package/aidevops.sh CHANGED
@@ -3,7 +3,7 @@
3
3
  # AI DevOps Framework CLI
4
4
  # Usage: aidevops <command> [options]
5
5
  #
6
- # Version: 2.144.0
6
+ # Version: 2.145.0
7
7
 
8
8
  set -euo pipefail
9
9
 
@@ -1296,8 +1296,23 @@ EOF
1296
1296
  print_success "Created .aidevops.json"
1297
1297
 
1298
1298
  # Derive repo name for scaffolding
1299
+ # In worktrees, basename gives the worktree dir name (e.g., "repo-chore-foo"),
1300
+ # not the actual repo name. Prefer: git remote URL > main worktree basename > cwd basename.
1299
1301
  local repo_name
1300
- repo_name=$(basename "$project_root")
1302
+ local remote_url
1303
+ remote_url=$(git -C "$project_root" remote get-url origin 2>/dev/null || true)
1304
+ if [[ -n "$remote_url" ]]; then
1305
+ repo_name=$(basename "$remote_url" .git)
1306
+ else
1307
+ # No remote — try main worktree path (first line of `git worktree list`)
1308
+ local main_wt
1309
+ main_wt=$(git -C "$project_root" worktree list --porcelain 2>/dev/null | head -1 | sed 's/^worktree //')
1310
+ if [[ -n "$main_wt" ]]; then
1311
+ repo_name=$(basename "$main_wt")
1312
+ else
1313
+ repo_name=$(basename "$project_root")
1314
+ fi
1315
+ fi
1301
1316
 
1302
1317
  # Create .agents/ directory for project-specific agent context
1303
1318
  # (The aidevops framework is loaded globally via ~/.aidevops/agents/ — this
@@ -1657,8 +1672,15 @@ SOPSEOF
1657
1672
  gitignore_updated=true
1658
1673
  fi
1659
1674
 
1660
- # Add .aidevops.json to gitignore (local config, not committed)
1675
+ # Add .aidevops.json to gitignore (local config, not committed).
1676
+ # If .aidevops.json is already tracked by git (committed by older framework
1677
+ # versions), untrack it first — adding a tracked file to .gitignore is a
1678
+ # no-op and the file keeps showing in git diff on every re-init (#2570 bug 3).
1661
1679
  if ! grep -q "^\.aidevops\.json$" "$gitignore" 2>/dev/null; then
1680
+ if git -C "$project_root" ls-files --error-unmatch .aidevops.json &>/dev/null; then
1681
+ git -C "$project_root" rm --cached .aidevops.json &>/dev/null || true
1682
+ print_info "Untracked .aidevops.json from git (was committed by older version)"
1683
+ fi
1662
1684
  echo ".aidevops.json" >>"$gitignore"
1663
1685
  gitignore_updated=true
1664
1686
  fi
@@ -1725,6 +1747,43 @@ SOPSEOF
1725
1747
  # Register repo in repos.json
1726
1748
  register_repo "$project_root" "$aidevops_version" "$features_list"
1727
1749
 
1750
+ # Auto-commit initialized files so they don't linger as mystery unstaged
1751
+ # changes (#2570 bug 2). Collect all files that cmd_init creates/modifies.
1752
+ local init_files=()
1753
+ [[ -f "$project_root/.gitignore" ]] && init_files+=(".gitignore")
1754
+ [[ -d "$project_root/.agents" ]] && init_files+=(".agents/")
1755
+ [[ -f "$project_root/AGENTS.md" ]] && init_files+=("AGENTS.md")
1756
+ [[ -f "$project_root/TODO.md" ]] && init_files+=("TODO.md")
1757
+ [[ -d "$project_root/todo" ]] && init_files+=("todo/")
1758
+ [[ -f "$project_root/MODELS.md" ]] && init_files+=("MODELS.md")
1759
+ [[ -f "$project_root/LICENCE" ]] && init_files+=("LICENCE")
1760
+ [[ -f "$project_root/CHANGELOG.md" ]] && init_files+=("CHANGELOG.md")
1761
+ [[ -f "$project_root/README.md" ]] && init_files+=("README.md")
1762
+ [[ -f "$project_root/.cursorrules" ]] && init_files+=(".cursorrules")
1763
+ [[ -f "$project_root/.windsurfrules" ]] && init_files+=(".windsurfrules")
1764
+ [[ -f "$project_root/.clinerules" ]] && init_files+=(".clinerules")
1765
+ [[ -d "$project_root/.github" ]] && init_files+=(".github/")
1766
+ [[ -f "$project_root/.sops.yaml" ]] && init_files+=(".sops.yaml")
1767
+ [[ -d "$project_root/schemas" ]] && init_files+=("schemas/")
1768
+ [[ -d "$project_root/migrations" ]] && init_files+=("migrations/")
1769
+ [[ -d "$project_root/seeds" ]] && init_files+=("seeds/")
1770
+
1771
+ local committed=false
1772
+ if [[ ${#init_files[@]} -gt 0 ]]; then
1773
+ # Stage all init files (--force not needed; .aidevops.json is gitignored above)
1774
+ if git -C "$project_root" add -- "${init_files[@]}" 2>/dev/null; then
1775
+ # Only commit if there are staged changes
1776
+ if ! git -C "$project_root" diff --cached --quiet 2>/dev/null; then
1777
+ if git -C "$project_root" commit -m "chore: initialize aidevops v${aidevops_version}" 2>/dev/null; then
1778
+ committed=true
1779
+ print_success "Committed initialized files"
1780
+ else
1781
+ print_warning "Auto-commit failed (pre-commit hook rejected?)"
1782
+ fi
1783
+ fi
1784
+ fi
1785
+ fi
1786
+
1728
1787
  echo ""
1729
1788
  print_success "AI DevOps initialized!"
1730
1789
  echo ""
@@ -1739,19 +1798,31 @@ SOPSEOF
1739
1798
  [[ -f "$project_root/MODELS.md" ]] && echo " ✓ MODELS.md (per-repo model performance leaderboard)"
1740
1799
  echo ""
1741
1800
  echo "Next steps:"
1801
+ local step=1
1802
+ if [[ "$committed" != "true" ]]; then
1803
+ echo " ${step}. Commit the initialized files: git add -A && git commit -m 'chore: initialize aidevops'"
1804
+ ((step++))
1805
+ fi
1742
1806
  if [[ "$enable_beads" == "true" ]]; then
1743
- echo " 1. Add tasks to TODO.md with dependencies (blocked-by:t001)"
1744
- echo " 2. Run /ready to see unblocked tasks"
1745
- echo " 3. Run /sync-beads to sync with Beads graph"
1746
- echo " 4. Use 'bd' CLI for graph visualization"
1807
+ echo " ${step}. Add tasks to TODO.md with dependencies (blocked-by:t001)"
1808
+ ((step++))
1809
+ echo " ${step}. Run /ready to see unblocked tasks"
1810
+ ((step++))
1811
+ echo " ${step}. Run /sync-beads to sync with Beads graph"
1812
+ ((step++))
1813
+ echo " ${step}. Use 'bd' CLI for graph visualization"
1747
1814
  elif [[ "$enable_database" == "true" ]]; then
1748
- echo " 1. Add schema files to schemas/"
1749
- echo " 2. Run diff to generate migrations"
1750
- echo " 3. See .agents/workflows/sql-migrations.md"
1815
+ echo " ${step}. Add schema files to schemas/"
1816
+ ((step++))
1817
+ echo " ${step}. Run diff to generate migrations"
1818
+ ((step++))
1819
+ echo " ${step}. See .agents/workflows/sql-migrations.md"
1751
1820
  else
1752
- echo " 1. Add tasks to TODO.md"
1753
- echo " 2. Use /create-prd for complex features"
1754
- echo " 3. Use /feature to start development"
1821
+ echo " ${step}. Add tasks to TODO.md"
1822
+ ((step++))
1823
+ echo " ${step}. Use /create-prd for complex features"
1824
+ ((step++))
1825
+ echo " ${step}. Use /feature to start development"
1755
1826
  fi
1756
1827
 
1757
1828
  return 0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "2.144.0",
3
+ "version": "2.145.0",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "bin": {
package/setup.sh CHANGED
@@ -10,7 +10,7 @@ shopt -s inherit_errexit 2>/dev/null || true
10
10
  # AI Assistant Server Access Framework Setup Script
11
11
  # Helps developers set up the framework for their infrastructure
12
12
  #
13
- # Version: 2.144.0
13
+ # Version: 2.145.0
14
14
  #
15
15
  # Quick Install:
16
16
  # npm install -g aidevops && aidevops update (recommended)
@@ -3,7 +3,7 @@ Add ~/.aidevops/agents/AGENTS.md to context for AI DevOps capabilities.
3
3
  ## aidevops Framework Status
4
4
 
5
5
  **On conversation start**:
6
- 1. If you have Bash tool: Run `bash ~/.aidevops/agents/scripts/aidevops-update-check.sh`
6
+ 1. If you have Bash tool: Run `bash ~/.aidevops/agents/scripts/aidevops-update-check.sh --interactive`
7
7
  2. If no Bash tool: Read `~/.aidevops/cache/session-greeting.txt` (cached by agents with Bash)
8
8
  3. Parse the first line of output (format: `aidevops v{version} running in {app} v{app_version} | {repo}`). Greet with: "Hi!\n\nWe're running https://aidevops.sh v{version} in {app} v{app_version}.\n\nWhat would you like to work on?"
9
9
  4. Then respond to the user's actual message