- Verschifft
- 7. September 2026 um 23:15 UTC
- Autor
- Kamo
- Ausschuss
- ebfe26f
Drei Defekte hinter einem Bericht: der Browser-Tab für eine ungelesene alarmiert Benachrichtigung, während die Glocke dunkel blieb, und klicken Sie auf Zeilen auf /Benachrichtigungen ging auf die Homepage. THE BELL COULD NEVER LIGHT. MemberListProvider verpackt nicht nur seine Kinder - es macht <NavTop" als SIBLING von ihnen. NotificationProvider war in ihr geschrieben, so NotificationBell genannt useNotifications() von außen seinen eigenen Anbietern. Dieser Haken versagt weich vom Design, weil NavTop auch macht auf vorauth Oberflächen, wo eine fehlende Glocke darf nicht die Seite nach unten nehmen, so dass es geantwortet ungelesene Anzahl: 0. Das Abzeichen war unsichtbar, .kamo-bell-ring war nie und das Symbol nie gefüllt - strukturell, für jedes Mitglied, ohne Fehler überall. Was es verbarg, ist, dass TabAttention den SAME-Hook aus dem Inneren des Providers liest, so funktionierte der Browser-Tab einwandfrei die ganze Zeit. Ein Mitglied sieht seine Registerkarte Blitz und ihre Glocke sitzen still, und jeder Instinkt sagt, die Glocke ist gebrochen anstatt dass es an der falschen Stelle im Baum ist. Dies ist das zweite Mal Diese Form hat echtes Verhalten gekostet - das Werkzeug Dock über UnreadProvider war die zuerst - so ist es jetzt bewacht, anstatt kommentiert: die Wache überprüft auch seine eigene Prämisse, so dass es nicht anfangen kann, vakuig zu passieren, wenn NavTop jemals bewegt. Ein CLICK PUSHED Eine URL FÜR DASS SIND NICHT PLACES. deepLink ist eine URL, und ein Produzent mit nirgendwo zu zeigen schreibt die nächste Sache, die das Feld akzeptiert: CHAT_MESSAGE /?openChat={guid&senderId={id' die Homepage GROWTH_HUB / die Homepage NEW_EMAIL /messages richtige App, nicht die Nachricht LEAD_CALLBACK /leads/view/{id' korrekt Die Chat-Form wurde für EMAIL Links erfunden, wo eine kalte Ankunft von außen hat nichts anderes als eine URL zu arbeiten. UnreadChatNotifier sagt so, wo es baut es: "Chat hat keine Route, um auf das Fenster zu zeigen, ist das Fenster ein Werkzeug". Wiedergebraucht in-app es navigiert Sie nach Hause, um ein Fenster zu öffnen, das geöffnet haben könnte, wo Sie standen, und DeepLinkToolBootstrap Latches geschicktRef für das Leben eines Mount, das lebt in der persistenten Shell, so dass nur die erste solche Klick pro Seite geladen überhaupt. Growth Hub gespeichert "/", weil WidgetRegistry erfasst, dass es hat keinen eigenen Bildschirm: Das Widget IST die Funktion. So löst der Browser jetzt einen INTENT auf, nicht eine URL. Ein Chat öffnet sein Werkzeugfenster an Ort und Stelle ohne Navigation; ein Growth Hub Überprüfung geht nach Hause und die Startrampe weist auf die Scheibe; ein echter Pfad navigiert; und "/" löst sich ins Nirgendwo - welche nimmt auch die "OPEN"-Chip, der ein Ziel versprach, das die Reihe könnte nicht liefern. UND EIN KLICK KEINEN LONGER DECIDES ANYTHING. Es verwendet, um zu markieren lesen und navigieren in eine Bewegung - zwei Entscheidungen, die aus einer zweideutigen Geste und für die beiden Arten, die ein Mitglied tatsächlich die meisten erhält, war das sichtbare Ergebnis "meine Benachrichtigung verschwunden und ich bin jetzt woanders". Ein Klick öffnet BenachrichtigungDetailDialog statt: es benennt, was handeln würde, und überlässt beide Entscheidungen dem Mitglied. Es zu schließen ist explizit der geändert-mein-gedanken-Pfad. Mit dem Ziel tut markieren, lesen, weil das Handeln auf eine Benachrichtigung ist die stärkste Beweise gibt ist, dass es gesehen wurde. Außerdem: GROWTH_HUB fehlte in der NotificationKind-Gewerkschaft des Browsers, während der Server schrieb es bereits, so dass diese Zeilen keinen Filterchip und keine stumm Schalter - für eine Art, deren ganzes Existenzgrund ist, für sich allein veränderlich zu sein. Und EmojiEvents/ReportProblem, die beiden Icons, die GrowthHubService tatsächlich sendet, waren von ICONS abwesend und fiel still zurück. Verifiziert: 42 Tests in den drei neuen Suiten, der vollständige Repo-Typcheck sauber, und jedes Wachgrün inklusive des neuen. Design in docs/superpowers/specs/.