Files
chanora/docs/verification/swe5-software-integration-verification-plan.md
T
EdisonJwa 02ffadfa52 docs(ptt): land Baseline Candidate v0.9.3 — capability-based desktop PTT
Applies the gen2 desktop-PTT review summary
(`gen2/chanora-desktop-ptt-review-summary-v0.9.2.md`) to our doc set
with the owner rulings PTT-OPEN-001 through PTT-OPEN-006 resolved as
accepted decisions DEC-023 through DEC-028:

  * DEC-023 Windows Global PTT P0 / MVP
  * DEC-024 macOS Global PTT P0 / MVP with permission UX
  * DEC-025 Linux officially-tested env: GNOME on Wayland only
  * DEC-026 Mouse side buttons supported (Win + macOS; Linux portal)
  * DEC-027 PTT diagnostics: capability + availability only, no
            raw key codes ever
  * DEC-028 Missed-key-up watchdog: P0

Requirements (SysRS / SRS) and architecture (SysDes / SAD / SDD)
gain the desktop-PTT ID set the gen2 summary describes:

  SysRS-296..302  -> SysDes-142..148
                  -> SRS-195..203
                  -> SAD-071..079
                  -> SDD-081..092

ID totals advance from 295 / 141 / 194 / 70 / 80 to 302 / 148 / 203
/ 79 / 92. The strict layered sourcing rule (`SRS -> SysDes` only,
`SAD -> SRS` only, `SDD -> SAD` only) is preserved; the
`tools/validate_docs.py` validator reports zero undefined refs and
zero direct-layer-rule violations.

New document:

  * `docs/architecture/desktop-ptt-architecture.md` — capability
    ladder (L0Focused, L1GlobalShortcut, L2GlobalHoldToTalk,
    L3GlobalWithMouseButtons, L4DeviceAware reserved), Windows /
    macOS / Linux strategies, privacy rule, audio-gate rule,
    missed-key-up watchdog, release-readiness evidence requirement,
    traceability summary.

Doc addenda (Baseline Candidate 0.9.3):

  * `privacy/privacy-policy.md` — no raw key history, capability-
    dependent Global PTT, UI reflects actual runtime capability
  * `security/threat-model.md` — THREAT-PTT-001..006
  * `security/diagnostic-redaction-audit-report.md` —
    REDACT-PTT-001..006 banned field list enforced by `PttSanitizer`
  * `release/platform-release-policy.md` — per-platform evidence
    fields, no over-claim on untested Linux compositors
  * `release/release-readiness-go-nogo-record.md` — RR-PTT-001..008
    release-readiness items
  * `verification/swe4-unit-verification-plan.md` —
    SWE4-UV-035..039
  * `verification/swe5-software-integration-verification-plan.md` —
    SWE5-IV-015
  * `verification/swe6-software-verification-plan.md` — SWE6-SV-017
  * `verification/sys4-system-integration-verification-plan.md` —
    SYS4-SIV-016
  * `governance/traceability-matrix.md` — full PTT trace rows +
    verification map
  * `governance/decision-impact-assessment.md` — DEC-023..028
    impact matrix
  * `governance/product-decision-register.md` v0.9.9 entry
    recording DEC-023..028 in the decision table and the status
    table at §7
  * `governance/document-index.md` — adds
    `desktop-ptt-architecture.md` to the controlled set
  * `architecture/proof-of-concept-plan.md` —
    PoC-PTT-001..005 platform items
  * `references/external-references.md` — Windows Raw Input,
    macOS event-tap, Linux GlobalShortcuts portal references
  * Both validation reports
    (`baseline-candidate-validation-report.md`,
    `repo-format-validation-report.md`) bumped to v0.9.3 with the
    new ID totals (302 / 148 / 203 / 79 / 92).

README §"Desktop Push-to-Talk" added between Architecture Overview
and Repository Layout: capability levels, per-platform strategy,
privacy posture, missed-key-up watchdog.

Tooling:

  * `tools/validate_docs.py` copied from the gen2 zip into the
    repo tree (was previously available only inside the zip).
    Reports zero undefined refs, zero direct-layer-rule violations,
    English-only CJK check passes. The 35 "old package-style
    filename" hits are pre-existing and identical to the gen2
    baseline (they live in `path-migration-map.md` and config-ID
    headers of governance docs and are intentional per the path
    migration policy).
  * `.gitignore` adds `/gen2/` so the externally-provided review
    package does not enter the repo.

No code changes in this commit; B (the implementation split into
`transmit_active` / `capture_active`, `PttCapabilityLevel`
reporting, `PttSanitizer` diagnostics rule, and the UI capability
badge) follows in a separate commit.
2026-05-15 14:51:22 +08:00

11 KiB

Chanora SWE.5 Software Integration and Integration Verification Plan

Document type: Software Integration Verification Plan
Process alignment: ASPICE SWE.5 Software Component Verification and Integration Verification
Version: 0.9.2 Status: Baseline Candidate
Language: English
Product: Chanora
Verification object: Integrated software elements
Direct source layer: SAD and SDD verification objects

Repo path: docs/verification/swe5-software-integration-verification-plan.md ---

1. Purpose

This document defines the software integration and integration verification strategy for Chanora. It verifies that software elements integrate correctly and interact according to the software architecture and detailed design.

SysRS -> SysDes -> SRS -> SAD -> SDD
                         -> SWE.5 Software Integration Verification

SWE.5 verifies architecture interfaces, dynamic behavior, component behavior, and selected detailed-design interactions.

2. Integration Strategy

Integration step Integrated elements Purpose
SWE5-INT-001 Flutter App Shell + Design System Confirm theme initialization and token availability
SWE5-INT-002 Design System + UI Components Confirm components consume tokens and expose semantics
SWE5-INT-003 Adaptive Shell + Feature Modules Confirm compact/medium/expanded layouts integrate with features
SWE5-INT-004 Localization Service + UI Components Confirm product strings and accessibility labels integrate
SWE5-INT-005 Protocol Adapter + Rust Core Confirm protocol events and errors integrate with core state
SWE5-INT-006 Rust Core + Bridge Facade Confirm commands, results, and event streams integrate
SWE5-INT-007 Bridge Facade + Flutter State Confirm event mapping and view model updates
SWE5-INT-008 Audio Subsystem + Platform Audio Confirm capture, processing, encode/decode, and playback interface behavior
SWE5-INT-009 Diagnostics + Storage + Localization Confirm diagnostics event keys, localized descriptions, redaction, and export integration
SWE5-INT-010 Full Flutter UI + Rust Core Confirm end-to-end software behavior before software qualification testing

3. Integration Verification Measures

SWE5-IV-001: Verify Flutter App Shell and Design System integration.

  • Source SAD: SAD-001, SAD-002, SAD-007
  • Source SDD: SDD-001, SDD-002, SDD-003
  • Verification method: Flutter integration test
  • Pass criteria: App initializes Material 3 theme and Chanora semantic tokens before rendering feature screens.
  • Evidence: Integration test result

SWE5-IV-002: Verify Design System and UI Component integration.

  • Source SAD: SAD-002, SAD-003, SAD-014
  • Source SDD: SDD-004 through SDD-010, SDD-021 through SDD-024
  • Verification method: Widget integration test
  • Pass criteria: Components consume design tokens and expose required accessibility semantics.
  • Evidence: Integration test result

SWE5-IV-003: Verify adaptive shell and feature module integration.

  • Source SAD: SAD-008 through SAD-011
  • Source SDD: SDD-011 through SDD-015
  • Verification method: Integration test
  • Pass criteria: Compact, medium, and expanded layouts render correct feature regions and preserve critical voice/connection access.
  • Evidence: Integration test result

SWE5-IV-004: Verify connection status and VoiceBar integration.

  • Source SAD: SAD-012, SAD-013, SAD-016
  • Source SDD: SDD-016, SDD-017, SDD-018, SDD-026
  • Verification method: Integration test
  • Pass criteria: Connection status and primary voice controls are visible or directly reachable across layout classes.
  • Evidence: Integration test result

SWE5-IV-005: Verify localization and accessibility integration.

  • Source SAD: SAD-014, SAD-020, SAD-026
  • Source SDD: SDD-024, SDD-031, SDD-032, SDD-040
  • Verification method: Integration test, accessibility test
  • Pass criteria: Localized strings, semantic labels, fallback behavior, and locale-aware formatting work together.
  • Evidence: Integration test result

SWE5-IV-006: Verify server-content text path integration.

  • Source SAD: SAD-021, SAD-022, SAD-023
  • Source SDD: SDD-034, SDD-035, SDD-036, SDD-037
  • Verification method: Integration test
  • Pass criteria: Server names, channel names, nicknames, and messages preserve Unicode and are not translated.
  • Evidence: Integration test result

SWE5-IV-007: Verify Platform Services and App Shell integration.

  • Source SAD: SAD-017, SAD-018, SAD-019
  • Source SDD: SDD-027, SDD-028, SDD-029, SDD-030
  • Verification method: Platform integration test
  • Pass criteria: Insets, back intent, haptics, and keyboard avoidance integrate with shell behavior.
  • Evidence: Platform test result

SWE5-IV-008: Verify Bridge Facade and Rust Core integration.

  • Source SAD: SAD-040, SAD-041
  • Source SDD: SDD-046, SDD-047
  • Verification method: Integration test
  • Pass criteria: Flutter commands and Rust events flow through stable DTOs and deterministic event mapping.
  • Evidence: Integration test result

SWE5-IV-009: Verify Rust Core and Protocol Adapter integration.

  • Source SAD: SAD-032, SAD-033, SAD-041
  • Source SDD: SDD-046, SDD-047
  • Verification method: Integration test with protocol test server or protocol test double
  • Pass criteria: Connection, snapshot, delta events, and protocol errors integrate with core state.
  • Evidence: Integration test result

SWE5-IV-010: Verify Audio Subsystem and Platform Audio integration.

  • Source SAD: SAD-034
  • Source SDD: SDD-048
  • Verification method: Audio integration test
  • Pass criteria: Audio status reaches UI while DSP remains isolated from UI units.
  • Evidence: Audio integration test result

SWE5-IV-011: Verify Diagnostics integration.

  • Source SAD: SAD-036, SAD-050
  • Source SDD: SDD-038, SDD-041, SDD-050, SDD-054
  • Verification method: Integration test, audit
  • Pass criteria: Diagnostic keys, localized descriptions, redaction, Unicode preservation, and export flow operate together.
  • Evidence: Integration test result, audit record

SWE5-IV-012: Verify storage and secure-storage integration boundaries.

  • Source SAD: SAD-035
  • Source SDD: SDD-049
  • Verification method: Integration test, security review
  • Pass criteria: Non-secret data uses storage facade and secrets use secure storage boundaries.
  • Evidence: Integration test result, review record

SWE5-IV-013: Verify architecture-view and traceability-tooling integration.

  • Source SAD: SAD-046 through SAD-060
  • Source SDD: SDD-051 through SDD-070
  • Verification method: Documentation/tooling integration check
  • Pass criteria: Architecture views, ADRs, interface detail catalog, and traceability checker are mutually consistent.
  • Evidence: Review record

4. Regression Strategy

Regression selection shall consider:

  • changed software unit
  • changed interface
  • changed architecture item
  • changed DTO
  • changed localization resource
  • changed audio pipeline behavior
  • changed protocol adapter behavior
  • changed diagnostics redaction behavior
  • changed platform behavior

5. Traceability Matrix

Architecture / Design Area SWE.5 Coverage
SAD-001 through SAD-016 SWE5-IV-001 through SWE5-IV-005
SAD-017 through SAD-027 SWE5-IV-005 through SWE5-IV-007, SWE5-IV-011
SAD-028 through SAD-031 SWE5-IV-013
SAD-032 through SAD-041 SWE5-IV-008 through SWE5-IV-012
SAD-042 through SAD-050 SWE5-IV-001, SWE5-IV-011, SWE5-IV-013
SAD-051 through SAD-060 SWE5-IV-013
SDD-001 through SDD-030 SWE5-IV-001 through SWE5-IV-007
SDD-031 through SDD-050 SWE5-IV-005 through SWE5-IV-012
SDD-051 through SDD-070 SWE5-IV-013

6. Result Reporting

Software integration verification results shall be summarized in an integration verification summary report including:

  • integrated elements
  • selected integration sequence
  • selected verification measures
  • regression scope
  • test environment
  • pass/fail result
  • nonconformances
  • interface issues
  • residual risks
  • release recommendation

7. Change History

Version Date Description
0.1.0 2026-05-14 Initial SWE.5 software integration and integration verification plan.

8. Platform Decision Integration Verification Addendum

SWE5-IV-014: Verify platform baseline, build configuration, single connection, audio defaults, storage, bridge, and diagnostics privacy integration.

  • Source SAD: SAD-061 through SAD-070
  • Source SDD: SDD-071 through SDD-080
  • Verification method: Integration test, release inspection, security review
  • Pass criteria: New product decisions integrate across build configuration, runtime behavior, audio, storage, bridge, diagnostics, and release readiness.
  • Evidence: Integration verification result
Architecture / Design Area SWE.5 Coverage
SAD-061 through SAD-070 SWE5-IV-014
SDD-071 through SDD-080 SWE5-IV-014

SWE5-IV-015: Verify integrated desktop PTT subsystem (audio engine, Rust core PTT controller, bridge, Flutter UI, diagnostics).

  • Source SAD: SAD-071 through SAD-079
  • Source SDD: SDD-081 through SDD-092
  • Verification method: Software integration test on every supported desktop reference host (Windows, macOS, GNOME-on-Wayland Linux)
  • Pass criteria: For each platform the live measurement of PttCapabilityLevel and backend_id matches the design expectation; pressing the bound input toggles transmit_active end-to-end; the missed-key-up watchdog clears transmit_active after the configured timeout; the user-initiated diagnostic export does not contain raw key data; the UI capability badge matches the active capability.
  • Evidence: Integration test trace, diagnostic-export inspection, UI screenshot
Architecture / Design Area SWE.5 Coverage
SAD-061 through SAD-070 SWE5-IV-014
SDD-071 through SDD-080 SWE5-IV-014
SAD-071 through SAD-079 SWE5-IV-015
SDD-081 through SDD-092 SWE5-IV-015

Baseline Candidate 0.9.1 Update

Version Date Description
0.9.1 2026-05-14 Updated baseline after product decision closure: Apple App Store SDK gate uses Xcode 26+ and iOS 26 / iPadOS 26 SDK+ since 2026-04-28, platform baselines and decision traceability propagated across the document set.

Baseline Candidate 0.9.2 Update

Version Date Description
0.9.2 2026-05-14 Corrected Apple App Store Connect upload gate to 2026-04-28 and checked full-package naming, references, and coverage.

Baseline Candidate 0.9.3 Update

Version Date Description
0.9.3 2026-05-15 Added desktop PTT software-integration verification item SWE5-IV-015 covering the integrated audio engine + Rust core PTT controller + bridge + Flutter UI + diagnostics path on Windows, macOS, and GNOME-on-Wayland Linux reference hosts.