From 2e07d5fd4aec94292bed29df740a5f56623b9512 Mon Sep 17 00:00:00 2001 From: Edison Jwa Date: Sat, 13 Jun 2026 02:30:23 +0900 Subject: [PATCH] docs: fix all remaining review issues for 10/10 accuracy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit function-inventory.md: - Fix SnapshotStateMapper → OwnClientSnapshotState + add 3 missing functions - Fix enum variant counts: CoreError 7→12, ProtocolError 9→10, BridgeError 8→7, AudioError 7→8 coverage-analysis.md: - Fix total Dart tests 221→233 - Fix chat_views_test.dart count 18→29 - Fix widget test count 13→14, add audio_device_list_tile_test.dart - Fix total doc count 55→86 doc-quality-analysis.md: - Relabel 'Useless Content' → 'Path Record Files (DV Navigation Aids)' - Soften 'identical' → 'overlapping' for commit examples README.md: - Update Dart test count 221→233 --- docs/offline-knowledge/README.md | 4 ++-- docs/offline-knowledge/coverage-analysis.md | 10 ++++---- .../offline-knowledge/doc-quality-analysis.md | 24 ++++++++++++------- docs/offline-knowledge/function-inventory.md | 13 ++++++---- 4 files changed, 31 insertions(+), 20 deletions(-) diff --git a/docs/offline-knowledge/README.md b/docs/offline-knowledge/README.md index e3a8c7c..c6d84d8 100644 --- a/docs/offline-knowledge/README.md +++ b/docs/offline-knowledge/README.md @@ -13,7 +13,7 @@ | Document | Description | Status | |----------|-------------|--------| | [function-inventory.md](function-inventory.md) | Complete public API inventory for all 10 Rust crates + 56 Dart files. Includes dead code analysis. | Reviewed | -| [coverage-analysis.md](coverage-analysis.md) | Test coverage (312 Rust tests, 221 Dart tests) and documentation coverage gaps. | Reviewed, corrected | +| [coverage-analysis.md](coverage-analysis.md) | Test coverage (312 Rust tests, 233 Dart tests) and documentation coverage gaps. | Reviewed, corrected | | [doc-quality-analysis.md](doc-quality-analysis.md) | Duplicated content, useless content, and broken references in docs/. | Reviewed, corrected | | [link-coverage-report.md](link-coverage-report.md) | All internal/external links validated. 2 broken LICENSE links, 5 broken doc-path refs. | Reviewed, corrected | | [docs-code-mismatch.md](docs-code-mismatch.md) | 17 doc-code mismatches found (2 critical, 4 major, 11 minor). | Reviewed, corrected | @@ -52,7 +52,7 @@ ### Test Coverage - **Rust**: 312 inline tests + 6 integration tests across 8/10 crates -- **Dart**: 221 tests (widgets: 58%, services: 90%) +- **Dart**: 233 tests (widgets: 58%, services: 90%) - **Untested crates**: chanora_bridge, chanora_cache, chanora_prefetch ### Documentation Gaps diff --git a/docs/offline-knowledge/coverage-analysis.md b/docs/offline-knowledge/coverage-analysis.md index 7484409..f527712 100644 --- a/docs/offline-knowledge/coverage-analysis.md +++ b/docs/offline-knowledge/coverage-analysis.md @@ -11,10 +11,10 @@ |--------|-------| | Total Rust tests (inline `#[test]`) | 312 | | Total Rust integration tests | 6 | -| Total Dart tests (`test()` + `testWidgets()`) | 221 | +| Total Dart tests (`test()` + `testWidgets()`) | 233 | | Crates with tests | 7/9 | | Dart services with tests | 19/21 (90%) | -| Dart widgets with tests | 13/24 (58%) | +| Dart widgets with tests | 14/24 (58%) | | Overall estimated coverage | ~65% | --- @@ -176,7 +176,7 @@ | audio_processing_config_state.dart | ✅ audio_processing_config_state_test.dart | 8 | Tested | | bbcode_text.dart | ✅ bbcode_text_test.dart | Tested | | chat_panel.dart | ✅ chat_panel_test.dart | Tested | -| chat_views.dart | ✅ chat_views_test.dart | 18 | Tested | +| chat_views.dart | ✅ chat_views_test.dart | 29 | Tested | | client_info_sheet.dart | ✅ client_info_sheet_test.dart | Tested | | poke_notification_settings.dart | ✅ poke_notification_settings_test.dart | Tested | | snapshot_view.dart | ✅ snapshot_view_test.dart | Tested | @@ -186,7 +186,7 @@ | voice_status_summary.dart | ✅ voice_status_summary_test.dart | 5 | Tested | | mobile_ui_resilience.dart | ✅ mobile_ui_resilience_test.dart | Tested | | **audio_debug_stats_panel.dart** | ❌ No test file | 0 | **UNTESTED** | -| **audio_device_list_tile.dart** | ❌ No test file | 0 | **UNTESTED** | +| **audio_device_list_tile.dart** | ✅ audio_device_list_tile_test.dart | 3 | Tested | | **audio_output_tile.dart** | ❌ No test file | 0 | **UNTESTED** | | **connect_widgets.dart** | ❌ No test file | 0 | **UNTESTED** | | **input_dialogs.dart** | ❌ No test file | 0 | **UNTESTED** | @@ -212,7 +212,7 @@ | Metric | Count | |--------|-------| -| Total doc files (under docs/) | 55 | +| Total doc files (under docs/) | 86 | | Modules documented | ~15 areas | | Estimated outdated docs | 3-5 | diff --git a/docs/offline-knowledge/doc-quality-analysis.md b/docs/offline-knowledge/doc-quality-analysis.md index b113083..83d60a3 100644 --- a/docs/offline-knowledge/doc-quality-analysis.md +++ b/docs/offline-knowledge/doc-quality-analysis.md @@ -3,7 +3,8 @@ ## Summary - Total docs analyzed: 64 - Duplicated content instances: 8 -- Useless content items: 1 (malformed markdown only) +- Path record files (DV navigation aids): 4 +- Genuine issues (malformed markdown): 1 - Broken references: 1 (suggested file names only; SDD-109/SAD-043 are valid historical refs) ## Duplicated Content @@ -48,16 +49,23 @@ - **Content**: Same Android ADB/emulator verification steps and `adb devices -l` requirements - **Recommendation**: Define once in a shared reference and import -## Useless Content +## Path Record Files (DV Navigation Aids) -### Empty Sections +These files are intentional ASPICE DV entry-point records with reviewer navigation tables. They are NOT useless — they serve a specific compliance purpose. Listed here for awareness only. + +### DV Navigation Aids + +| File | Line | Header | Issue | +|------|------|--------|-------| +| `docs/architecture/sysdes.md` | 1-21 | Entire file | Path record — points to `docs/sysdes.md` for DV reviewer navigation | +| `docs/requirements/sysrs.md` | 1-22 | Entire file | Path record — points to `docs/sysrs.md` for DV reviewer navigation | +| `docs/requirements/srs.md` | 1-22 | Entire file | Path record — points to `docs/srs.md` for DV reviewer navigation | +| `docs/ui-ux/material3-guideline.md` | 1-8 | Entire file | Path record — points to `docs/material3-guideline.md` for DV reviewer navigation | + +### Genuine Issues | File | Line | Header | Issue | |------|------|--------|-------| -| `docs/architecture/sysdes.md` | 1-21 | Entire file | Path record file — 21 lines pointing to `docs/sysdes.md` with no unique content | -| `docs/requirements/sysrs.md` | 1-22 | Entire file | Path record file — 22 lines pointing to `docs/sysrs.md` with no unique content | -| `docs/requirements/srs.md` | 1-22 | Entire file | Path record file — 22 lines pointing to `docs/srs.md` with no unique content | -| `docs/ui-ux/material3-guideline.md` | 1-8 | Entire file | Path record file — 8 lines pointing to `docs/material3-guideline.md` | | `docs/sysdes.md` | 13 | `**Repo path:** ... ---` | Malformed markdown (missing blank line before `---`) | ### TODO/Placeholder Markers @@ -94,7 +102,7 @@ No actual TODO/TBD/placeholder markers found in the documentation files. The cod | Code Hash | Files | Description | |-----------|-------|-------------| | Lifecycle chain | `README.md:280`, `CONTRIBUTING.md:10`, `docs/sysdes.md:90`, `docs/sysrs.md:108`, `docs/governance/traceability-matrix.md:16`, `docs/references/aspice-swe2-swe3-integration-note.md:12` | `SysRS -> SysDes -> SRS -> SAD -> SDD -> Verification` | -| Commit examples | `README.md:379-386`, `CONTRIBUTING.md:37-42`, `docs/governance/git-commit-message-convention.md:14-19` | 4-6 identical commit message examples | +| Commit examples | `README.md:379-386`, `CONTRIBUTING.md:37-42`, `docs/governance/git-commit-message-convention.md:14-19` | Overlapping commit message examples (different subsets in each file) | | Security doc list | `README.md:349-355`, `SECURITY.md:33-38` | 6 identical file paths | | Architecture ASCII art | `README.md:73-92`, `docs/architecture/sad.md:56-67` | Similar but not identical architecture diagrams | | Platform table | `README.md:47-54`, `docs/release/platform-release-policy.md:12-19` | Overlapping platform requirement tables | diff --git a/docs/offline-knowledge/function-inventory.md b/docs/offline-knowledge/function-inventory.md index 0b72a6a..e5f0889 100644 --- a/docs/offline-knowledge/function-inventory.md +++ b/docs/offline-knowledge/function-inventory.md @@ -62,7 +62,7 @@ Isolates `tsclientlib` behind a typed boundary. No upstream types leak. | struct | `ChannelId` | dto.rs:11 | Opaque channel identifier (u64 newtype) | | struct | `ClientId` | dto.rs:15 | Opaque client identifier (u64 newtype) | | struct | `PokeLimiter` | poke_limiter.rs:19 | Per-connection poke rate limiter | -| enum | `ProtocolError` | lib.rs:62 | Typed error catalogue (9 variants) | +| enum | `ProtocolError` | lib.rs:62 | Typed error catalogue (10 variants) | | enum | `ProtocolDelta` | dto.rs:183 | Incremental state changes (7 variants) | | enum | `DisconnectReason` | adapter.rs:225 | Why protocol task ended | | enum | `MessageTarget` | dto.rs:37 | Text message target scope | @@ -113,7 +113,7 @@ Typed DTOs and commands for `flutter_rust_bridge` 2.x. | struct | `BridgeAudioProcessingStats` | api.rs:1143 | Audio processing stats DTO | | struct | `BridgePttDescriptor` | api.rs:854 | PTT capability descriptor | | struct | `BridgePttBinding` | api.rs:875 | PTT binding display state | -| enum | `BridgeError` | lib.rs:55 | Bridge-layer errors (8 variants) | +| enum | `BridgeError` | lib.rs:55 | Bridge-layer errors (7 variants) | | enum | `BridgeTransmitMode` | api.rs:731 | Transmit mode mirror | | enum | `BridgePttInputClass` | api.rs:843 | PTT input class | | enum | `BridgeAudioRoute` | api.rs:1047 | Audio route class | @@ -257,7 +257,7 @@ Platform capture/playback, Opus encoding, VAD, PTT, DSP. | struct | `SessionAudioId` | engine.rs:69 | Stable audio session ID | | struct | `AudioDeviceList` | engine.rs:87 | Available audio devices | | struct | `AudioDeviceInfo` | engine.rs:96 | Single audio device info | -| enum | `AudioError` | lib.rs:100 | Audio subsystem errors (7 variants) | +| enum | `AudioError` | lib.rs:100 | Audio subsystem errors (8 variants) | | struct | `AudioEffects` | lib.rs:136 | AEC/AGC/NS/HPF toggles | | fn | `list_audio_devices` | engine.rs:176 | Enumerate input/output devices | | fn | `AudioEngine::start` | engine.rs:634 | Start audio engine | @@ -458,7 +458,7 @@ Integration point composing all subsystems behind a stable API. | Kind | Name | File:Line | Purpose | |------|------|-----------|---------| | struct | `ChanoraSession` | lib.rs:191 | Process-wide session handle | -| enum | `CoreError` | lib.rs:84 | Top-level errors (7 variants) | +| enum | `CoreError` | lib.rs:84 | Top-level errors (12 variants) | | struct | `PttDescriptorSnapshot` | events.rs:6 | PTT descriptor snapshot | | struct | `PersistedPttBinding` | events.rs:27 | Persisted PTT binding | | struct | `PttController` | ptt.rs:68 | PTT controller | @@ -553,7 +553,10 @@ Integration point composing all subsystems behind a stable API. | `PokePreferencesService` | services/poke_preferences_service.dart:44 | Poke mute preferences | | `PokeNotificationService` | services/poke_notification_service.dart | Poke notification handler | | `PrefetchDebouncer` | services/prefetch_debouncer.dart:15 | DNS prefetch debouncer | -| `SnapshotStateMapper` | services/snapshot_state_mapper.dart:43 | Snapshot→state mapper | +| `OwnClientSnapshotState` | services/snapshot_state_mapper.dart:3 | Snapshot→state mapper | +| `ownClientSnapshotState()` | services/snapshot_state_mapper.dart:23 | Build snapshot state | +| `snapshotChannelName()` | services/snapshot_state_mapper.dart:43 | Get channel name from snapshot | +| `snapshotNeededTalkPower()` | services/snapshot_state_mapper.dart:48 | Get required talk power | | `Ts3ServerLink` | services/ts3_server_link.dart:83 | TS3 server link parser | | `UiPreferencesService` | services/ui_preferences_service.dart | UI preferences | | `VoiceJoinOrdering` | services/voice_join_ordering.dart | Voice join ordering |