# OpenSpeak Changes Index Index of all proposed changes for OpenSpeak project using OpenSpec format. ## Proposed Changes ### 1. Add Voice Communication System **Change ID:** `add-voice-communication` **Status:** Proposed **Priority:** Critical (MVP) **Target:** v0.1.0 **What:** Real-time voice packet capture, encoding, transmission, and playback **Files:** - `changes/add-voice-communication/proposal.md` - Overview and timeline - `changes/add-voice-communication/tasks.md` - Implementation tasks - `changes/add-voice-communication/voice.md` - Detailed requirements with scenarios **Key Requirements:** - Audio capture at 48kHz, 16-bit mono, 20ms frames - Opus encoding at 64kbps (configurable 8-128kbps) - Server broadcast model to channel members - <100ms round-trip latency target - Handles 10+ concurrent speakers - <5% CPU per stream, <50MB memory **Dependencies:** Channel Management, Authentication, Presence, Server Core --- ### 2. Add Authentication & Authorization System **Change ID:** `add-authentication` **Status:** Proposed **Priority:** Critical (MVP) **Target:** v0.1.0 **What:** Admin token-based authentication with permission controls **Files:** - `changes/add-authentication/proposal.md` - Overview - `changes/add-authentication/tasks.md` - Implementation tasks - `changes/add-authentication/authentication.md` - Requirements with scenarios **Key Requirements:** - Admin tokens for MVP phase - Token validation on all gRPC requests - Role-based permission model (admin, user) - Secure token storage and handling - Future: User accounts with password auth **Phases:** 1. Admin token authentication (MVP) 2. User account system (future) --- ### 3. Add Channel Management System **Change ID:** `add-channel-management` **Status:** Proposed **Priority:** Critical (MVP) **Target:** v0.1.0 **What:** Voice channel creation, joining, and management **Files:** - `changes/add-channel-management/proposal.md` - Overview - `changes/add-channel-management/tasks.md` - Implementation tasks - `changes/add-channel-management/channel.md` - Requirements with scenarios **Key Requirements:** - Create channels with unique names - Public/private access control - User capacity limits - Channel member tracking - Real-time channel event broadcasts - Join/leave operations **Capabilities:** - Create with validation - Join with permission checks - Leave with cleanup - List members with presence - Enforce capacity limits - Broadcast events --- ### 4. Add User Presence Tracking **Change ID:** `add-presence-tracking` **Status:** Proposed **Priority:** High (MVP) **Target:** v0.1.0 **What:** Online status, session management, and real-time presence updates **Files:** - `changes/add-presence-tracking/proposal.md` - Overview - `changes/add-presence-tracking/tasks.md` - Implementation tasks - `changes/add-presence-tracking/presence.md` - Requirements with scenarios **Key Requirements:** - Track user sessions and online status - Status types: ONLINE, IDLE, OFFLINE (future: DND, AWAY) - Idle detection after 5 minutes - Channel membership tracking - Microphone/speaker mute state tracking - Real-time event broadcasting **Capabilities:** - Session lifecycle management - Status transitions - Idle detection and recovery - Online user list - Channel member presence - Mute state tracking --- ## How to Use These Proposals ### For Review 1. Read `proposal.md` for overview and success criteria 2. Review corresponding spec delta (e.g., `voice.md`) for detailed requirements 3. Check `tasks.md` for implementation tasks ### For Implementation 1. Get proposal approved by team 2. Track tasks from `tasks.md` as TODOs 3. Reference spec delta for detailed requirements and scenarios 4. Tests pass when all scenarios pass ### For Validation ```bash # Validate proposals openspec validate add-voice-communication --strict openspec validate add-authentication --strict openspec validate add-channel-management --strict openspec validate add-presence-tracking --strict # Validate all openspec validate --strict ``` ## Dependencies & Order **Recommended Implementation Order:** 1. **add-authentication** (Foundation - everything needs auth) - ├─ Depends on: Server Core (gRPC interceptors) - └─ Required by: All other systems 2. **add-channel-management** (Core - where voice happens) - ├─ Depends on: Authentication - └─ Required by: Voice, Presence 3. **add-presence-tracking** (Supporting - visibility) - ├─ Depends on: Authentication, Channel Management - └─ Helps: Voice communication coordination 4. **add-voice-communication** (Primary feature) - ├─ Depends on: All above + Server Core - └─ Brings: Core value to users ## Summary **Total Proposals:** 4 **Total Tasks:** ~30 **Estimated LOC:** 5,000-10,000 **Target Release:** v0.1.0 (MVP) These four proposals cover the core functionality needed for OpenSpeak MVP: - ✅ User authentication and access control - ✅ Organize users into channels - ✅ Track who's online and where - ✅ Real-time voice communication ## Next Steps 1. Review each proposal with team 2. Validate proposals: `openspec validate ` 3. Get approval for implementation 4. Create branches: `git checkout -b add-` 5. Track tasks and implement according to spec delta requirements 6. Reference scenarios for test cases 7. Validate implementation against requirements --- **Note:** All proposals are in Proposed status. Implement in phases: - Phase 1 (Week 1-2): Authentication foundation - Phase 2 (Week 2-3): Channels and presence - Phase 3 (Week 3-4): Voice communication (core feature)