Show Teams status — Available, Busy, DoNotDisturb, Away — in the panel, and ideally as a chip on the idle handle so it is visible without opening anything.
How
Microsoft Graph, GET /me/presence, delegated Presence.Read scope. Polling only: Graph change notifications need a public HTTPS endpoint to call back into, which a desktop app does not have.
Why it is blocked
It hits three gaps at once:
The shell permission is a working escape hatch today, since curl does headers and POST. That is a lot of trust to ask for a status dot, and not what should be recommended.
Messages are a separate question
Chat scopes are classified as sensitive and in a corporate tenant will almost always require tenant-admin consent, and a message feed is a far larger surface than a presence chip. Presence first; treat a chat feed as its own issue if there is demand.
This stays a custom widget, not a built-in
Every install needs its own Azure AD app registration and, in most workplaces, an administrator's approval. That cannot ship switched on by default. It is the textbook case for the drop-in widget folder: the people who need it install it, and nobody else carries the consent prompt.
Show Teams status — Available, Busy, DoNotDisturb, Away — in the panel, and ideally as a chip on the idle handle so it is visible without opening anything.
How
Microsoft Graph,
GET /me/presence, delegatedPresence.Readscope. Polling only: Graph change notifications need a public HTTPS endpoint to call back into, which a desktop app does not have.Why it is blocked
It hits three gaps at once:
Authorization: Bearerheader is dropped, so the request cannot be authenticatedThe
shellpermission is a working escape hatch today, sincecurldoes headers and POST. That is a lot of trust to ask for a status dot, and not what should be recommended.Messages are a separate question
Chat scopes are classified as sensitive and in a corporate tenant will almost always require tenant-admin consent, and a message feed is a far larger surface than a presence chip. Presence first; treat a chat feed as its own issue if there is demand.
This stays a custom widget, not a built-in
Every install needs its own Azure AD app registration and, in most workplaces, an administrator's approval. That cannot ship switched on by default. It is the textbook case for the drop-in widget folder: the people who need it install it, and nobody else carries the consent prompt.