- Shipped
- August 27, 2026 at 4:23 AM UTC
- Author
- kamo
- Commit
- c7bde9d
Three things wrong with the softphone tool window's incoming-call overlay. The number was painted exactly as the INVITE carried it, so a caller arrived as "+15559876543". Both caller-ID lines go through formatPhoneDisplay now; an extension or short code has no ten-digit form and falls through as-is. A nameless caller also had that number rendered twice, headline and subtitle, so the subtitle is conditional on there actually being a name to sit under. Accept and Decoder overlapped by 6px, and it was arithmetic rather than anything subtle: Answer is 60px wide and centred, owning centre+/-30, while Decoder was anchored with its right edge at centre-24. The anchor is now centre-52 -- half the Answer button plus a 22px gutter -- and Decoder sits above the Answer's pulse rings, which expand to 2.2x and were washing translucent green across a red button. Third, an inbound call interrupted regardless of what the member had told the top bar. Only AVAILABLE pops the window, rings, notifies and vibrates now; BUSY / AWAY / DO_NOT_DISTURB get none of it, and flipping the pill mid-ring silences it on the spot. Presentation only -- the SIP session is untouched, so the call still runs out to voicemail and still records as missed, and a member with the panel already open can still answer deliberately. Reading the status is the awkward part. AvailabilityProvider mounts inside PresenceWrapper, which renders as part of children BELOW SoftphoneProvider, so useAvailability() there returns the context default -- a permanent AVAILABLE, which is a silent no-op rather than a gate. Hoisting it is not available either; it needs the authenticated chat STOMP client. So the status is published out of React through localStorage plus the two events, the same shape subscribeAVSettings uses -- localStorage specifically because the line window is a separate document with its own SoftphoneProvider and no availability provider at all. An unknown status rings. A cold line window or a store cleared by logout has nothing published, and a phone that quietly stops ringing is the one fault nobody notices until a customer says nobody picks up.