feat: phase 0+2 — muse label command + muse tag version tags
Phase 0: rename label annotations from muse tag → muse label - Add muse/cli/commands/label.py with add/list/remove subcommands - JSON output uses label_id, label, labels, label_ids keys - Status strings: labelled / already_labelled - Register muse label in app.py alongside muse tag
Phase 2: reclaim muse tag for protocol-native version tags - Rewrite muse/cli/commands/tag.py with add/list/read/delete/latest - Validates semver (v-prefixed, X.Y.Z[-pre][+build]) - Storage in .muse/version-tags/<tag>.json - Stable-first ordering via semver_key()
Tests: - Update test_cmd_tag.py, test_cmd_tag_hardening.py, test_tag_supercharge.py to use muse label - Add tests/test_cmd_label.py (LB_01–LB_08, 22 tests) - Add tests/test_cmd_version_tags.py (VT_13–VT_25, 50 tests)
Semantic Changes
575 symbols
0 comments
muse hub commit comment sha256:0f032ac8f3a8e412dc51f01636f05c33c087b9a7c8997165ab6561a31c27f7cf --body "your comment"
No comments yet. Be the first to start the discussion.