brain-dev 1.2.4 → 1.2.5

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.
@@ -13,6 +13,12 @@ if [ ! -f "$BRAIN_DIR/brain.json" ]; then
13
13
  exit 0
14
14
  fi
15
15
 
16
+ # Background update check (non-blocking, must run before any exit 0)
17
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
18
+ INSTALLED_VERSION=$(node -e "try{const b=JSON.parse(require('fs').readFileSync('$BRAIN_DIR/brain.json','utf8'));console.log(b.version||'unknown')}catch{console.log('unknown')}" 2>/dev/null)
19
+ bash "$SCRIPT_DIR/check-update.sh" "$BRAIN_DIR" "$INSTALLED_VERSION" &>/dev/null &
20
+ disown
21
+
16
22
  # Crash recovery check
17
23
  RECOVERY=$(npx brain-dev recover --json 2>/dev/null)
18
24
  if [ $? -eq 0 ] && echo "$RECOVERY" | node -e "
@@ -66,8 +72,3 @@ try {
66
72
  if [ -f "$BRAIN_DIR/brain.json" ]; then
67
73
  npx brain-dev health --quick 2>/dev/null
68
74
  fi
69
-
70
- # Background update check (non-blocking)
71
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
72
- bash "$SCRIPT_DIR/check-update.sh" "$BRAIN_DIR" &>/dev/null &
73
- disown
@@ -1,18 +1,30 @@
1
1
  #!/bin/bash
2
2
  # Background npm version check — writes result to .brain/.update-check.json
3
3
  # Called by bootstrap.sh with & (background, non-blocking)
4
+ # Usage: check-update.sh <brain-dir> [installed-version]
4
5
 
5
6
  BRAIN_DIR="${1:-.brain}"
6
7
  CACHE_FILE="$BRAIN_DIR/.update-check.json"
8
+ INSTALLED="${2:-}"
7
9
 
8
- # Read installed version from package
9
- INSTALLED=$(node -e "try{console.log(require('brain-dev/package.json').version)}catch{console.log('unknown')}" 2>/dev/null)
10
- if [ "$INSTALLED" = "unknown" ] || [ -z "$INSTALLED" ]; then
11
- INSTALLED=$(npx brain-dev version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
10
+ # If installed version not passed, read from brain.json
11
+ if [ -z "$INSTALLED" ] || [ "$INSTALLED" = "unknown" ]; then
12
+ INSTALLED=$(node -e "try{const b=JSON.parse(require('fs').readFileSync('$BRAIN_DIR/brain.json','utf8'));console.log(b.version||'unknown')}catch{console.log('unknown')}" 2>/dev/null)
12
13
  fi
13
14
 
14
- # Query npm for latest (10 second timeout)
15
- LATEST=$(timeout 10 npm view brain-dev version 2>/dev/null)
15
+ # Still unknown cannot compare, skip
16
+ if [ -z "$INSTALLED" ] || [ "$INSTALLED" = "unknown" ]; then
17
+ exit 0
18
+ fi
19
+
20
+ # Query npm for latest (use perl as timeout fallback for stock macOS)
21
+ if command -v timeout &>/dev/null; then
22
+ LATEST=$(timeout 10 npm view brain-dev version 2>/dev/null)
23
+ elif command -v perl &>/dev/null; then
24
+ LATEST=$(perl -e 'alarm 10; exec @ARGV' npm view brain-dev version 2>/dev/null)
25
+ else
26
+ LATEST=$(npm view brain-dev version 2>/dev/null)
27
+ fi
16
28
 
17
29
  if [ -z "$LATEST" ]; then
18
30
  # npm unavailable or timeout — skip silently
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brain-dev",
3
- "version": "1.2.4",
3
+ "version": "1.2.5",
4
4
  "description": "AI-powered development workflow orchestrator",
5
5
  "author": "halilcosdu",
6
6
  "license": "MIT",