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:
Edison Jwa
2026-06-11 13:25:21 +09:00
parent f509c370b3
commit 8dbe767d4f
4 changed files with 94 additions and 5 deletions
+81
View File
@@ -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 |