docs(spec): baseline 0.9.5 — v1 audio + PTT lifecycle redesign
Add SysRS-303/304, SysDes-149/150/151, SRS-204/205/206/207, SAD-081/082/083, SDD-094/095/096/097, DEC-029/030. Captures the v1 lifecycle redesign: - Drop manual Start-audio button; audio engine is bound to voice-channel join/leave (ensure_running on first join, shutdown_if_idle on last leave). Output stream opens regardless of mic-permission state so listen-only is a first-class flow. - TransmitMode enum (Ptt / Continuous / VoiceActivity-reserved). Default Ptt on fresh install. Persisted per identity. - PTT release tail: 200 ms default (0-500 ms configurable) before transmit gate closes, avoiding clipped trailing syllables. - Hard-mute toggle overrides transmit gate regardless of mode/PTT. - Bridge surface: drop start_audio/stop_audio; add voice_join(channel_id) / voice_leave() and BridgeEvent::VoiceState. DEC-029 rejects Flutter global-hotkey packages (hotkey_manager, super_hot_key) for PTT: they wrap RegisterHotKey/RegisterEventHotKey which consume the key and don't fire key-up, wrong primitive for PTT. Native Rust DesktopPttBackend (SDD-083/084/085) stays authoritative. DEC-030 defers Voice Activity Detection to P1. RMS / WebRTC VAD / Silero VAD trade-off review (binary-size, dependency-surface, CPU profile) postponed; TransmitMode::VoiceActivity reserved on the enum surface so a P1 increment is non-breaking. Validator clean: 304/151/207/83/97 IDs, strict layered sourcing preserved, no new warnings beyond the pre-existing 35 old-package-name filenames.
This commit is contained in:
@@ -2852,15 +2852,52 @@ This SysDes version covers all known SysRS requirements from `SysRS-001` through
|
||||
- ASPICE SYS.3 alignment: Architecture constraints
|
||||
- Allocated SysRS: SysRS-298
|
||||
|
||||
**SysDes-149**: The system architecture shall define a `TransmitMode` element carried as an enum at the audio + bridge + UI boundary with variants `Ptt`, `Continuous`, and a reserved `VoiceActivity` placeholder that has no allocated implementation in this baseline (deferred per DEC-030). The active mode shall be persisted in the identity store; the UI shall surface `VoiceActivity` as a disabled "coming soon" option until an implementation is allocated in a later baseline.
|
||||
|
||||
- Status: Baseline Candidate
|
||||
- Type: Subsystem Interface
|
||||
- Stage: P0 / MVP
|
||||
- Allocated to: Audio Engine, Bridge, Flutter UI
|
||||
- Downstream artifact: SRS, SAD, SDD, Verification
|
||||
- Verification method: Unit Test, UI Review
|
||||
- Verification owner: Audio Owner + UX Owner
|
||||
- ASPICE SYS.3 alignment: Element behaviour, interface definition
|
||||
- Allocated SysRS: SysRS-303
|
||||
|
||||
**SysDes-150**: The audio engine lifecycle shall be allocated to voice-channel membership: the input and output streams shall open on the user's first voice-channel join of the session and shall close on the last voice-channel leave. The output-stream open shall be independent of the microphone-permission state so listen-only remains a first-class flow. No manual start affordance shall be exposed at any system interface (bridge, UI, or otherwise). A user-facing hard-mute element shall force the transmit gate closed and shall take precedence over the active transmit mode, the PTT key state, and every other internal signal.
|
||||
|
||||
- Status: Baseline Candidate
|
||||
- Type: Lifecycle Allocation
|
||||
- Stage: P0 / MVP
|
||||
- Allocated to: Audio Engine, Bridge, Flutter UI
|
||||
- Downstream artifact: SRS, SAD, SDD, Verification
|
||||
- Verification method: Integration Test, UI Review
|
||||
- Verification owner: Audio Owner + Software Architect
|
||||
- ASPICE SYS.3 alignment: Element behaviour, lifecycle
|
||||
- Allocated SysRS: SysRS-303
|
||||
|
||||
**SysDes-151**: A release-tail element shall be allocated to the audio subsystem as a system-level timer adapter on the `transmit_active` atomic defined in SysDes-144, parameterised by a configurable release-tail period (default 200 ms; user-configurable range 0–500 ms). When the PTT backend signals key-up, the adapter shall delay the `true → false` transition of `transmit_active` by the configured period; the adapter shall not affect `capture_active`.
|
||||
|
||||
- Status: Baseline Candidate
|
||||
- Type: Subsystem Element
|
||||
- Stage: P0 / MVP
|
||||
- Allocated to: Audio Engine
|
||||
- Downstream artifact: SRS, SAD, SDD, Verification
|
||||
- Verification method: Unit Test, Integration Test
|
||||
- Verification owner: Audio Owner
|
||||
- ASPICE SYS.3 alignment: Element behaviour
|
||||
- Allocated SysRS: SysRS-304
|
||||
|
||||
## 17. Updated SysRS Coverage Statement
|
||||
|
||||
This SysDes version covers all known SysRS requirements from `SysRS-001` through `SysRS-302`.
|
||||
This SysDes version covers all known SysRS requirements from `SysRS-001` through `SysRS-304`.
|
||||
|
||||
| SysRS Range | SysDes Coverage |
|
||||
|---|---|
|
||||
| SysRS-001 through SysRS-285 | Covered by inherited SysDes baseline `SysDes-001` through `SysDes-132` |
|
||||
| SysRS-286 through SysRS-295 | Covered by `SysDes-133` through `SysDes-141` |
|
||||
| SysRS-296 through SysRS-302 | Covered by `SysDes-142` through `SysDes-148` |
|
||||
| SysRS-303 through SysRS-304 | Covered by `SysDes-149` through `SysDes-151` |
|
||||
|
||||
|
||||
## Baseline Candidate 0.9.1 Update
|
||||
@@ -2882,3 +2919,10 @@ This SysDes version covers all known SysRS requirements from `SysRS-001` through
|
||||
| Version | Date | Description |
|
||||
|---|---|---|
|
||||
| 0.9.3 | 2026-05-15 | Added desktop PTT subsystem allocation SysDes-142 through SysDes-148: Platform PTT Backend layer, typed `PttCapabilityLevel` cross-interface, audio-pipeline split into `capture_active` and `transmit_active`, per-OS backend allocation (Windows Raw-Input ladder, macOS permission-aware, Linux GNOME-Wayland portal), diagnostics sanitizer for raw key events, UI capability badge, release-record evidence requirement. |
|
||||
|
||||
|
||||
## Baseline Candidate 0.9.5 Update
|
||||
|
||||
| Version | Date | Description |
|
||||
|---|---|---|
|
||||
| 0.9.5 | 2026-05-15 | Added v1 audio + PTT lifecycle allocation SysDes-149 through SysDes-151 sourced from SysRS-303 / SysRS-304: `TransmitMode` enum element (`Ptt` / `Continuous` / reserved `VoiceActivity` per DEC-030) at the audio + bridge + UI boundary, audio engine lifecycle bound to voice-channel membership with no manual start affordance and a listen-only path independent of mic permission, hard-mute override element, and the release-tail timer adapter (default 200 ms, range 0–500 ms) on `transmit_active`. Strict layered sourcing preserved (`SysDes -> SysRS` only). |
|
||||
|
||||
Reference in New Issue
Block a user