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.
248 lines
11 KiB
Markdown
248 lines
11 KiB
Markdown
|
|
# 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.
|
|
|
|
```text
|
|
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. |
|