The BROKE Cluster Team
25609e4dcb
Release 2.0.4-beta.5: Community repair tool + OS-agnostic benchmarking
...
Closes #49 (Mistral Tokenizer Bug)
Major features:
- Workspace Infrastructure (ADR-018 Phase 0a): Managed workspace detection,
provenance metadata, backward compatible with unmanaged workspaces
- Convert Operation (ADR-018 Phase 1): `mlxk convert --repair-index` fixes
mlx-vlm #624 affected models (7+ models including Qwen2.5-VL, gemma-3)
- Resumable Pull: Auto-detect partial downloads with `--force-resume`
- Wet Umbrella Test Integration: Single entry point for all real model tests
Fixes:
- #49 : BPE space markers now correctly converted (Mistral-family models)
- Vision Portfolio Discovery: Filter by capabilities instead of model_type
- Memory Cleanup Hook: Triggers for both live_e2e and wet markers
Test suite: 528 passed, 60 skipped (Python 3.9-3.14)
2025-12-31 16:05:18 +01:00
The BROKE Cluster Team
d3f7d091bc
Release 2.0.4-beta.3: Dependency compatibility + Documentation
...
Bugfixes and compatibility improvements. No new features.
Core fixes:
- Framework detection for web API models (Issue #48 )
- Video-only model filtering from vision capability
- Page size detection for memory metrics (macOS)
- Model switch log timing (after load completion)
Compatibility:
- hub 1.x + transformers 5.0 support
- Python 3.9-3.14 verified (494 tests passing)
Testing infrastructure:
- Benchmark schema v0.2.0 (hardware profiling, system health)
- Benchmark template v1.0 (automated JSONL→Markdown reports)
- Memory timeline visualization (memplot.py)
- Unified model filter (build_model_object single source)
Documentation:
- Multi-Modal Support section in README (Vision subsection)
- JSON API 0.1.5-0.1.6 marked Stable
- Vision promoted from alpha to beta status
- Removed conceptual drift and outdated references
See CHANGELOG.md for complete details.
2025-12-23 12:19:04 +01:00
The BROKE Cluster Team
86f669dc82
Release 2.0.4-beta.1: Vision + Pipes + Memory
...
- Vision Support (Issue #45 ): CLI + Server with OpenAI-compatible image API, EXIF metadata
- Unix Pipes (ADR-014): stdin support, isatty detection, SIGPIPE handling
- Memory-Aware Loading (ADR-016): Pre-load checks with >70% RAM warnings
- Python 3.9-3.14: Full compatibility verified (476-485 tests passing)
- Fixed: --log-json regression (Issue #44 ), Vision multimodal history filtering
See CHANGELOG.md for complete details.
2025-12-16 19:35:30 +01:00
The BROKE Cluster Team
d32d3185dd
Release 2.0.2: Test infrastructure hardening & empirical validation
...
Stable release completing Issue #32 recovery plan - all tests passing.
Bug Fixes:
- Test collection regression (E2E suite parametrization)
- Stop token ordering (batch + streaming modes)
- E2E test temperature flakiness (deterministic sampling)
- Web API framework detection (PR #42 by @limey, fixes #41 )
- E2E test marker fix (show_model_portfolio diagnostics)
Architecture:
- mlx-lm API evaluation: Keep manual text-based implementation
- Stop token workarounds: All 3 validated (Phi-3, DeepSeek-R1, GPT-oss)
Testing:
- Portfolio Discovery: 73/81 tests, 17 models, 0 failures
- E2E infrastructure hardened (TOKENIZERS, polling, gc.collect())
- Multi-Python validation: 3.9-3.13 passing
Documentation:
- ADR-009 Outstanding Work completed + Implementation Plan removed
- TESTING-DETAILS.md: Portfolio Discovery + E2E Architecture updated
- CHANGELOG.md: Complete 2.0.2 stable release notes
2025-11-15 22:10:08 +01:00
The BROKE Cluster Team
21cf188fcc
Release 2.0.1: Portfolio Discovery + CLI Exit Code Fixes
...
Issue #32 : Stop token Portfolio Discovery validates generic fix across all models
- Auto-discovers MLX chat models in HF_HOME with 4-filter validation
- RAM-aware testing (40-70% budgets) prevents OOM
- Empirical report generation (stop_token_config_report.json)
- Fallback to 3 predefined models without HF_HOME
- Implementation: tests_2.0/test_stop_tokens_live.py (~110 LOC)
Issue #38 : CLI exit codes now propagate run command errors correctly
- Both text and JSON modes return exit code 1 on model execution failures
- Fixed: run_model() now returns error strings in both modes
- Implementation: mlxk2/operations/run.py + mlxk2/cli.py error detection
- New tests: tests_2.0/test_cli_run_exit_codes.py (9 comprehensive tests)
Testing: 306 passed, 20 skipped (zero regressions)
Docs: Updated README, TESTING, SECURITY for 2.0.1 stable release
Version: 2.0.0 → 2.0.1 (mlxk2/__init__.py)
2025-11-08 20:28:54 +01:00
The BROKE Cluster Team
fb54f59cd4
Release 2.0.0-beta.6: Stop token & compatibility bug fixes
...
Fixes Issue #32 (generic multi-EOS detection) and Issue #37 (model detection)
- Generic stop token detection: Multi-EOS models (MXFP4, Qwen, Llama) now use eos_token_ids Set instead of
model-specific workarounds
- Private/org MLX model detection: `mlxk run` now works outside `mlx-community/*` namespace
- Commit-pinned compatibility checks: Models with `@commit_hash` validated before inference
- Packaging dependencies: Fixed `pip install -e .` requirements
- ADR-009: Stop Token Detection Fix (generic approach + test strategy)
- ADR-011: E2E Live Test Architecture (planned)
See CHANGELOG.md and TESTING.md for details.
2025-10-24 15:46:42 +02:00
The BROKE Cluster Team
f5fe1dd061
Release 2.0.0-beta.5: Enhanced error handling & bug fixes
...
Features:
- Enhanced error handling & logging (ADR-004): Unified error envelope, structured logging with JSON support, request correlation
- Legacy format detection (Issue #37 ): Runtime compatibility check for weight file formats
Bug Fixes:
- Issue #37 : Models with legacy weight formats now correctly detected as runtime-incompatible
- CLI regression fix: mlxk2 without arguments shows help instead of JSON error
Test Status: 295/295 passed, 14 skipped
2025-10-21 00:24:47 +02:00
The BROKE Cluster Team
4b75a22726
Release 2.0.0-beta.4: Runtime compatibility check (Issue #36 )
...
- JSON API 0.1.5: runtime_compatible + reason fields
- mlx-lm dependency updated to >=0.28.3 (stable PyPI release)
- Human output: healthy / healthy* / unhealthy status display
- All tests passing (253 passed, 12 skipped) across Python 3.9-3.13
2025-10-18 16:06:58 +02:00
The BROKE Cluster Team
9261bc0c4e
2.0.0-beta.3: Feature Complete - Clone Implementation & Issue Resolution
...
- Clone Feature (Issue #29 ): Complete workspace-based workflow with ADR-007
- Pull Preflight (Issue #30 ): Prevents cache pollution from gated/private repos
- Lenient MLX Detection (Issue #31 ): Framework detection beyond mlx-community
- Multi-shard Health (Issue #27 ): Strict completeness validation
- Full JSON API 0.1.4: Complete schema for all 10 commands
- Test Suite: 254/254 passed, comprehensive validation
See CHANGELOG.md fnd TESTING.md or technical implementation details.
2025-09-18 14:09:32 +02:00
The BROKE Cluster Team
57bf6d86be
2.0.0-beta.3: Feature Complete - Full 1.1.1 Parity Achieved
...
Major Features Added:
• Complete run command implementation with interactive/single-shot modes
• MLXRunner core engine ported from 1.x with modular architecture
• OpenAI-compatible server with SIGINT-robust supervisor mode
• Experimental push feature properly isolated behind environment variable
Key Improvements:
- Full feature parity with 1.1.1 stable releases
- Enhanced human output formatting across all commands
- Clean separation of stable (184 tests) vs experimental features
- Updated demo GIF showcasing improved 2.0 interface
Fixes:
- Pull operation cache pollution (Issue #30 ) with preflight access checks
- Test stability improvements across all environments
Architecture:
- Modular runner design with focused helper modules
- Thread-safe model loading and memory management
- stable testing across Python 3.9-3.13
Ready for use as comprehensive 1.x alternative.
2025-09-14 18:04:18 +02:00
Local Test
eedb91b75c
Feat: add experimental push (2.0.0-alpha.2)
...
- Push (upload-only): quiet JSON by default; capture hub logs in data.hf_logs
- No-op detection aligned to hub signal; clear commit fields; uploaded_files_count=0
- Add --dry-run (plan vs remote) and --check-only (offline preflight); merge .hfignore; extend
default ignores
- Human output: concise; --verbose shows commit URL; JSON shape unchanged
- Tests: add offline dry-run cases; live push remains opt-in (wet/live_push)
- Docs: README push section updated; TESTING.md reference + mini-matrix;
- Changelog: add 2.0.0-alpha.2; note Issue #31 under 1.1.1 pending
- Spec: keep schema stable (0.1.3); CLI/version docs consistent
2025-09-05 22:42:39 +02:00
Local Test
19a66674c0
2.0.0-alpha.1: human output default; strict health ( #27 , PyTorch index)
...
See CHANGELOG.md and README.md
2025-08-31 22:25:43 +02:00
Local Test
2624210353
Consolidate JSON API; add --version; health in list/show (spec json-0.1.2)
...
- Enforce strict JSON API in tests
- Introduce --version --json as sole version reporter
2025-08-31 15:17:19 +02:00
Local Test
de7ccf9018
2.0.0-alpha: default 2.0 tests, cache safety, and docs
...
Testing:
- pytest defaults to tests_2.0 via pytest.ini
- README/TESTING updated; Quick Start uses `pip install -e . && pip install pytest`
Safety:
- Add test-cache sentinel + centralized checks
- Strict delete guard via MLXK2_STRICT_TEST_DELETE=1
- Hide sentinel from 2.0 list output
Portability:
- Remove site-specific paths; generic test/user cache detection (mlxk2_test_ prefix + sentinel)
Docs:
- Environment & Caches, HF cache integrity
- Local-only hooks/excludes and local test script (excluded from VCS)
2025-08-29 16:57:45 +02:00
The BROKE Team
d375e1bd3e
MLX-Knife 2.0.0-alpha: Issue #27 Discovery & Development README
...
Major Achievements:
- Live reproduction and documentation of Issue #27 (health check false positive)
- Comprehensive development README.md for alpha phase parallel usage
- JSON API specification integration and references
- 45/45 tests passing with production-quality reliability
Issue #27 Critical Discovery:
- Health check false positives for multi-part model downloads
- Root cause: Multi-part pattern detection flaw in shared logic
- GitHub issue created with reproduction steps and technical analysis
2.0.0-Alpha Development Status:
- Revolutionary test isolation architecture complete
- Atomic cache system with triple safety verification
- Development handbook with parallel deployment guide
- Ready for production testing and broke-cluster integration
2025-08-28 23:49:14 +02:00
The BROKE Team
c5777a3e7a
MLX-Knife 2.0 Session 2 Complete + Session 3 Major Progress: Production-Ready Alpha
...
Session 2 Achievements (100% Complete):
• All 5 operations implemented: list, health, show, pull, rm
• CLI compatibility: fuzzy matching, @hash syntax, short names
• Lock detection: New safety feature replacing interactive prompts
• Pull corruption recovery: Clean rm→pull workflow
• Hash fuzzy matching: show "model@3df9bfd" works with short hashes
Session 3 Major Progress (70% Complete):
• JSON API Specification v0.1.1: Complete and production-ready
• Full SHA hashes: 40-char hashes in list output for broke-cluster
• Show command: --files and --config options fully implemented
• JSON-flag enforcement: --json required in alpha for correct usage
Key Features:
• Broke-cluster integration ready with enforced --json flag
• Real-world tested: rm→pull workflow validated with corrupted cache
• Lock cleanup: 9 lock files properly cleaned during rm operations
• Sanitized JSON: No cache paths or implementation details exposed
Testing Status: Basic unit tests implemented, manual validation successful
Note: Test suite requires update for JSON API Specification v0.1.1
Package: Installable as mlxk-json alongside 1.1.0
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-27 21:36:35 +02:00
The BROKE Team
d603cde9d5
MLX-Knife 2.0 Session 1: JSON-First Foundation
...
✅ FOUNDATION COMPLETE: Working `python -m mlxk2.cli list` command
Architecture:
- Clean-room implementation (145 lines total)
- JSON-first design for broke-cluster automation
- Modular structure: core/operations/output separation
Deliverables:
- mlxk2/core/cache.py: Cache path management (35 lines)
- mlxk2/operations/list.py: Model discovery with JSON output (41 lines)
- mlxk2/cli.py: CLI entry point with error handling (69 lines)
- docs/: Complete ADR and implementation plan documentation
Success Metrics Achieved:
✅ 12 models detected and JSON-formatted
✅ Consistent schema: status/command/data/error
✅ broke-cluster ready: `jq -r '.data.models[].name'`
✅ 4x faster than planned (1 hour vs 4 hour target)
Next: Session 2 - health, pull, rm operations
2025-08-26 19:25:50 +02:00