Files
chanora/docs/governance/product-decision-register.md
T
EdisonJwa f1bc9a6c85 chore(repo): initial baseline import (docs v0.9.2 + bootstrap)
Imports the v0.9.2 documentation baseline and the bootstrap files
required by docs/governance/repository-bootstrap-plan.md v0.1.0 §3,
minus the justfile (added in the next commit).

This commit establishes the git history for the project. All previous
work lived only as filesystem state with no version control.
2026-05-14 12:25:33 +08:00

146 lines
13 KiB
Markdown

# CHANORA_CFG_Product_Decision_Register_v0.9.2.2.1
**Document type:** Configuration / Product Decision Register
**Version:** 0.9.2
**Status:** Baseline Candidate
**Language:** English
**Product:** Chanora
**Repo path:** `docs/governance/product-decision-register.md` ---
## 1. Purpose
This document records key product, architecture, release, legal, and engineering decisions that affect Chanora scope, testing, architecture, app store eligibility, and release readiness.
A decision marked **Proposed / Owner Confirmation Required** is a recommended decision that should be confirmed by the owner before Final / Approved Baseline.
## 2. Decision Status Legend
| Status | Meaning |
|---|---|
| Proposed / Owner Confirmation Required | Recommended decision; owner must confirm before Final. |
| Accepted | Confirmed and part of baseline. |
| Deferred | Not decided for this release; must not block scope if explicitly deferred. |
| Rejected | Not selected. |
## 3. Key Blocking Decisions
| Decision ID | Decision | Recommended decision | Status | Owner | Why it matters |
|---|---|---|---|---|---|
| DEC-001 | Release type | Internal Alpha first, then External Beta, then MVP Public / Store Release | Proposed / Owner Confirmation Required | Product Owner | Controls release gate, verification bar, legal/privacy requirements, and platform scope. |
| DEC-002 | MVP platform scope | MVP target remains Windows, macOS, Linux, Android, and iOS; first release may be staged by channel/platform | Proposed / Owner Confirmation Required | Product Owner + Engineering Owner | Controls verification matrix, build artifacts, store readiness, and support load. |
| DEC-003 | Minimum iOS version | iOS 13 minimum for Flutter support baseline; test latest iOS release separately | Proposed / Owner Confirmation Required | Product Owner + iOS Owner | Controls iOS compatibility, test devices, and app store eligibility. |
| DEC-004 | Minimum Android version | Android API 24 minimum; target API level must satisfy current Google Play policy | Proposed / Owner Confirmation Required | Product Owner + Android Owner | Controls Android device support, runtime permissions, and Play Store eligibility. |
| DEC-005 | Android target SDK | Target the Google Play-required API level on the upload date; current release gate uses API 35+ unless newer Google policy applies | Proposed / Owner Confirmation Required | Android Owner + Release Manager | Required for new apps and updates submitted to Google Play after the current policy date. |
| DEC-006 | Multiple server connections in MVP | Not in MVP; support one active server connection per client instance | Proposed / Owner Confirmation Required | Product Owner + Software Architect | Reduces state synchronization, audio routing, UI complexity, and verification scope. |
| DEC-007 | AEC default state | Enabled by default on platforms/audio backends where supported and stable | Proposed / Owner Confirmation Required | Audio Owner + Product Owner | Affects echo quality, CPU usage, platform behavior, and user experience. |
| DEC-008 | AGC default state | Enabled by default, with user setting to disable | Proposed / Owner Confirmation Required | Audio Owner + Product Owner | Affects perceived loudness consistency and may affect advanced user preference. |
| DEC-009 | Noise suppression default state | Enabled by default, with user setting to disable | Proposed / Owner Confirmation Required | Audio Owner + Product Owner | Improves typical voice quality but may affect voice naturalness and CPU usage. |
| DEC-010 | High-pass filter default state | Enabled by default | Proposed / Owner Confirmation Required | Audio Owner | Removes low-frequency rumble and usually improves speech capture. |
| DEC-011 | Audio processing implementation path | Use platform-native audio processing first where available; use Rust/WebRTC-style processing as controlled fallback or later architecture option | Proposed / Owner Confirmation Required | Software Architect + Audio Owner | Controls architecture, latency, CPU use, platform compatibility, and testing. |
| DEC-012 | Official SDK / trademark / licensing review | Public/store release is blocked until legal confirms TeamSpeak non-affiliation wording, trademark usage, OSS licenses, and `tsclientlib` license posture | Proposed / Owner Confirmation Required | Legal / Compliance + Product Owner | Public release risk and store metadata risk. |
| DEC-013 | Local database choice | Use SQLite or equivalent embedded local database for non-secret local state; secrets remain in platform secure storage | Proposed / Owner Confirmation Required | Software Architect + Storage Owner | Controls storage schema, migrations, backup/delete policy, and portability. |
| DEC-014 | Bridge choice | Use a stable typed Flutter/Rust bridge with generated or schema-controlled DTOs; default to `flutter_rust_bridge` unless prototype proves a better option | Proposed / Owner Confirmation Required | Software Architect | Controls API stability, maintainability, async event flow, and long-term code generation. |
| DEC-015 | Product language for MVP | English-only product UI for MVP; i18n-ready architecture; server-provided content preserved and not translated | Proposed / Owner Confirmation Required | Product Owner | Controls localization scope and release schedule. |
| DEC-016 | Diagnostics upload policy | No automatic upload for MVP; user-initiated local diagnostic export only | Proposed / Owner Confirmation Required | Product Owner + Legal + Security | Controls privacy policy, support workflow, and security review scope. |
| DEC-017 | Crash reporting | Disabled for MVP unless explicit opt-in provider and privacy policy are approved | Proposed / Owner Confirmation Required | Product Owner + Legal + Security | Avoids privacy/legal complexity before public release. |
| DEC-018 | Public product name | Chanora | Proposed / Owner Confirmation Required | Product Owner | Branding and legal identity. |
| DEC-019 | Public non-affiliation statement | Use legal-approved wording; draft: “Chanora is independent and is not affiliated with, endorsed by, sponsored by, or officially associated with TeamSpeak.” | Proposed / Legal Confirmation Required | Legal / Compliance | Required for public release and store metadata. |
| DEC-021 | Apple App Store submission SDK | Use Xcode 26 or later and the iOS 26 / iPadOS 26 SDK or later for App Store submission on or after 2026-04-28, unless Apple publishes a newer applicable requirement before upload | Proposed / Owner Confirmation Required | iOS Owner + Release Manager | Controls App Store Connect upload eligibility and release pipeline. |
| DEC-020 | License model | TBD by owner; no public release until license model and OSS obligations are confirmed | Open | Product Owner + Legal | Business and OSS compliance decision. |
## 4. Recommended MVP Defaults
| Area | Recommended MVP default |
|---|---|
| Active connections | One active server connection |
| UI design system | Material 3 + Chanora Design System |
| Product language | English UI; i18n-ready |
| Server content | Preserve and display Unicode; do not translate |
| Diagnostics | Local, user-initiated export only |
| Telemetry | None |
| Crash reporting | None unless later approved |
| Secret storage | Platform secure storage |
| Non-secret local storage | SQLite or equivalent |
| Audio processing | Platform-native first; fallback strategy documented |
| AEC | Enabled by default where supported |
| AGC | Enabled by default |
| Noise suppression | Enabled by default |
| High-pass filter | Enabled by default |
| Android minimum | API 24 |
| Android target | API 35 or newer for Google Play policy |
| iOS minimum | iOS 13 |
| Bridge | Stable typed Flutter/Rust bridge; default candidate `flutter_rust_bridge` |
## 5. Decision Impact Matrix
| Decision | Affects SysRS | Affects SysDes | Affects SRS | Affects SAD | Affects SDD | Affects Verification | Affects Release |
|---|---|---|---|---|---|---|---|
| Minimum iOS / Android versions | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Android target SDK | No | No | Yes | No | No | Yes | Yes |
| Multiple active connections | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| AEC/AGC/NS/HPF defaults | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Audio implementation path | No if behavior unchanged | Yes | Possibly | Yes | Yes | Yes | Yes |
| SDK/trademark/legal review | Yes | No | No | No | No | Yes | Yes |
| SQLite/equivalent choice | Possibly | Yes | Yes | Yes | Yes | Yes | Yes |
| Bridge choice | No if API behavior unchanged | Yes | Possibly | Yes | Yes | Yes | Yes |
| Apple App Store SDK gate | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Diagnostics upload policy | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Crash reporting | Yes if included | Yes if included | Yes if included | Yes if included | Yes if included | Yes | Yes |
## 6. Decisions That Must Be Confirmed By You
| Priority | Decision |
|---|---|
| P0 | Confirm Apple App Store submission SDK gate: Xcode 26+ and iOS 26 / iPadOS 26 SDK+ for App Store Connect upload on or after 2026-04-28. |
| P0 | Confirm release type sequence: Internal Alpha first? |
| P0 | Confirm MVP platform strategy: all platforms as product target, staged release allowed? |
| P0 | Confirm no automatic telemetry / no automatic diagnostic upload for MVP. |
| P0 | Confirm one active server connection for MVP. |
| P0 | Confirm audio processing defaults: AEC, AGC, noise suppression, high-pass filter enabled by default where supported. |
| P0 | Confirm legal/trademark review required before any public/store release. |
| P1 | Confirm SQLite/equivalent local DB choice. |
| P1 | Confirm bridge default candidate. |
| P1 | Confirm English-only MVP UI with i18n-ready architecture. |
| P1 | Confirm crash reporting disabled unless later explicitly approved. |
## 7. Open Decision Log
| Decision ID | Owner | Decision | Status | Date | Notes |
|---|---|---|---|---|---|
| DEC-001 | Product Owner | Release type sequence | Proposed / Owner Confirmation Required | TBD | Recommended: Internal Alpha first. |
| DEC-002 | Product Owner / Engineering | MVP platform strategy | Proposed / Owner Confirmation Required | TBD | Recommended: all platforms as target, staged release allowed. |
| DEC-003 | Product Owner / iOS Owner | Minimum iOS version | Proposed / Owner Confirmation Required | TBD | Recommended: iOS 13. |
| DEC-004 | Product Owner / Android Owner | Minimum Android version | Proposed / Owner Confirmation Required | TBD | Recommended: Android API 24. |
| DEC-005 | Android Owner / Release Manager | Android target SDK | Proposed / Owner Confirmation Required | TBD | Recommended: API 35 or newer for Play submission. |
| DEC-006 | Product Owner / Software Architect | Multiple server connections in MVP | Proposed / Owner Confirmation Required | TBD | Recommended: not in MVP. |
| DEC-007 | Audio Owner / Product Owner | AEC default | Proposed / Owner Confirmation Required | TBD | Recommended: enabled where supported. |
| DEC-008 | Audio Owner / Product Owner | AGC default | Proposed / Owner Confirmation Required | TBD | Recommended: enabled. |
| DEC-009 | Audio Owner / Product Owner | Noise suppression default | Proposed / Owner Confirmation Required | TBD | Recommended: enabled. |
| DEC-010 | Audio Owner | High-pass filter default | Proposed / Owner Confirmation Required | TBD | Recommended: enabled. |
| DEC-011 | Software Architect / Audio Owner | Audio processing path | Proposed / Owner Confirmation Required | TBD | Recommended: platform-native first. |
| DEC-012 | Legal / Compliance | SDK/trademark/licensing review | Proposed / Owner Confirmation Required | TBD | Required before public/store release. |
| DEC-013 | Software Architect / Storage Owner | Local database | Proposed / Owner Confirmation Required | TBD | Recommended: SQLite or equivalent. |
| DEC-014 | Software Architect | Bridge choice | Proposed / Owner Confirmation Required | TBD | Recommended: typed bridge; default candidate `flutter_rust_bridge`. |
| DEC-020 | Product Owner / Legal | License model | Open | TBD | Must be decided before public release. |
## 8. Change History
| Version | Date | Description |
|---|---|---|
| 0.9.0 | 2026-05-14 | Updated decision register with proposed decisions for mobile minimum versions, audio defaults, audio implementation path, legal review, local database, bridge choice, diagnostics policy, and MVP release scope. |
## 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+ for App Store Connect upload on or after 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. |