Development Roadmap
Status: Living document. Detailed per-issue and per-PR state lives in GitHub Issues, Pull Requests, the CHANGELOG, and ADRs. This document carries themes, principles, and parked work only.
Principles
- Validate first: Run spikes before implementing complex features
- Start simple: Build MVP, add complexity only if needed
- User-driven: Implement Phase 2 features only when users request them
- Linux-first: Embrace Unix philosophy --- composable tools over monolithic features
- Measured releases: Accumulate meaningful changes rather than rapid incremental releases (#2235)
- Automate triage, not decisions: Bots surface information; maintainers decide
- Incremental configuration: New features use nested config patterns from day one; existing flat options migrate opportunistically (configuration organization research)
Active Themes
Current status is tracked via the linked GitHub labels. This section serves as an orientation map, not a real-time tracker.
- Stability and Reliability: auth recovery, network error scoping, media permission handling. Live: bug.
- Media and Calls: camera and mic handling, speaking indicator, call drops on multi-interface systems. Live: media, screen-sharing.
- Wayland Compatibility: ozone-platform default reset under community testing (#2508). Live: wayland.
- MQTT Integration: presence, media state, screen-share topics shipped. Home Assistant auto-discovery shipped (PR #2464, PR #2571). Microphone state shipped (PR #2497). Incoming-call topic shipped (PR #2572). Camera topic shipped (PR #2582). Live: mqtt.
- Notifications: lifecycle stable; remaining work in notifications.
- Testing Infrastructure: cross-distro Docker tests passing for all 9 configurations (ADR-016); CI integration in progress.
- Dev Experience: stale bot tuning and a project-specific code-reviewer subagent are the next quick wins. (PR template landed 2026-05-15.)
Awaiting User Feedback
Phase 2 work depending on a user trigger.
- Quick Chat Access (#2109, shipped v2.7.4): notification click-to-chat, recent contacts cache, favorites list if requested.
- Graph API Enhanced Features (research): calendar sync, mail preview notifications. Presence endpoint returns 403 because the Teams token lacks
Presence.Readscope.
Not Planned / Not Feasible
| Feature | Issue | Reason | Notes |
|---|---|---|---|
| Screen Lock Media Privacy | #2106 | Closed --- no user interest | Reopen if requested |
| Meeting Join with ID | #2152 | Microsoft limitation | Workaround: use meeting link via clipboard |
| Custom Notifications Phase 2 | #2108 | Dropped --- didn't work for the user | MVP (v2.6.16) remains |
| GNOME Search Provider | #2075 | Latency too high (~300-1100ms) | Technically feasible but poor UX |
| External Browser Auth | #2017 | Not feasible | Teams manages OAuth internally |
| Multiple Windows | #1984 | Rejected (ADR-010) | Quick Chat is the alternative |
| useSystemPicker | --- | Rejected (ADR-008) | Reconsider when Electron improves Linux support |
| Disable Chat Spellcheck | #2304 | Not feasible | Spellcheck is controlled by Teams/Chromium, not the wrapper |
| Formatting View on Compose | #2318 | Not feasible | Teams UI internals; no injection point |
Infrastructure
- Bot Automation: issue triage is a standalone Go service (github-issue-triage-bot, ADR-018).
- Cross-Distro Testing: 9 configurations on Docker, all passing (ADR-016).
- Release Automation: managed by release-please; merge the auto-generated Release PR to trigger a release.
- Repo Health: repo-butler generates a daily dashboard at the portfolio page.