Photo analysis monitoring is now faster and more reliable

Contents phase polling is now centralized, eliminating duplicate requests during multi-room photo analysis and reducing error noise.

Bug Fixes

During multi-room photo analysis, the contents phase used to mount a separate polling observer for each room, creating duplicate API requests and triggering intermittent "unexpected response" errors. Polling is now centralized at the phase level, feeding all rooms from a single query. This eliminates redundant requests, stabilizes progress updates, and reduces error noise in your logs — especially important when analyzing large multi-room projects.