Menu

#468 Rust-only + DMG-only: remove Python/MLX and npm, rewrite install/dev tooling, candle 0.10.2

closed
nobody
None
2026-07-18
2026-07-18
Anonymous
No

Originally created by: adityaharishch

Summary

Makes Meridian a Rust-only, DMG-only product: removes the entire Python/MLX stack and the redundant npm distribution channel, rewrites the install/dev tooling around it, and folds in the latest pre-main. No functional capability was lost — every working path was migrated to Rust before the corresponding Python/MLX code was deleted.

Net: 252 files, +3,198 / −23,035.

What changed

Python / MLX removal (the bulk)

  • Deleted the entire services/ tree (MLX server, agents, eval harness, runtime packaging) and the Python coding-agent indexer/summariser — all already ported to the Rust daemon.
  • Removed the on-device Local (MLX) LLM provider and its setup-wizard step; generation now runs only through the user's chosen CLI provider (Claude/Codex/Cursor/Copilot) or a custom endpoint.
  • The session distiller's embedder runs in-process via candle (src/embedder/, BAAI/bge-small-en-v1.5) — the only on-device model left.
  • Purged dead MLX/Python references from the Rust tree, health checks, docs (CONTRIBUTING, RUNBOOK, TESTING, READMEs, CLAUDE.md), and release machinery.

Distribution: DMG-only (npm removed)

  • Removed the npm channel (@meridiona/meridian, @semantic-release/npm, install-from-bundle.sh, package-release.sh, npm publish/OIDC). The signed DMG self-installs its daemon + launchd on first launch — it never needed a second channel.
  • Version-update check repointed from the npm registry to the GitHub releases API.
  • Dropped the dead npm-bundle daemon binary path (~/.meridian/app/bin/meridian); the DMG stages to ~/.meridian/bin/meridian. (Credential-migration from the old bundle .env is intentionally kept for upgraders.)

Install / dev tooling, Rust-only

  • install.sh / install-dev.sh: removed all MLX/Python/services steps; skill install via meridian coding-agent-install-skill; smoke via meridian doctor.
  • bootstrap.sh: now downloads + installs the DMG (no brew/node/npm/Python).
  • meridian-cli.sh: Rust-only; meridian dev now launches the full dev environment (cargo-watch daemon + tauri dev tray, = dev-start.sh), replacing the old launchd+next dev model. Removed the now-dead dev ui/dev daemon sub-targets.

Dependencies

  • candle 0.8 → 0.10.2 (latest stable that builds on our pinned Rust 1.93.1; 0.11.0 needs nightly for stdarch_neon_f16). No embedder code changes required.

Test hygiene

  • Fixed a pre-existing parallelism race in meridian-oauth tests (env-var mutation) with a crate-level serialisation guard.

Merged from pre-main

  • Notifications-plugin CI clean fix, capture autorelease-pool drain around Vision OCR / AX walks, and What's New docs. .releaserc conflicts resolved to keep the npm-free release and adopt pre-main's notifications-plugin cargo clean step.

Verification

  • cargo fmt --check, cargo clippy --workspace --all-targets -D warnings (+ tray): clean
  • cargo test --workspace: all 23 suites green
  • ui production build: clean static export; bun test: 227 pass
  • Full pre-push hook (fmt + clippy + tests + UI build + UI tests + security audit) passed on push
  • Manually verified on a live install: daemon boots, distiller runs in Rust (candle), worklog pipeline generates, meridian dev runs the full hot-reload environment

Notes

  • Targets pre-main per repo policy. Leaving the actual merge to a maintainer.
  • macOS / Apple Silicon only (unchanged).

Related

Tickets: #476
Tickets: #479
Tickets: #480
Tickets: #481

Discussion

  • Anonymous

    Anonymous - 2026-07-18

    Originally posted by: coderabbitai[bot]

    [!IMPORTANT]

    Review skipped

    Auto reviews are disabled on base/target branches other than the default branch.

    Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.


    ⚙️ Run configuration

    Configuration used: Organization UI

    Review profile: ASSERTIVE

    Plan: Pro Plus

    Run ID: 00734f89-a47b-4c95-b824-dd5c40c6dfa0

    You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

    Use the checkbox below for a quick retry:
    - [ ] 🔍 Trigger review

    ✨ Finishing Touches
    🧪 Generate unit tests (beta) - [ ] Create PR with unit tests - [ ] Commit unit tests in branch `feat/llm-provider-enum`

    Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

    ❤️ Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

    Comment @coderabbitai help to get the list of available commands.

     
  • Anonymous

    Anonymous - 2026-07-18

    Ticket changed by: adityaharishch

    • status: open --> closed
     

Log in to post a comment.