juno-code 1.0.49 → 1.0.50

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.
Files changed (32) hide show
  1. package/README.md +417 -203
  2. package/dist/bin/cli.d.mts +1 -1
  3. package/dist/bin/cli.d.ts +1 -1
  4. package/dist/bin/cli.js +1736 -976
  5. package/dist/bin/cli.js.map +1 -1
  6. package/dist/bin/cli.mjs +1735 -975
  7. package/dist/bin/cli.mjs.map +1 -1
  8. package/dist/bin/feedback-collector.js.map +1 -1
  9. package/dist/bin/feedback-collector.mjs.map +1 -1
  10. package/dist/index.d.mts +33 -7
  11. package/dist/index.d.ts +33 -7
  12. package/dist/index.js +202 -27
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.mjs +202 -27
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/templates/scripts/install_requirements.sh +41 -3
  17. package/dist/templates/scripts/kanban.sh +4 -0
  18. package/dist/templates/services/__pycache__/pi.cpython-313.pyc +0 -0
  19. package/dist/templates/services/pi.py +1281 -238
  20. package/dist/templates/skills/claude/kanban-workflow/SKILL.md +138 -0
  21. package/dist/templates/skills/claude/plan-kanban-tasks/SKILL.md +1 -1
  22. package/dist/templates/skills/claude/ralph-loop/scripts/kanban.sh +4 -0
  23. package/dist/templates/skills/claude/understand-project/SKILL.md +1 -1
  24. package/dist/templates/skills/codex/kanban-workflow/SKILL.md +139 -0
  25. package/dist/templates/skills/codex/plan-kanban-tasks/SKILL.md +32 -0
  26. package/dist/templates/skills/codex/ralph-loop/scripts/kanban.sh +4 -0
  27. package/dist/templates/skills/codex/understand-project/SKILL.md +46 -0
  28. package/dist/templates/skills/pi/kanban-workflow/SKILL.md +139 -0
  29. package/dist/templates/skills/pi/plan-kanban-tasks/SKILL.md +1 -1
  30. package/dist/templates/skills/pi/ralph-loop/SKILL.md +4 -0
  31. package/dist/templates/skills/pi/understand-project/SKILL.md +1 -1
  32. package/package.json +7 -5
@@ -13,7 +13,7 @@
13
13
  # - If inside venv: installs into venv
14
14
  # - If externally managed Python detected: uses pipx or creates temporary venv
15
15
  # - If outside venv (non-managed): uses --system flag for system-wide installation
16
- # 6. Installs required packages: juno-kanban, roundtable-ai
16
+ # 6. Installs required packages: juno-kanban
17
17
  # 7. Reports if requirements are already satisfied
18
18
  #
19
19
  # Usage: ./install_requirements.sh
@@ -54,13 +54,13 @@ NC='\033[0m' # No Color
54
54
  # Required packages
55
55
  # Note: requests and python-dotenv are required by github.py
56
56
  # slack_sdk is required by Slack integration scripts (slack_fetch.py, slack_respond.py)
57
- REQUIRED_PACKAGES=("juno-kanban" "roundtable-ai" "requests" "python-dotenv" "slack_sdk")
57
+ REQUIRED_PACKAGES=("juno-kanban" "requests" "python-dotenv" "slack_sdk")
58
58
 
59
59
  # Version check cache configuration
60
60
  # This ensures we don't check PyPI on every run (performance optimization per Task RTafs5)
61
61
  VERSION_CHECK_CACHE_DIR="${HOME}/.juno_code"
62
62
  VERSION_CHECK_CACHE_FILE="${VERSION_CHECK_CACHE_DIR}/.version_check_cache"
63
- VERSION_CHECK_INTERVAL_HOURS=24 # Check for updates once per day
63
+ VERSION_CHECK_INTERVAL_HOURS="${VERSION_CHECK_INTERVAL_HOURS:-24}" # Check for updates once per day (override via env var)
64
64
 
65
65
  # Logging functions
66
66
  log_info() {
@@ -402,6 +402,38 @@ is_externally_managed_python() {
402
402
  return 1 # Not externally managed
403
403
  }
404
404
 
405
+ # Function to upgrade pip to latest version inside the active venv
406
+ # Why: venv ships with the pip version bundled in the Python distribution,
407
+ # which can be months/years behind. Old pip may fail to resolve modern
408
+ # dependency metadata or miss security fixes. Upgrading pip is fast (<2s)
409
+ # and prevents hard-to-debug install failures downstream.
410
+ upgrade_pip_in_venv() {
411
+ if ! is_in_virtualenv; then
412
+ return 0 # Only upgrade pip inside a venv
413
+ fi
414
+
415
+ log_info "Upgrading pip to latest version in venv..."
416
+
417
+ # Prefer uv for speed, fall back to pip itself
418
+ if command -v uv &>/dev/null; then
419
+ if uv pip install --upgrade pip --quiet 2>/dev/null; then
420
+ local pip_ver
421
+ pip_ver=$(python3 -m pip --version 2>/dev/null | awk '{print $2}' || echo "unknown")
422
+ log_success "pip upgraded to v$pip_ver (via uv)"
423
+ return 0
424
+ fi
425
+ fi
426
+
427
+ # Fall back to pip self-upgrade
428
+ if python3 -m pip install --upgrade pip --quiet 2>/dev/null; then
429
+ local pip_ver
430
+ pip_ver=$(python3 -m pip --version 2>/dev/null | awk '{print $2}' || echo "unknown")
431
+ log_success "pip upgraded to v$pip_ver"
432
+ else
433
+ log_warning "Could not upgrade pip (non-fatal, continuing with current version)"
434
+ fi
435
+ }
436
+
405
437
  # Function to install packages using pipx
406
438
  install_with_pipx() {
407
439
  log_info "Installing packages using 'pipx' (recommended for Python applications)..."
@@ -492,6 +524,9 @@ install_with_uv() {
492
524
  log_error "Virtual environment activation script not found"
493
525
  return 1
494
526
  fi
527
+
528
+ # Upgrade pip to latest version in venv
529
+ upgrade_pip_in_venv
495
530
  fi
496
531
 
497
532
  local failed_packages=()
@@ -562,6 +597,9 @@ install_with_pip() {
562
597
  source "$venv_path/bin/activate"
563
598
  log_success "Activated virtual environment"
564
599
  python_cmd="python" # Use the venv's python
600
+
601
+ # Upgrade pip to latest version in venv
602
+ upgrade_pip_in_venv
565
603
  fi
566
604
 
567
605
  local failed_packages=()
@@ -190,6 +190,10 @@ fi
190
190
  # Change to project root
191
191
  cd "$PROJECT_ROOT"
192
192
 
193
+ # Export JUNO_TASK_ROOT so juno-kanban resolves .juno_task paths from project root,
194
+ # not from wherever the calling agent happens to be. Respects existing override.
195
+ export JUNO_TASK_ROOT="${JUNO_TASK_ROOT:-$PROJECT_ROOT}"
196
+
193
197
  # Arrays to store normalized arguments (declared at script level for proper handling)
194
198
  declare -a NORMALIZED_GLOBAL_FLAGS=()
195
199
  declare -a NORMALIZED_COMMAND_ARGS=()