Skip to content

Feature/mtplx#54

Merged
cryptopoly merged 4 commits into
stagingfrom
feature/mtplx
May 15, 2026
Merged

Feature/mtplx#54
cryptopoly merged 4 commits into
stagingfrom
feature/mtplx

Conversation

@cryptopoly
Copy link
Copy Markdown
Owner

No description provided.

Locale & Language Support - Huge Refactor - Modularisation
chore: v0.9.0 release fixes — version bump, submodule cleanup, Windows build fix
fix: babel bundling + updater artifacts + i18n middleware fallback
Adds end-to-end MTPLX support — isolated venv at ~/.chaosengine/mtplx-venv
plus engine, capability probe, routing, install flow, and full UI wiring.

Backend
- _mtp.py model registry: MTP_MODEL_MAP + _MTP_ALIASES (Qwen3.5/3.6,
  DeepSeek V3/R1, Coder-Next, Youssofal/Qwen3.6-27B-MTPLX-Optimized-*)
- MtplxEngine subprocess wrapper (load/generate/stream over OpenAI-
  compatible HTTP). Fails into RuntimeError; controller catches and
  falls back to MLXWorkerEngine with a runtimeNote.
- capabilities: cheap file-existence probe for mtplx-venv + version file.
- controller._select_engine routes MLX + speculativeDecoding +
  has_mtp_heads + mtplxAvailable -> MtplxEngine.
- controller orphan-prune extended to MTPLX subprocesses.
- controller _LLAMA_HELP_LOCK import (pre-existing latent NameError).
- helpers/system.py exposes mtplx info to workspace system stats.

Install flow
- scripts/install-mtplx.sh + routes/setup/mtplx.py background-job
  pattern (POST start, GET status). Path was parents[4] -> parents[3].

Frontend
- useMtplxInstall hook with poll + unmount cleanup.
- RuntimeControls renders MTPLX section when model has MTP heads;
  hides DFlash when MTPLX supersedes (backend already prefers MTPLX).
- Install terminal panel hidden when phase=="done" so it doesn't
  re-appear on every modal open after a successful install.
- ModelLaunchModal mtplx props plumbed through all four wrappers:
  Chat (LaunchModal), HTML Challenge (ChallengePickerModal),
  Compare (CompareView), Benchmarks (BenchmarkRunTab).
- MyModelsTab MTPLX strategy filter; OnlineModelsTab Acceleration row.
- summarizeLaunchSettings + modelUsesMtplx helper so summary label
  shows "MTPLX" when backend will actually route through it.
- MyModelsTab MTPLX filter tightened to modelName-only candidateKeys
  (was matching via fuzzy matchedVariant.repo, giving false positives
  on UD/Unsloth repacks + Gemma).

Cleanup
- Removed Compare button from chat sidebar (Compare is own tab now).

Tests
- 10 integration tests in tests/test_mtplx_engine_integration.py
  exercising engine spawn -> /health -> /v1/chat/completions (JSON +
  SSE) -> done chunk via stub mtplx server at tests/fixtures/
  stub_mtplx_server.py. Plus controller-routing assertions.
- 1365 Python tests pass; 371 TypeScript tests pass; tsc clean.
@cryptopoly cryptopoly merged commit 2379f3e into staging May 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant