- Move ASPICE docs to chanoraapp/docs submodule at docs/ - Move development docs to dev-docs/ (superpowers, offline-knowledge, impl-mapping) - Add AGENTS.md with project conventions for AI agents - Add impl-mapping.md (SAD component → source file mapping) - Archive completed plans to dev-docs/superpowers/plans/_archived/ - Remove AGENTS.md from .gitignore (now tracked)
5.2 KiB
Final Fixes Review — Offline Knowledge Library
Reviewer: opencode (automated) Date: 2026-06-13 Method: Direct source code verification against each claimed fix
Summary
| Result | Count |
|---|---|
| PASS | 13 |
| FAIL | 4 |
| PARTIAL | 0 |
Detailed Results
function-inventory.md
| # | Claim | Verdict | Evidence |
|---|---|---|---|
| 1 | OwnClientSnapshotState at services/snapshot_state_mapper.dart:3 |
PASS | File confirms class OwnClientSnapshotState { at line 3 |
| 2 | ownClientSnapshotState() at line 23 |
PASS | File confirms OwnClientSnapshotState? ownClientSnapshotState(...) at line 23 |
| 3 | snapshotChannelName() at line 43 |
PASS | File confirms String snapshotChannelName(...) at line 43 |
| 4 | snapshotNeededTalkPower() at line 48 |
PASS | File confirms int? snapshotNeededTalkPower(...) at line 48 |
| 5 | CoreError says 12 variants |
PASS | core/chanora_core/src/lib.rs:84-123 — counted: Protocol, State, Audio, Storage, Cache, FileTransfer, Diagnostics, Invariant, NotConnected, AlreadyConnected, AudioNotStarted, Ptt = 12 |
| 6 | ProtocolError says 10 variants |
PASS | crates/chanora_protocol/src/lib.rs:62-122 — counted: Invalid, DnsFailed, Connect, DisconnectedEarly, Lost, Identity, Timeout, ServerRejected, Backend, FileTransfer = 10 |
| 7 | BridgeError says 7 variants |
PASS | crates/chanora_bridge/src/lib.rs:55-95 — counted: InvalidCommand, DnsFailed, Connection, NotConnected, AlreadyConnected, ServerRejected, Unmapped = 7 |
| 8 | AudioError says 8 variants |
PASS | crates/chanora_audio/src/lib.rs:100-127 — counted: NoInputDevice, NoOutputDevice, StreamConfig, Opus, Backend, PlatformNotReady, InvalidAudioProcessingConfig, UnsupportedAudioProcessingConfig = 8 |
coverage-analysis.md
| # | Claim | Verdict | Evidence |
|---|---|---|---|
| 9 | Total Dart tests = 233 | FAIL | Actual count via rg "^\s*(test|testWidgets)\(" across all test files = 221 (155 test() + 66 testWidgets()). Breakdown: 116 service tests + 96 widget tests + 9 e2e/template tests = 221. The number 233 is overstated by 12. |
| 10 | chat_views_test.dart = 29 tests | PASS | rg -c confirms exactly 29 test/testWidgets calls in the file |
| 11 | Widget tests = 14/24 | PASS | 24 widget .dart files found in lib/widgets/; 14 have matching test files in test/widgets/ (audio_device_list_tile, app_snack_bar, audio_processing_config_state, bbcode_text, chat_panel, chat_views, client_info_sheet, mobile_ui_resilience, poke_notification_settings, snapshot_view, talk_power_warning, voice_compact, voice_settings_controls, voice_status_summary). 10 untested. |
| 12 | audio_device_list_tile.dart marked as tested | PASS | test/widgets/audio_device_list_tile_test.dart exists with 3 tests |
| 13 | Doc count = 86 | FAIL | Actual count: find docs/ -type f = 90 total files (24 under offline-knowledge/ + 66 elsewhere). If excluding offline-knowledge/ it's 66, not 86. The claimed 86 matches neither total. |
doc-quality-analysis.md
| # | Claim | Verdict | Evidence |
|---|---|---|---|
| 14 | "Useless Content" relabeled to "Path Record Files (DV Navigation Aids)" | PASS | Lines 52-54: section header reads ## Path Record Files (DV Navigation Aids) with correct description |
| 15 | Commit examples say "overlapping" not "identical" | PASS | Line 105: Overlapping commit message examples (different subsets in each file) |
README.md
| # | Claim | Verdict | Evidence |
|---|---|---|---|
| 16 | Dart tests = 233 (consistent with coverage-analysis.md) | FAIL | README line 55 says 233, coverage-analysis.md line 14 says 233 — they are consistent with each other but both are wrong. Actual count is 221. |
| 17 | All 6 new files listed in index | PASS | All 7 Project Analysis files exist on disk: function-inventory.md, coverage-analysis.md, doc-quality-analysis.md, link-coverage-report.md, docs-code-mismatch.md, docs-out-of-date.md, docs-link-not-covered.md |
| 18 | Integration tests = 6 | FAIL | Only 5 integration test files found: chanora_audio/tests/ptt_privacy.rs, chanora_audio/tests/linux_portal_smoke.rs, chanora_core/tests/alpha_smoke.rs, chanora_core/tests/avatar_cache.rs, chanora_core/tests/mvp_storage.rs |
Remaining Issues
-
Dart test count is 221, not 233 — Both
coverage-analysis.mdandREADME.mdoverstate by 12 tests. Needs correction in both files. -
Rust integration test count is 5, not 6 — Both
coverage-analysis.md("Total Rust integration tests: 6") andREADME.md("6 integration tests") are wrong. Only 5 integration test files exist undertests/directories. -
Doc file count is 90, not 86 —
coverage-analysis.mdclaims 86 total doc files underdocs/. The actual count is 90 (24 offline-knowledge + 66 other). The 86 figure doesn't match any meaningful subset. -
coverage-analysis.md service test total is inconsistent — The table header claims "155 tests across 19 test files" for services, but the per-file numbers in the table sum to approximately 116. The remaining ~39 may be in files not individually listed.