- Spegnimento
- 6 settembre 2026 alle ore 18:24 UTC
- Autore
- Kamo
- Impegno
- 297c21f
ToolDock è montato in ToolProviders ABOVE AuthedChrome, deliberatamente, quindi mai smonta attraverso una navigazione -- il solo fatto che mantiene un membro digitando vivo in ogni finestra degli strumenti. UnreadProvider vive dentro AuthedChrome, che lo rende un DESCENDANTE del bacino. Quindi utilizzareUnread() all'interno di una finestra di strumento non lancia. UnreadContext è costruito con a default completo -- getUnread: () => 0, bySurface.sms: 0 -- e tutto costruito su di esso rende, sembra corretto, e segnala zero per sempre. Due conseguenze: - Il nuovo tesserino del softphone non sarebbe mai apparso. - SmsTool's markSmsRead call, aggiunto specificamente in modo che il badge SMS potrebbe andare DOWN così come in alto, risolto al contesto predefinito: un già risolto prometto che non ha fatto niente. La soluzione è stata spedita e inerte. Nuovi smsUnreadStore + SmsUnreadSync sono lo stesso ponte ToolWindowUnreadSync e HexHeadUnreadSync già costruire per il tab strip e le testate: un fornitore-free modulo store letto con usoSyncExternalStore, alimentato da un componente montato all'interno AutenticoToolWrapper dove il fornitore è reale. Mark-read viaggia l'altro modo come un evento personalizzato, che è come ogni dock-to-provider il messaggio funziona già. UnreadContext guadagna `smsSessions` perché un lettore che deve ENUMERATE illeggi conversazioni non possono farlo attraverso getUnread, che risponde una chiave alla volta e ha bisogno dell'id che viene chiesto. Il test di SmsTool stava bloccando il meccanismo rotto -- ha mocked useUnread and ha affermato markSmsRead è stato chiamato, che passa se il fornitore è o meno raggiungibile a runtime. Ora guida il negozio e afferma l'evento in uscita, quindi fallisce se qualcosa torna indietro per il contesto morto.