@meridiona/meridian-darwin-arm64 1.14.2 → 1.15.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.14.2
1
+ 1.15.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.14.2",
3
+ "version": "1.15.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": {
@@ -268,23 +268,51 @@ else
268
268
  fi
269
269
 
270
270
  # ── 4. Python venv + MLX deps ────────────────────────────────────────────────
271
- # uv reads services/uv.lock (hashed, cross-platform, committed) and installs the
272
- # exact pinned set with no PyPI resolution at install time. On subsequent runs
273
- # `uv sync --frozen` is a no-op when the venv is already up-to-date — faster than
274
- # the old DEPS_STAMP approach and handles cross-version upgrades correctly.
275
- # PYTHON_BIN is the brew-installed Python we know runs MLX/Metal; --python pins
276
- # the interpreter used when uv creates a fresh venv (existing venvs are unchanged).
271
+ # Two paths:
272
+ # A) Pre-built tarball (release bundle): services-venv.tar.gz ships with the
273
+ # package. Extract site-packages into a freshly-created venv (correct local
274
+ # paths) ~5s, no PyPI, no internet. Stamp the tarball hash so re-runs and
275
+ # `meridian update` skip extraction when the deps haven't changed.
276
+ # B) Dev fallback: no tarball present `uv sync --frozen` from uv.lock.
277
+ # Downloads from PyPI the first time (~40s); subsequent runs are a no-op.
277
278
  VENV="${APP_ROOT}/services/.venv"
279
+ VENV_TARBALL="${APP_ROOT}/services-venv.tar.gz"
280
+ VENV_STAMP="${VENV}/.meridian-venv-hash"
278
281
 
279
- info "Installing Python + MLX deps (mlx-lm/outlines/fastapi; first run may download a few hundred MB)…"
280
- if "${UV_BIN}" sync \
281
- --project "${APP_ROOT}/services" \
282
- --extra mlx \
283
- --frozen \
284
- --python "${PYTHON_BIN}"; then
285
- ok "Python services ready ($(${VENV}/bin/python --version 2>&1))"
282
+ if [[ -f "${VENV_TARBALL}" ]]; then
283
+ _tarball_hash="$(shasum -a 256 "${VENV_TARBALL}" | cut -d' ' -f1)"
284
+ _have_hash=""; [[ -f "${VENV_STAMP}" ]] && _have_hash="$(cat "${VENV_STAMP}" 2>/dev/null)"
285
+
286
+ if [[ "${_tarball_hash}" == "${_have_hash}" && -x "${VENV}/bin/python" ]]; then
287
+ ok "Python deps unchanged — reusing existing venv (skipped extraction)"
288
+ else
289
+ info "Extracting pre-built Python venv (no PyPI download required)…"
290
+ rm -rf "${VENV}"
291
+ # Create a fresh venv with correct local paths (pyvenv.cfg points to
292
+ # PYTHON_BIN, which install-mlx-server-daemon.sh reads for BASE_PYTHON).
293
+ "${UV_BIN}" venv --python "${PYTHON_BIN}" "${VENV}" 2>/dev/null
294
+ # Determine the Python version subdirectory (e.g. python3.11).
295
+ _py_dir="$(ls "${VENV}/lib/" | grep '^python' | head -1)"
296
+ mkdir -p "${VENV}/lib/${_py_dir}/site-packages"
297
+ tar -xzf "${VENV_TARBALL}" -C "${VENV}/lib/${_py_dir}/site-packages"
298
+ # Install the local editable package (meridian-agents) — no deps needed,
299
+ # everything is already in site-packages from the tarball.
300
+ "${UV_BIN}" pip install --quiet --no-deps -e "${APP_ROOT}/services"
301
+ printf '%s\n' "${_tarball_hash}" > "${VENV_STAMP}"
302
+ ok "Python services ready ($(${VENV}/bin/python --version 2>&1))"
303
+ fi
286
304
  else
287
- warn "uv sync failedleaving venv as-is; re-run 'meridian setup' to retry"
305
+ # Dev / source install no pre-built tarball. Resolve from uv.lock.
306
+ info "Installing Python + MLX deps (mlx-lm/outlines/fastapi; first run may download a few hundred MB)…"
307
+ if "${UV_BIN}" sync \
308
+ --project "${APP_ROOT}/services" \
309
+ --extra mlx \
310
+ --frozen \
311
+ --python "${PYTHON_BIN}"; then
312
+ ok "Python services ready ($(${VENV}/bin/python --version 2>&1))"
313
+ else
314
+ warn "uv sync failed — leaving venv as-is; re-run 'meridian setup' to retry"
315
+ fi
288
316
  fi
289
317
 
290
318
  # ── 5. macOS permissions for screenpipe (manual — can't be automated) ────────
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "meridian-agents"
7
- version = "1.14.2"
7
+ version = "1.15.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 CHANGED
Binary file