You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Raised by Jay 2026-07-21: after an external agent redeemed an invite and joined a project, the Projects app kept showing the old membership until the app was closed and reopened. The same day, newly approved members rendered in a detached group until a remount (see the members-view issue).
The ask
taOS should reflect state changes live, OS wide, not per app on remount. A desktop where you have to close and reopen a window to see what happened is not a desktop, and it directly undermines the agent story: agents act continuously, so the surfaces that watch them have to update continuously.
What already exists
There is SSE infrastructure (projectsApi.events is referenced in the Projects app), so this is not greenfield. The gap is that it is not consistently subscribed to, and several surfaces fetch once on mount instead.
Surfaces that need it, roughly in order of how obviously wrong they are today
Project members: joins, approvals, removals, role changes.
Board and tasks: claim, release, close, comment. Fleet lanes change these constantly and the board is stale within seconds of opening it.
Agents app: registry additions, status changes, revocations.
Notifications and Decisions: these are the surfaces where staleness is most harmful, since the entire point is a timely prompt.
Events should carry enough to patch local state, not just say "something changed" and trigger a refetch storm.
Reconnect with backoff, and refetch once on reconnect so a dropped stream cannot leave a surface permanently stale. A silently dead stream that still looks live is worse than polling.
Multi-user: events must be scoped per user and per project, never broadcast across tenants.
Why now
Two separate staleness bugs surfaced in one day of ordinary use, and one of them (members rendering in a detached group) made Jay suspect an access-control problem that did not exist. Stale UI in a permissions surface costs trust, not just convenience.
Related: #611 (unified event and notification bus), #2089 (members view grouping on add), #896 (universal control plane with live queue).
Raised by Jay 2026-07-21: after an external agent redeemed an invite and joined a project, the Projects app kept showing the old membership until the app was closed and reopened. The same day, newly approved members rendered in a detached group until a remount (see the members-view issue).
The ask
taOS should reflect state changes live, OS wide, not per app on remount. A desktop where you have to close and reopen a window to see what happened is not a desktop, and it directly undermines the agent story: agents act continuously, so the surfaces that watch them have to update continuously.
What already exists
There is SSE infrastructure (
projectsApi.eventsis referenced in the Projects app), so this is not greenfield. The gap is that it is not consistently subscribed to, and several surfaces fetch once on mount instead.Surfaces that need it, roughly in order of how obviously wrong they are today
Design notes
Why now
Two separate staleness bugs surfaced in one day of ordinary use, and one of them (members rendering in a detached group) made Jay suspect an access-control problem that did not exist. Stale UI in a permissions surface costs trust, not just convenience.
Related: #611 (unified event and notification bus), #2089 (members view grouping on add), #896 (universal control plane with live queue).