feat(mist): add MistPlugin domain — Phase 1 core implementation
- New muse/plugins/mist/plugin.py with full MuseDomainPlugin protocol: snapshot, diff, merge, drift, apply, schema - compute_mist_id: SHA-256 → base-58 (Bitcoin alphabet) → 12-char prefix Same bytes always produce the same URL-safe, visually unambiguous ID - detect_artifact_type: magic-byte → JSON-key → extension cascade Correctly classifies MIDI, ABI JSON, JSON Schema, code, prose, binary - _validate_mist_filename: security gate rejecting null bytes, path separators, traversal sequences, control chars, ANSI escapes, >255 chars - extract_mist_symbol_anchors: delegates to ast_parser for Python, TS, Solidity, Markdown; returns empty list for binary (never raises) - Register MistPlugin in muse/plugins/registry.py — muse status/diff/ merge/log/etc. all work on mist repos immediately, zero core changes - 72 tests covering Tiers 1, 5, 6, 8 (shape, data integrity, perf, docstrings) — all green
0 comments
muse hub commit comment sha256:b2b3ba5782a9b733e5ba54e9368892f805ff7a6e2858260556fc6edf60292252 --body "your comment"
No comments yet. Be the first to start the discussion.