cgcardona / muse public
feat main

feat: eliminate all Any/object/ignore — strict TypedDicts at every boundary

Replace every untyped boundary in the codebase with a named TypedDict:

- domain.py: SnapshotManifest, DeltaManifest replace LiveState=Any aliases - store.py: CommitDict, SnapshotDict, TagDict, RemoteCommitPayload; metadata → dict[str,str]; update_commit_metadata value: str - merge_engine.py: MergeStatePayload TypedDict; remove dict[str,object] annotations - config.py: AuthEntry, RemoteEntry, MuseConfig TypedDicts; rewrite _load_config with isinstance narrowing; _dump_toml handles known structure explicitly; remove all # type: ignore - midi_parser.py: MidiMeta, MusicXMLMeta TypedDicts replace dict[str,Any] - stash.py: StashEntry TypedDict replaces list[dict[str,Any]] - plugin.py: use SnapshotManifest/DeltaManifest constructors; direct field access; remove Any import - tests: SnapshotManifest in all test helpers and inline literals - CI: add typing audit step with --max-any 0 ratchet

Audit: 0 violations. mypy: clean. Tests: 99/99 passing.

G Gabriel Cardona <gabriel@tellurstori.com> · 3d ago Mar 16, 2026 · 77f04a8f · parent cf6e72f3
16
files changed
171
files in snapshot
← Older Oldest on main
All commits
Newer → Latest on main
Comments 0

No comments yet. Be the first to start the discussion.