Skip to main content

Research Documentation

This directory contains research, analysis, and strategic insights generated during the development and improvement of Teams for Linux.

Research Context

These documents capture in-depth analysis and strategic insights that inform development decisions and provide context for major features.

Contents

Ready for Implementation

  • Electron 40 Migration Research - Migration from Electron 39.5.1 to 40.4.0

    • Covers breaking changes, Node.js 22→24 impact, Chromium 142→144 changes
    • Includes ESLint 10 migration analysis and codebase audit
    • Status: Research complete, targeted for v2.8.0
  • Notification Sound Overhaul Research - Replace node-sound, consolidate notification config

    • Evaluates Web Audio, data URI, and system command approaches
    • Proposes phased plan: replace native addon, add custom sounds, Web Audio fallback
    • Status: Research complete, targeted for v2.8.0

Awaiting User Feedback

  • Screen Lock Media Privacy Investigation - Auto-disable camera/mic on screen lock (Issue #2106)

    • MQTT commands (disable-media, enable-media) for user scripts
    • Status: Implemented but no user traction; see closure PR #2189
  • MQTT Extended Status Investigation - Extended MQTT status publishing

    • Phase 1 Shipped: Infrastructure, LWT, and call state publishing
    • Phase 2 Deferred: WebRTC camera/mic monitoring awaiting user feedback
  • Graph API Integration Research - Microsoft Graph API for enhanced features

    • Phase 1 POC Complete: Token acquisition, calendar/mail endpoints working
    • Phases 2-3: Enhanced features and user-facing UI not started

Strategic Documentation

  • GitHub Issue Bot Investigation - Intelligent GitHub issue automation

    • Phases 1-2 Shipped: Information request bot and AI-powered solution suggester
    • Future phases: Duplicate detection (embeddings), enhancement context (RAG)
  • Configuration Organization Research - Configuration system improvements

    • Phase 1 Complete: Documentation reorganization
    • Phases 2-3: Nested structure migration happening incrementally

Shipped (Historical Reference)

These documents are retained for historical context. The features they describe have been fully implemented and released.

Archived / Not Feasible

Implemented Features (Research Removed)

Research documents are deleted once a feature is fully shipped and the document provides no ongoing reference value. The ADRs and git history preserve the decisions and context.

FeatureVersionReference
Code Quality Hardening (Phases 1-3)v2.7.5Logging hygiene, resilience, input handling, IPC hardening, CI/CD gates, workflow permissions, CODEOWNERS
Wayland/X11 Ozone Platformv2.7.4Force X11 by default due to Electron 38+ Wayland regressions
Quick Chat / Chat Modalv2.7.4ADR-014, ADR-015
PII Log Sanitizationv2.7.2ADR-013
DOM Access Restorationv2.5.2Hybrid API + DOM approach for React compatibility
Architecture ModernizationRejected (DDD too complex) — incremental refactoring adopted instead
MQTT Commandsv2.6.xBidirectional MQTT support for toggle-mute, toggle-video, etc.
Calendar Data Exportv2.6.xMQTT get-calendar command
useSystemPickerRejected — ADR-008

Purpose

These documents capture:

  • Strategic insights that inform development decisions
  • Comprehensive analysis that might not fit in traditional documentation
  • Research findings that provide objective evaluation of project components
  • Context and rationale for major feature decisions
  • Investigation results for proposed features and technologies

Target Audience

These research documents are intended for:

  • Project maintainers making strategic decisions
  • Contributors understanding the broader context of features
  • Future developers needing historical context
  • Documentation of the decision-making process for major features

Document Lifecycle

Research documents follow this lifecycle:

  1. Active Research Phase: Document findings, analysis, and recommendations
  2. Decision Phase: Use research to inform final decisions (implemented or rejected)
  3. Archive Phase: Move content to appropriate location after decision:
    • Implemented features: Create ADR if significant, update feature docs
    • Rejected features: Create/update ADR with concise decision record
    • Superseded research: Close with reference to superseding document
  4. History: Git commit history preserves full investigation context

Contributing Research

When adding new research documents:

  1. Follow naming convention: Use descriptive, kebab-case filenames
  2. Include context: Date, scope, and purpose of analysis
  3. Link related documents: Cross-reference relevant files
  4. Update this index: Add entries for new research documents
  5. Provide actionable outcomes: Include clear recommendations or decisions