Files
chanora/docs/verification/swe4-unit-verification-plan.md
T

4.8 KiB

SWE.4 Unit Verification Plan

Document status: DV meeting baseline candidate
Date: 2026-05-29
Scope: Unit-level verification for Chanora software components

1. Purpose

This plan defines unit verification coverage for the software modules that implement Chanora behavior. The plan is based on the current repository state and the SRS verification hooks. It is acceptable for DV only when open unit gaps remain visible in the waiver register.

2. Unit Verification Scope

Area Components Verification method Current evidence
Rust core orchestration core/chanora_core Cargo unit tests, integration-oriented crate tests cargo test --workspace --locked --no-fail-fast in CI
Protocol adapter crates/chanora_protocol Protocol DTO and error mapping tests Workspace tests; protocol compatibility still needs SWE.5/SYS.4 evidence
State sync crates/chanora_state Snapshot, delta, reducer, malformed-event, reconnect, deterministic ordering, unknown-client, and channel-delete/client cleanup unit tests Local cargo test -p chanora_state --locked passes with 27 tests
Audio subsystem crates/chanora_audio DSP, Opus, mixer, gate, PTT logic, baseline examples, benches Workspace tests and benchmark harnesses; platform loopback evidence is integration/system scope
Storage crates/chanora_storage Bookmark repository, identity store, encryption behavior, keyring-disabled CI mode Workspace tests with CHANORA_DISABLE_KEYRING=1 in CI
Diagnostics crates/chanora_diagnostics Redaction, known-secret registry, diagnostic export JSON, log sink Workspace tests and security audit plan
Resolver and prefetch crates/chanora_resolver, crates/chanora_server_prefetch, Flutter prefetch debouncer Resolver fallback, cache TTL, generation safety, debouncer tests Workspace tests and apps/chanora_flutter/test/services/prefetch_debouncer_test.dart
Flutter services apps/chanora_flutter/lib/services Dart unit tests Service tests under apps/chanora_flutter/test/services/
Flutter widgets apps/chanora_flutter/lib/widgets and screen widgets Widget tests Widget tests under apps/chanora_flutter/test/widgets/

3. Required CI Commands

Command Owner Expected use
cargo check --workspace --locked Software Rust compile verification
CHANORA_DISABLE_KEYRING=1 cargo test --workspace --locked --no-fail-fast Software / QA Rust unit and crate tests without host keyring dependency
cargo clippy --workspace --all-targets -- -D warnings Software Advisory static analysis in current CI
flutter analyze in apps/chanora_flutter Software Dart static analysis
flutter test --exclude-tags e2e in apps/chanora_flutter Software / QA Flutter unit and widget tests

4. SRS Unit Coverage Focus

SRS group Unit focus Status for DV
SRS-036 through SRS-043 Rust core and state behavior Reducer unit evidence present; candidate CI/run ID still required for release record
SRS-054 through SRS-061 State sync reducers and replay support Reducer unit coverage present; standalone event replay support remains P1/not complete
SRS-062 through SRS-083 Audio capture, processing, codec, playback, controls Partial; unit and benchmark evidence exists, full platform loopback is SWE.5/SYS.4
SRS-084 through SRS-095 Storage, secure storage, diagnostics Partial; CI avoids real keyring and must be supplemented by platform audits
SRS-165 through SRS-178 Localization and Unicode handling Partial; generated localization exists and targeted tests should be reviewed
SRS-184 and platform behavior items App initialization and platform services Partial; service tests exist for back intent, permissions, bootstrap, and lifecycle

5. Known SWE.4 Gaps

Gap Impact Required DV handling
Standalone event replay tool is not yet complete Limits P1 replay-based state-sync verification claims Keep event replay waiver; reducer unit evidence is available
Event replay tool not found P1 verification hook is incomplete Mark deferred/P1 in SWE.6 and waiver register if discussed
Platform keyring behavior not exercised in CI Secure-storage unit evidence is incomplete for real OS services Cover through platform audit/SYS.4, not CI-only claims
Audio device hot-plug recovery follow-up exists Limits reliability evidence for SRS-082 Mark as P1 gap

6. SWE.4 DV Decision Rule

SWE.4 can pass for documentation readiness if all existing unit commands are identified and open unit gaps are listed as limitations. SWE.4 cannot be used to approve public release until required unit evidence is executed on the release candidate and attached to the release-readiness record.