docs(architecture): update SysDes, SDD, SAD with missing modules and SysRS allocations (TODO-028,034,035)
SysDes: add SysRS-310 allocation, update coverage statement. SDD: add SDD-MOD-015/016/017 for resolver/prefetch/cache, update engine split. SAD: add Cache component to architecture table and diagram.
This commit is contained in:
+81
@@ -1700,6 +1700,87 @@ Therefore:
|
||||
- Owner: Software Team
|
||||
|
||||
|
||||
## 5.x. Implemented Features Without SysRS/SRS Requirements
|
||||
|
||||
The following features have working code implementations but lack corresponding SysRS or SRS requirements. This section documents the gap for traceability purposes and to support future requirement authoring.
|
||||
|
||||
### 5.x.1 Poke Notifications
|
||||
|
||||
**Description:** Poke is a TeamSpeak-compatible attention notification that allows users to send an alert to another connected client without a text message, or with optional text. The feature uses the `clientpoke` command via `tsclientlib` with poke-specific permissions (`i_client_poke_power`, `i_client_needed_poke_power`).
|
||||
|
||||
**Current implementation:**
|
||||
- Bridge API: `send_chat_message` with `BridgeMessageTarget::Poke(id)` target type
|
||||
- Core: `file_transfer.rs` contains poke-related error types
|
||||
- Flutter: `poke_notification_service.dart` handles incoming poke notifications
|
||||
|
||||
**Gap:** No dedicated SysRS or SRS requirements for poke functionality. Poke should trace to a SysDes item for attention notifications.
|
||||
|
||||
**SysRS coverage:** None currently - requires new SysRS item
|
||||
**SRS coverage:** None currently - requires new SRS item
|
||||
|
||||
---
|
||||
|
||||
### 5.x.2 File Transfer (Avatar/Icon Download)
|
||||
|
||||
**Description:** File transfer enables downloading client avatars and server/channel/client icons from TeamSpeak-compatible servers. The implementation uses a two-phase protocol: first requesting transfer credentials via the query connection, then establishing a direct raw TCP connection for the actual file data.
|
||||
|
||||
**Current implementation:**
|
||||
- Core module: `core/chanora_core/src/file_transfer.rs`
|
||||
- Design document: `docs/architecture/file-transfer-design.md`
|
||||
- Uses cacache (Rust blob cache) for local caching of downloaded assets
|
||||
|
||||
**Gap:** No SysRS or SRS requirements for file transfer functionality. Avatar/icon retrieval is a key user-facing feature.
|
||||
|
||||
**SysRS coverage:** None currently - requires new SysRS item
|
||||
**SRS coverage:** None currently - requires new SRS item
|
||||
|
||||
---
|
||||
|
||||
### 5.x.3 Hard-Mute
|
||||
|
||||
**Description:** Hard-mute is an audio transmit clamp that prevents all audio transmission regardless of push-to-talk state, channel membership, or other transmit mode settings. It is the final gate in the transmit selector chain.
|
||||
|
||||
**Current implementation:**
|
||||
- Core: `set_hard_mute(muted: bool)` and `hard_mute()` getter in `ChanoraSession`
|
||||
- Bridge: `set_hard_mute(muted: bool)` (already added `is_hard_muted()` readback)
|
||||
- Audio: `TransmitModeSelector::set_hard_mute` with `hard_mute()` getter
|
||||
- Referenced in SDD-094, SDD-106 §5/§6
|
||||
|
||||
**Gap:** Hard-mute exists in code and is referenced in SDD but has no SysRS/SRS requirement. Should trace to a SysDes item for audio transmit control.
|
||||
|
||||
**SysRS coverage:** None currently - requires new SysRS item
|
||||
**SRS coverage:** None currently - requires new SRS item
|
||||
|
||||
---
|
||||
|
||||
### 5.x.4 Blob Cache (Cacache)
|
||||
|
||||
**Description:** Blob cache using the cacache library provides local storage for downloaded assets (avatars, icons) to avoid re-fetching on every session. The cache is configured with a maximum size and uses content-addressable storage.
|
||||
|
||||
**Current implementation:**
|
||||
- Core: `file_transfer.rs` implements `FileTransferService` with cacache backend
|
||||
- Cache configuration exposed via `configure_blob_cache()` and `blob_cache_size()` in core
|
||||
- Test: `core/chanora_core/tests/avatar_cache.rs`
|
||||
|
||||
**Gap:** Blob cache is an implementation detail supporting file transfer but has no explicit requirements for cache behavior (eviction policy, size limits, persistence).
|
||||
|
||||
**SysRS coverage:** None currently - requires new SysRS item for cache behavior
|
||||
**SRS coverage:** None currently - requires new SRS item
|
||||
|
||||
---
|
||||
|
||||
### Coverage Summary
|
||||
|
||||
| Feature | Code Exists | SysRS Coverage | SRS Coverage | SysDes Item |
|
||||
|---|---|---|---|---|
|
||||
| Poke notifications | Yes | No | No | None |
|
||||
| File transfer | Yes | No | No | None |
|
||||
| Hard-mute | Yes | No | No | None |
|
||||
| Blob cache (cacache) | Yes | No | No | None |
|
||||
|
||||
**Note:** This gap analysis was conducted as part of TODO-038. These features should have formal SysRS items authored, from which SRS requirements can be derived to complete the traceability chain from code to system requirements.
|
||||
|
||||
|
||||
## 6. Operating Environment Impact Analysis
|
||||
|
||||
| Environment element | Software impact | Related SRS |
|
||||
|
||||
Reference in New Issue
Block a user