loki-mode 6.63.0 → 6.63.1

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/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: loki-mode
3
3
  description: Multi-agent autonomous startup system. Triggers on "Loki Mode". Takes PRD to deployed product with minimal human intervention. Requires --dangerously-skip-permissions flag.
4
4
  ---
5
5
 
6
- # Loki Mode v6.63.0
6
+ # Loki Mode v6.63.1
7
7
 
8
8
  **You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
9
9
 
@@ -267,4 +267,4 @@ The following features are documented in skill modules but not yet fully automat
267
267
  | Quality gates 3-reviewer system | Implemented (v5.35.0) | 5 specialist reviewers in `skills/quality-gates.md`; execution in run.sh |
268
268
  | Benchmarks (HumanEval, SWE-bench) | Infrastructure only | Runner scripts and datasets exist in `benchmarks/`; no published results |
269
269
 
270
- **v6.63.0 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
270
+ **v6.63.1 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 6.63.0
1
+ 6.63.1
package/autonomy/loki CHANGED
@@ -3091,7 +3091,9 @@ cmd_dashboard_open() {
3091
3091
 
3092
3092
  PURPLE_LAB_DEFAULT_PORT=57375
3093
3093
  PURPLE_LAB_DEFAULT_HOST="127.0.0.1"
3094
- PURPLE_LAB_PID_FILE="${LOKI_DIR}/purple-lab/purple-lab.pid"
3094
+ # Use HOME-based path so stop works from any CWD
3095
+ PURPLE_LAB_STATE_DIR="${HOME}/.loki/purple-lab"
3096
+ PURPLE_LAB_PID_FILE="${PURPLE_LAB_STATE_DIR}/purple-lab.pid"
3095
3097
 
3096
3098
  cmd_web() {
3097
3099
  local subcommand="${1:-start}"
@@ -3281,7 +3283,12 @@ cmd_web_start() {
3281
3283
  nohup "$DASHBOARD_PYTHON" "$server_py" > "$log_file" 2>&1 &
3282
3284
  local pid=$!
3283
3285
 
3286
+ mkdir -p "$PURPLE_LAB_STATE_DIR"
3284
3287
  echo "$pid" > "$PURPLE_LAB_PID_FILE"
3288
+ echo "$port" > "${PURPLE_LAB_STATE_DIR}/port"
3289
+ # Also write to local .loki for backward compat
3290
+ mkdir -p "${LOKI_DIR}/purple-lab"
3291
+ echo "$pid" > "${LOKI_DIR}/purple-lab/purple-lab.pid"
3285
3292
  echo "$port" > "${LOKI_DIR}/purple-lab/port"
3286
3293
 
3287
3294
  # Wait for server to be ready
@@ -3324,16 +3331,20 @@ cmd_web_start() {
3324
3331
  cmd_web_stop() {
3325
3332
  local stopped=false
3326
3333
  local port
3327
- port=$(cat "${LOKI_DIR}/purple-lab/port" 2>/dev/null || echo "$PURPLE_LAB_DEFAULT_PORT")
3334
+ port=$(cat "${PURPLE_LAB_STATE_DIR}/port" 2>/dev/null || cat "${LOKI_DIR}/purple-lab/port" 2>/dev/null || echo "$PURPLE_LAB_DEFAULT_PORT")
3328
3335
 
3329
3336
  # Gracefully stop any active session before killing Purple Lab
3330
3337
  curl -s --max-time 3 -X POST "http://127.0.0.1:${port}/api/session/stop" >/dev/null 2>&1 || true
3331
3338
  sleep 1
3332
3339
 
3333
- # Try PID file first
3334
- if [ -f "$PURPLE_LAB_PID_FILE" ]; then
3340
+ # Try PID file first (check global location, then local)
3341
+ local pid_file="$PURPLE_LAB_PID_FILE"
3342
+ if [ ! -f "$pid_file" ]; then
3343
+ pid_file="${LOKI_DIR}/purple-lab/purple-lab.pid"
3344
+ fi
3345
+ if [ -f "$pid_file" ]; then
3335
3346
  local pid
3336
- pid=$(cat "$PURPLE_LAB_PID_FILE" 2>/dev/null)
3347
+ pid=$(cat "$pid_file" 2>/dev/null)
3337
3348
  if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
3338
3349
  kill "$pid" 2>/dev/null
3339
3350
  sleep 1
@@ -3361,11 +3372,32 @@ cmd_web_stop() {
3361
3372
  stopped=true
3362
3373
  fi
3363
3374
 
3375
+ # Also kill any orphan web-app/server.py processes (catches processes from other CWDs)
3376
+ local orphan_pids
3377
+ orphan_pids=$(pgrep -f "web-app/server.py" 2>/dev/null || true)
3378
+ if [ -n "$orphan_pids" ]; then
3379
+ for opid in $orphan_pids; do
3380
+ if kill -0 "$opid" 2>/dev/null; then
3381
+ kill "$opid" 2>/dev/null
3382
+ sleep 1
3383
+ if kill -0 "$opid" 2>/dev/null; then
3384
+ kill -9 "$opid" 2>/dev/null
3385
+ fi
3386
+ if [ "$stopped" = false ]; then
3387
+ echo -e "${GREEN}Purple Lab stopped (orphan process PID: $opid)${NC}"
3388
+ fi
3389
+ stopped=true
3390
+ fi
3391
+ done
3392
+ fi
3393
+
3364
3394
  if [ "$stopped" = false ]; then
3365
3395
  echo "Purple Lab is not running."
3366
3396
  fi
3367
3397
 
3398
+ # Clean PID files from current dir AND home dir (catches cross-CWD state)
3368
3399
  rm -f "$PURPLE_LAB_PID_FILE" "${LOKI_DIR}/purple-lab/port" 2>/dev/null || true
3400
+ rm -f "$HOME/.loki/purple-lab/purple-lab.pid" "$HOME/.loki/purple-lab/port" 2>/dev/null || true
3369
3401
 
3370
3402
  # Kill only processes that Purple Lab started (tracked in child-pids.json)
3371
3403
  # External loki sessions (started via "loki start" from terminal) are NOT touched
@@ -7,7 +7,7 @@ Modules:
7
7
  control: Session control API (start/stop/pause/resume)
8
8
  """
9
9
 
10
- __version__ = "6.63.0"
10
+ __version__ = "6.63.1"
11
11
 
12
12
  # Expose the control app for easy import
13
13
  try:
@@ -2,7 +2,7 @@
2
2
 
3
3
  The flagship product of [Autonomi](https://www.autonomi.dev/). Complete installation instructions for all platforms and use cases.
4
4
 
5
- **Version:** v6.63.0
5
+ **Version:** v6.63.1
6
6
 
7
7
  ---
8
8
 
package/mcp/__init__.py CHANGED
@@ -57,4 +57,4 @@ try:
57
57
  except ImportError:
58
58
  __all__ = ['mcp']
59
59
 
60
- __version__ = '6.63.0'
60
+ __version__ = '6.63.1'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loki-mode",
3
- "version": "6.63.0",
3
+ "version": "6.63.1",
4
4
  "description": "Loki Mode by Autonomi - Multi-agent autonomous startup system for Claude Code, Codex CLI, and Gemini CLI",
5
5
  "keywords": [
6
6
  "agent",