@meridiona/meridian-darwin-arm64 1.26.1 → 1.27.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
- 1.26.1
1
+ 1.27.0
package/bin/meridian CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meridiona/meridian-darwin-arm64",
3
- "version": "1.26.1",
3
+ "version": "1.27.0",
4
4
  "description": "Prebuilt Meridian app for macOS arm64 (daemon binary + dashboard + Python services). Installed via @meridiona/meridian.",
5
5
  "homepage": "https://github.com/Meridiona/meridian",
6
6
  "repository": {
@@ -45,10 +45,12 @@ Commands:
45
45
  -n N Last N lines (default 100)
46
46
  doctor Run environment health checks (includes pipeline smoke)
47
47
  smoke Dry-run both LLM pipeline stages — no DB writes
48
+ migrate-db Apply pending database migrations (if UI shows schema errors)
48
49
  worklog-status Show today's PM worklogs (done/pending/drafted/posted + comments)
49
50
  [--day YYYY-MM-DD]
50
51
  config edit Open the repo-root .env in $EDITOR
51
52
  permissions Open macOS permission panes for screenpipe
53
+ update Pull latest changes, rebuild, and restart (source checkout only)
52
54
  uninstall Stop daemons and remove CLI symlinks
53
55
  version Print installed version
54
56
  --help | -h Show this help
@@ -449,6 +451,28 @@ cmd_config() {
449
451
  "${EDITOR:-nano}" "$env_file"
450
452
  }
451
453
 
454
+ # --- update ---
455
+ cmd_update() {
456
+ if _is_source_checkout; then
457
+ info "pulling latest changes…"
458
+ git -C "${REPO_ROOT}" pull --ff-only || {
459
+ err "git pull failed — resolve conflicts manually, then run 'meridian dev build' and 'meridian restart'"
460
+ exit 1
461
+ }
462
+ info "rebuilding daemon (cargo --release)…"
463
+ ( cd "${REPO_ROOT}" && cargo build --release )
464
+ info "rebuilding UI…"
465
+ ( cd "${REPO_ROOT}/ui" && npm run build )
466
+ info "restarting daemons…"
467
+ cmd_restart
468
+ ok "updated to $(cat "${REPO_ROOT}/VERSION" 2>/dev/null || git -C "${REPO_ROOT}" rev-parse --short HEAD)"
469
+ else
470
+ err "meridian update is not available in a source checkout context."
471
+ err "Run: npm install -g @meridiona/meridian@latest"
472
+ exit 1
473
+ fi
474
+ }
475
+
452
476
  # --- uninstall ---
453
477
  cmd_uninstall() {
454
478
  local ans
@@ -605,6 +629,63 @@ _dev_ui_server() {
605
629
  fi
606
630
  }
607
631
 
632
+ cmd_migrate_db() {
633
+ local db="${HOME}/.meridian/meridian.db"
634
+
635
+ if [[ ! -f "${db}" ]]; then
636
+ err "database not found at ${db}"
637
+ exit 1
638
+ fi
639
+
640
+ info "Checking database schema…"
641
+ local has_claude_uuid
642
+ has_claude_uuid=$(sqlite3 "${db}" ".schema app_sessions" 2>/dev/null | grep -c "claude_session_uuid" || echo "0")
643
+
644
+ if [[ "${has_claude_uuid}" -gt 0 ]]; then
645
+ ok "database schema is up-to-date"
646
+ exit 0
647
+ fi
648
+
649
+ info "Database schema is incomplete — applying migrations…"
650
+ info "Stopping daemon (to prevent locks)…"
651
+ launchctl bootout "${GUI_TARGET}/${LABEL_DAEMON}" 2>/dev/null || true
652
+ sleep 2
653
+
654
+ local backup="${db}.backup.$(date +%s)"
655
+ info "Backing up database to ${backup}…"
656
+ cp "${db}" "${backup}"
657
+ ok "Backup created"
658
+
659
+ info "Running daemon to apply migrations (this may take 10-30 seconds)…"
660
+ local daemon_bin
661
+ daemon_bin="$(_daemon_bin)" || { err "daemon binary not found"; exit 1; }
662
+
663
+ # Run the daemon in the background; it will apply migrations on startup
664
+ set +e
665
+ timeout 60 "${daemon_bin}" >/dev/null 2>&1 &
666
+ local daemon_pid=$!
667
+ sleep 15 # Give it time to initialize and apply migrations
668
+ kill $daemon_pid 2>/dev/null || true
669
+ set -e
670
+
671
+ # Verify migrations applied
672
+ info "Verifying schema…"
673
+ has_claude_uuid=$(sqlite3 "${db}" ".schema app_sessions" 2>/dev/null | grep -c "claude_session_uuid" || echo "0")
674
+
675
+ if [[ "${has_claude_uuid}" -gt 0 ]]; then
676
+ ok "migrations applied successfully"
677
+ info "Restarting daemon…"
678
+ launchctl enable "${GUI_TARGET}/${LABEL_DAEMON}" 2>/dev/null || true
679
+ launchctl kickstart -k "${GUI_TARGET}/${LABEL_DAEMON}" 2>/dev/null || true
680
+ ok "Done. The UI should now work."
681
+ exit 0
682
+ else
683
+ err "migrations failed — database not updated"
684
+ info "To restore the backup: cp ${backup} ${db}"
685
+ exit 1
686
+ fi
687
+ }
688
+
608
689
  cmd_dev() {
609
690
  if ! _is_source_checkout; then
610
691
  err "'meridian dev' needs a source checkout (no Cargo.toml at ${REPO_ROOT})."
@@ -643,8 +724,10 @@ case "$CMD" in
643
724
  logs) cmd_logs "$@" ;;
644
725
  doctor) cmd_doctor "$@" ;;
645
726
  smoke) cmd_smoke "$@" ;;
727
+ migrate-db) cmd_migrate_db "$@" ;;
646
728
  config) cmd_config "$@" ;;
647
729
  dev) cmd_dev "$@" ;;
730
+ update) cmd_update ;;
648
731
  uninstall) cmd_uninstall ;;
649
732
  permissions) cmd_permissions ;;
650
733
  version|--version|-v) cat "${REPO_ROOT}/VERSION" 2>/dev/null || echo "unknown" ;;
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "meridian-agents"
7
- version = "1.26.1"
7
+ version = "1.27.0"
8
8
  description = "Meridian agents — hermes task linking and Jira progress updates for meridian.db"
9
9
  requires-python = ">=3.11"
10
10
  authors = [{ name = "Meridiona" }]
package/ui.tar.gz DELETED
Binary file