Commit Graph

8 Commits

Author SHA1 Message Date
yuhao 99f92f0525 WIP transfer root-skills and hub updates 2026-04-18 10:12:58 +00:00
yuhao 18f75791f3 add auto-save and dry-run for all session-based softwares on one-shot cmds; highlight the design in cli-anything skill 2026-04-13 17:32:06 +00:00
Vicky Tam 02b55a7d48 fix: replace sia-snowman test fixtures with royalty-free twinkle-twinkle
E2E tests referenced test-mscore/sia-snowman/ which was not committed
in the PR. Switch to royalty-free "Twinkle Twinkle Little Star" scores
stored in tests/fixtures/twinkle-twinkle/, keeping fixture paths simple
and co-located with the test files.
2026-03-23 03:44:52 +09:00
yuhao c9b4e9695a fix: restore project_path on undo/redo in session snapshots
Store project_path in undo/redo stack entries so that reverting a
mutation correctly points the session back to the original input file,
preventing the next command from reading the wrong file when input and
output paths differ.
2026-03-22 09:49:22 +00:00
yuhao 501931c5e3 fix: make MuseScore undo/redo functional by updating session state
Commands now reload project metadata from output files after backend
operations, ensuring session.project_data reflects actual changes.

Previously, snapshot() captured state before mscore operations, but
project_data was never updated afterward—undo restored unchanged
metadata. Now all mutation commands (transpose, add/remove/reorder
instruments) update session state from the output file.

Fixes the issue identified in PR review where undo/redo was
scaffolding-only for backend-driven harnesses.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 08:58:59 +00:00
Vicky Tam b1f9a3c6ba fix: address second round of PR review feedback
- Fix add_instrument off-by-one: count parts before SubElement append
- Replace bare except with logger.debug in instruments, media, parts, project
- Make project save delegate to real mscore export instead of no-op
- Pass help= to Click export subcommands for proper --help text
- Preserve --json flag across REPL command dispatches
2026-03-22 02:34:44 +09:00
Vicky Tam b9698b3169 fix: address PR review feedback
- Guard `import fcntl` for Windows compatibility (try/except with fallback)
- Use `shlex.split()` in REPL for proper quoted argument handling
- Error on incomplete `reorder_instruments` to prevent silent data loss
- Use `functools.wraps` in `handle_error` decorator
2026-03-22 02:34:44 +09:00
Vicky Tam e6eb002311 feat: add MuseScore 4 CLI wrapper for music notation
First music notation tool in the CLI-Anything ecosystem. Wraps MuseScore 4's
mscore backend following the HARNESS.md 7-phase methodology.

Supports: transpose (by key/interval/diatonic), export (PDF/PNG/SVG/MP3/FLAC/
WAV/MIDI/MusicXML/Braille), part extraction, instrument management, score
analysis (probe/diff/stats), and interactive REPL with undo/redo.

56 tests (39 unit + 17 E2E) — all passing on macOS with MuseScore 4.6.5.
2026-03-22 02:34:44 +09:00