pm-log.md 2.0 KB

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.