Closes the 'Proposed / Owner Confirmation Required' state for every
decision in the register except DEC-020 (license, explicitly deferred
and now the only public-release-gating decision outstanding).
Accepted as recommended:
DEC-001 (Alpha → Beta → Public release sequence),
DEC-002 (all five platforms as MVP target, staged release allowed),
DEC-003 (iOS minimum: iOS 13),
DEC-005 (Android target SDK: Play-required API on upload date),
DEC-006 (single active server connection in MVP),
DEC-007/008/009/010 (AEC + AGC + NS + HPF defaults),
DEC-011 (platform-native audio first),
DEC-012 (legal/trademark/licensing review as a release gate),
DEC-013 (SQLite or equivalent for non-secret state),
DEC-016 (no automatic diagnostics upload),
DEC-017 (crash reporting disabled for MVP),
DEC-018 (product name: Chanora),
DEC-019 (drafted non-affiliation wording),
DEC-021 (Apple App Store SDK gate: Xcode 26+ / iOS 26 SDK+ on/after 2026-04-28).
Modified from the original recommendation by explicit owner ruling:
- DEC-004: Android minimum raised to API 28 (Android 9.0) from the
recommended API 24. Rationale: simpler audio path (AAudio stable
from API 28), narrower compatibility / privacy / scoped-storage
surface. Affects the Android spike's minSdk=24 in product code:
apps/chanora_flutter will need minSdk=28.
- DEC-015: MVP product language expanded to English + Chinese
(Simplified) from the recommended English-only. Rationale: the
demonstrated TS3-compatible-server audience (verified live against
cn.teamspeak.app) and broader TS3 audience include substantial
Chinese-speaking users. Adds zh-Hans translation, font, and
text-length-budget work to MVP. Server-provided content is still
preserved verbatim per ADR-008.
Still Open / Deferred:
- DEC-020 license model. The only remaining release-gating decision.
Documentation updates:
- product-decision-register.md → v0.9.5. §3 statuses updated, §4
renamed Recommended → Accepted with MODIFIED rows annotated,
§6 collapsed to DEC-020 only, §7 dated and statused for every
decision, change-history entry added.
- poc-results-summary.md → v0.3.0. §4 expanded with the
2026-05-14 owner-confirmation pass table. RISK-PoC-004 closed.
New RISK-PoC-006 (Android minSdk move 24 → 28) and RISK-PoC-007
(MVP language expansion to en + zh-Hans) added.
- CHANGELOG entry under [Unreleased].
118 lines
5.6 KiB
Markdown
118 lines
5.6 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to Chanora will be documented in this file.
|
|
|
|
This project is expected to follow a Conventional Commits style workflow.
|
|
|
|
## [Unreleased]
|
|
|
|
### Added
|
|
|
|
- Initial repository foundation files.
|
|
- Documentation-first project structure.
|
|
- `justfile` with `format`, `lint`, `test`, `verify-docs`, and
|
|
`security-scan` targets, completing `repository-bootstrap-plan` v0.1.0 §3.
|
|
- `poc/tsclientlib-connect-spike/` — PoC proving protocol feasibility via
|
|
`tsclientlib`. Verified against `cn.teamspeak.app` on 2026-05-13.
|
|
- `poc/flutter_rust_bridge_hello/` — PoC proving the Flutter↔Rust command
|
|
and event-stream boundary via `flutter_rust_bridge` 2.12.0. Verified on
|
|
Linux desktop on 2026-05-13.
|
|
- `poc/secure-storage-spike/` — PoC proving platform secure storage via
|
|
a typed `SecretStorageRepository` trait and a Linux adapter selecting
|
|
between Secret Service (libsecret) and kernel keyutils. Audit checks
|
|
SS-AUD-001/002/003/005/006 and SS-TC-003 verified on 2026-05-13.
|
|
- `poc/sqlite-storage-spike/` — PoC proving SRS-089's "embedded data
|
|
store + migration mechanism" acceptance criteria: forward-only schema
|
|
migrator tracked via `PRAGMA user_version`, repository pattern with
|
|
`BookmarkRepository` / `SettingsRepository` traits over
|
|
`LocalDatabaseRepository`. 11/11 tests verified on 2026-05-13.
|
|
- `poc/diagnostics-redaction-spike/` — PoC proving the diagnostic
|
|
redaction policy from `diagnostic-redaction-audit-report.md`:
|
|
typed policy + regex rules + literal known-secret registry + bundle
|
|
redaction. Audit cases REDACT-TC-001..010 verified on 2026-05-13.
|
|
- `poc/audio-capture-playback-spike/` — PoC proving platform audio
|
|
capture/playback via cpal. Desktop half (Linux + PipeWire)
|
|
empirically verified end-to-end on 2026-05-13; mobile half closed
|
|
separately by `poc/audio-capture-playback-android-spike`.
|
|
- `poc/audio-capture-playback-android-spike/` — PoC closing the
|
|
mobile half of the audio capture/playback PoC plan entry. Rust
|
|
cdylib + JNI + Kotlin Android app; cpal targets Android's Oboe
|
|
backend (AAudio). Verified end-to-end on a physical Motorola
|
|
Moto G Stylus 5G (2023) running Android 14 arm64-v8a on
|
|
2026-05-13: 500 ms 440 Hz sine wave driven out the device speaker
|
|
(22,050 frames at 44.1 kHz) and 1 s captured from the microphone
|
|
into a valid 85,292-byte RIFF/WAVE mono 16-bit PCM file pulled via
|
|
`adb exec-out run-as`.
|
|
- `poc/README.md` summarising PoC status against
|
|
`docs/architecture/proof-of-concept-plan.md`.
|
|
|
|
### Changed
|
|
|
|
- `docs/governance/product-decision-register.md` bumped to v0.9.5:
|
|
owner confirmation on all 17 previously-Proposed decisions
|
|
(DEC-001..010, 012, 015..019, 021). Sixteen were Accepted as
|
|
recommended; two were modified by the owner — **DEC-004**
|
|
Android minimum raised from API 24 to **API 28**, and
|
|
**DEC-015** product language for MVP expanded from English-only
|
|
to **English + Chinese (Simplified)**. DEC-020 license remains
|
|
Open / Deferred and is now the only public-release-gating
|
|
decision outstanding. §4 renamed "Recommended" → "Accepted MVP
|
|
Defaults" with MODIFIED rows annotated. §6 collapsed to the
|
|
single remaining DEC-020 item. §7 dated and statused for every
|
|
decision.
|
|
- `docs/governance/poc-results-summary.md` bumped to v0.3.0:
|
|
RISK-PoC-004 closed by the owner-confirmation pass; new
|
|
RISK-PoC-006 (Android `minSdk` move 24 → 28 for product code)
|
|
and RISK-PoC-007 (MVP language expansion to en + zh-Hans) added.
|
|
- `docs/architecture/proof-of-concept-plan.md` bumped to v0.3.0 to
|
|
promote the audio PoC from PARTIAL PASS to PASS after the Android
|
|
mobile half was closed; all six PoC plan entries are now PASS.
|
|
- `docs/governance/product-decision-register.md` bumped to v0.9.4 to
|
|
promote DEC-011.1 mobile half from Deferred to Accepted (Android),
|
|
keeping iOS Deferred.
|
|
- `docs/governance/poc-results-summary.md` bumped to v0.2.0:
|
|
audio row promoted to PASS, RISK-PoC-001 narrowed from "mobile
|
|
audio" to "iOS audio only", Android toolchain added to the
|
|
toolchain table.
|
|
- `poc/audio-capture-playback-spike/VERIFICATION.md` updated to point
|
|
at the Android spike for the mobile half.
|
|
- `poc/README.md` updated to list both audio spike directories.
|
|
- `docs/architecture/proof-of-concept-plan.md` bumped to v0.2.0 to
|
|
record PoC outcomes (5 PASS, 1 PARTIAL) and add a Status column.
|
|
- `docs/security/secure-storage-audit-report.md` bumped to v0.9.3:
|
|
SS-AUD-001/002/003/005/006 status set to PoC Pass with evidence
|
|
pointers; SS-TC-003 (Linux) Actual Result populated and Status set
|
|
to PoC Pass; findings SS-FIND-001..003 added; non-Linux test cases
|
|
marked Deferred.
|
|
- `docs/security/diagnostic-redaction-audit-report.md` bumped to
|
|
v0.9.3: REDACT-TC-001..010 status set to PoC Pass with evidence
|
|
pointers; export bundle policy §5 populated; findings
|
|
REDACT-FIND-001..003 added.
|
|
- `docs/governance/product-decision-register.md` bumped to v0.9.3:
|
|
owner-confirmed decisions recorded — DEC-014 Accepted
|
|
(`flutter_rust_bridge` 2.x pinned), DEC-013.1 Accepted (`rusqlite`
|
|
bundled), DEC-013.2 Accepted (Linux Secret Service preferred,
|
|
keyutils fallback), DEC-011.1 Accepted (desktop `cpal`) / Deferred
|
|
(mobile), DEC-022 Accepted (canonical implementation directory
|
|
layout per README sketch + SAD §7.2), DEC-020 explicitly Deferred
|
|
and remains a public-release blocker.
|
|
|
|
### Added (governance)
|
|
|
|
- `docs/governance/poc-results-summary.md` v0.1.0 — single-page
|
|
reviewer-facing summary of the PoC phase, the toolchain exercised,
|
|
the owner decisions taken, the audit coverage, and the open risks
|
|
RISK-PoC-001..005.
|
|
|
|
### Fixed
|
|
|
|
- N/A
|
|
|
|
### Security
|
|
|
|
- N/A
|
|
|
|
## Versioning note
|
|
|
|
The project implementation has not reached a public release version yet.
|