136 lines
5.4 KiB
JSON
136 lines
5.4 KiB
JSON
{
|
|
"0": "Storage Backend & Disk Usage",
|
|
"1": "Auth Schemas & Tokens",
|
|
"2": "Error Mapping & Search Schemas",
|
|
"3": "Download Service Orchestration",
|
|
"4": "Playlist Schemas & API",
|
|
"5": "Album Repository",
|
|
"6": "ORM Base & Models",
|
|
"7": "Correlation ID Middleware & Config",
|
|
"8": "Auth Services (native + Subsonic)",
|
|
"9": "Audio Tags & Metadata Test Fakes",
|
|
"10": "YouTube Source Backend",
|
|
"11": "Dependency Wiring (deps.py)",
|
|
"12": "Library Stats & Track Availability",
|
|
"13": "Library Import Service",
|
|
"14": "Subsonic Response Envelope",
|
|
"15": "Chromaprint Fingerprinting",
|
|
"16": "Album/Search Response Schemas",
|
|
"17": "Pagination & Likes Endpoints",
|
|
"18": "Metadata Enrichment Service",
|
|
"19": "Subsonic ID Encoding",
|
|
"20": "Track & Artist Domain Entities",
|
|
"21": "Source Port Protocols",
|
|
"22": "User Management Service",
|
|
"23": "Metadata Enrichment Value Objects",
|
|
"24": "DB Session & Health Checks",
|
|
"25": "Download Service Tests",
|
|
"26": "Download Job Domain Entity",
|
|
"27": "Credentials & User Repository",
|
|
"28": "Streaming Auth Dependencies",
|
|
"29": "Subsonic Browsing Endpoints",
|
|
"30": "Remote Library Service Tests",
|
|
"31": "Worker Session Scope & Download Task",
|
|
"32": "Metadata Enrichment Pipeline",
|
|
"33": "Album Domain & Cover Value Object",
|
|
"34": "Downloads API Tests",
|
|
"35": "Subsonic Search Encoding",
|
|
"36": "In-Memory Auth Repository Fakes",
|
|
"37": "Storage Stats Response Schemas",
|
|
"38": "Subsonic App-Password Crypto",
|
|
"39": "Artist Schemas & Endpoints",
|
|
"40": "Download Request/Response Schemas",
|
|
"41": "Settings & MusicBrainz User-Agent",
|
|
"42": "Subsonic API Integration Tests",
|
|
"43": "Playlist Endpoints",
|
|
"44": "Play History Domain & Repository",
|
|
"45": "DB Engine Lifecycle",
|
|
"46": "Shared Query Param Annotations",
|
|
"47": "Local Folder Source Backend",
|
|
"48": "Track Metadata Match Schemas",
|
|
"49": "Like Domain Entity (event log)",
|
|
"50": "Auth API Integration Tests",
|
|
"51": "Cover API Tests",
|
|
"52": "Upload/Stream API Tests",
|
|
"53": "Tag Parsing Helpers",
|
|
"54": "Metadata API Tests",
|
|
"55": "Subsonic Auth Service Tests",
|
|
"56": "Cover Art Serving",
|
|
"57": "Play History Schemas",
|
|
"58": "Refresh Token Repository",
|
|
"59": "Radio Endpoints",
|
|
"60": "Subsonic Legacy Password Decoding",
|
|
"61": "Management CLI",
|
|
"62": "Sources API Tests",
|
|
"63": "Hexagonal Architecture Layers (doc)",
|
|
"64": "Test DB Fixtures (conftest)",
|
|
"65": "Upload Response Schemas",
|
|
"66": "Cover Art Extraction (Vorbis/MP4)",
|
|
"67": "Storage Stats API Tests",
|
|
"68": "AcoustID Response Parser Tests",
|
|
"69": "Like Request/Response Schemas",
|
|
"70": "Streaming Endpoint",
|
|
"71": "Auth Token Issue/Refresh Flow",
|
|
"72": "Generic Job/Result Store Protocol",
|
|
"73": "Remote Library Materialization",
|
|
"74": "CI Docker Publish Workflow",
|
|
"75": "User Scrobbling Settings",
|
|
"76": "Domain Invariants (dedup, manual overwrite, offline tags)",
|
|
"77": "Alembic Migration Environment",
|
|
"78": "Cover Art Archive Client",
|
|
"79": "Health Endpoint Smoke Tests",
|
|
"80": "ASGI Middleware Protocol",
|
|
"81": "File Hashing Utilities",
|
|
"82": "Migration: auth_users",
|
|
"83": "Migration: music_schema",
|
|
"84": "Migration: rename track file_path",
|
|
"85": "Migration: subsonic_app_password",
|
|
"86": "Migration: track_enrichment_outcome",
|
|
"87": "Migration: download_job_track_id",
|
|
"88": "Migration: remote_placeholders",
|
|
"89": "Package: app.api",
|
|
"90": "Package: app.api.schemas",
|
|
"91": "Package: app.application",
|
|
"92": "Package: app.core",
|
|
"93": "Package: app.domain",
|
|
"94": "Package: app.infrastructure",
|
|
"95": "Package: metadata-enrichment adapters",
|
|
"96": "Package: source backends",
|
|
"97": "Package: storage adapters",
|
|
"98": "Package: app root (mcma-backend)",
|
|
"99": "Package: arq worker",
|
|
"100": "Package: arq tasks",
|
|
"101": "Config Conventions (doc)",
|
|
"102": "Subsonic Adapter Convention (doc)",
|
|
"103": "DB Session Convention (doc)",
|
|
"104": "Health Convention (doc)",
|
|
"105": "Invariant: Graceful Degradation",
|
|
"106": "Invariant: Likes Are Append-Only",
|
|
"107": "Invariant: Stable Track content_id",
|
|
"108": "Logging Convention (doc)",
|
|
"109": "Python 3.14 Lazy Annotations Note",
|
|
"110": "App-Passwords Mechanism (doc)",
|
|
"111": "Local Dev Setup (doc)",
|
|
"112": "Tooling Section (doc)",
|
|
"113": "Package: workers",
|
|
"114": "app/application — use cases / services",
|
|
"115": "Composition roots (app/main.py, app/api/deps.py)",
|
|
"116": "app/core — cross-cutting concerns",
|
|
"117": "app/domain — pure business core",
|
|
"118": "Error handling convention (domain errors → HTTP in app/api/errors.py)",
|
|
"119": "Hexagonal architecture (ports & adapters)",
|
|
"120": "app/infrastructure — driven adapters",
|
|
"121": "Invariant: dedup on (source, source_id) and acoustid_fingerprint",
|
|
"122": "Invariant: no heavy work in the request cycle (goes to arq workers)",
|
|
"123": "Invariant: never overwrite metadata_status=manual",
|
|
"124": "Migrations convention (async, settings-driven Alembic)",
|
|
"125": "app/workers — arq background tasks",
|
|
"126": "Build (Docker) section",
|
|
"127": "Hexagonal architecture (ports & adapters) — README",
|
|
"128": "Database migrations (Alembic) section",
|
|
"129": "Subsonic API (/rest) section",
|
|
"130": "acoustid_trust_score (trust high-confidence AcoustID over junk tags)",
|
|
"131": "Offline tag reader (deterministic, always runs)",
|
|
"132": "scarlet_fire_otis_mcdonald.mp3 test fixture"
|
|
}
|