# PM Decision Log --- ### 2026-03-16 — Cloud Browser Category Navigation & Year Parsing **Request**: Fix non-functional category browsing (artists, genres, years, etc.) in iOS cloud library — tapping items did nothing **Decision**: Approved — bugs shaped together as one brief **Appetite**: 2 files max, < 100 lines, existing patterns only **Scope**: v1 = client-side album filtering on tap, year string cleanup. Deferred: macOS parity, server-side filtered endpoint, search within results **Handed to**: @builder **Key tradeoffs**: Client-side filtering of full album list (acceptable for v1, may need API filter if library grows to 10k+ albums). Queue concept was also triaged — confirmed DONE in both apps, checked off bug notes list. --- ### 2026-03-16 — Years Decoding Bug Fix + Full UI Test Suite **Request**: Fix Years category decode error + write comprehensive UI tests (all 3 phases) **Decision**: Approved — combined into one builder pass (fix first, tests verify it) **Appetite**: ~5-6 files changed, ~400 lines new code (tests + infrastructure + accessibility IDs) **Scope**: Years fix (custom Decodable init), Phase 1 (4 cloud smoke tests), Phase 2 (4 playback/queue tests), Phase 3 (3 mock network tests + MockURLProtocol) **Handed to**: @builder **Key tradeoffs**: Mock network via URLProtocol rather than full DI refactor. Phase 1-2 tests require live server; Phase 3 tests are CI-safe. Existing 20 UI tests untouched. --- ### 2026-03-16 — Fix Mock-Network Tests + Builder Test Mandate **Request**: Fix 2 failing Phase 3 mock-network UI tests + add process rule requiring UI tests in all builder briefs **Decision**: Approved — combined into one builder pass **Appetite**: 4-5 files changed, ~30 lines **Scope**: Mock test fixes (Keychain bypass, state cleanup, accessibility ID conflicts, element type queries) + builder agent prompt update with "UI Test Mandate" section **Handed to**: @builder **Key tradeoffs**: Test mandate is advisory for non-UI changes, mandatory for UI changes. Builder can skip tests only if PM brief or user explicitly says so.