Roadmap
Recently completed
- Live auto-refresh — channel files reload periodically while you browse, and DMs arriving in existing chats surface the unread badge without a restart.
- Mobile mode — responsive single-panel layout for narrow terminals (
Ctrl+B, auto below 120 cols), with unread badges and popups rendered over the panel. - Activity filters — All / Unread / @Mentions / Tags.
- Cursor-mode lock — workspace/panel switching (
1–4,Tab) is disabled while the message cursor is active. - Stale browser handling — leftover Firefox processes from interrupted token renewals are force-killed and their profile locks cleared on next start.
- Versioning & update check — version injection via the Makefile (
make build VERSION=...),--versionflag, and a startup check that flags newer GitHub releases in the footer.
Planned Features
- Typing indicators — show "typing..." when composing
- Emoji picker — full picker for messages (currently implemented for reactions)
- Graceful logout — sign out of the Teams session from the TUI
Known API Limitations
- "Offline" Presence: Graph API explicitly prohibits setting this status.
- Presence Delays: When a user presence changes in Microsoft Graph, because the Teams ecosystem uses poll mode, it takes a few minutes to update the presence status globally. This is an official Graph API limitation. (LazyTeams masks this locally for your own status changes using optimistic UI).
- ChatSvc API: Undocumented/private. Microsoft may break it at any time.
Platform
- Playwright/Firefox dependency for auth helper — first login requires a visible browser window (runs headless for subsequent token renewals).
- Clickable links require terminal with OSC 8 support.