Documentation update following the Android audio spike pass.
Decision register (v0.9.3 → v0.9.4):
- DEC-011.1 promoted from
'Accepted (desktop: cpal) / Deferred (mobile)'
to
'Accepted (desktop: cpal; Android: cpal-on-Oboe) / Deferred (iOS)'.
- Evidence pointer added: poc/audio-capture-playback-android-spike/
VERIFICATION.md.
PoC plan (v0.2.0 → v0.3.0):
- Audio row promoted from PARTIAL PASS to PASS.
- All six PoC plan entries are now PASS.
PoC results summary (v0.1.0 → v0.2.0):
- Audio row collapsed into one PASS spanning both spikes.
- RISK-PoC-001 narrowed from 'mobile audio' to 'iOS audio only'.
- Toolchain table expanded with Android NDK, cargo-ndk, AGP/
Gradle/Kotlin, jni/ndk-context/android_logger, and the test
device.
Cross-spike pointers updated:
- poc/audio-capture-playback-spike/VERIFICATION.md result and
follow-up sections updated to reference the Android spike.
- poc/README.md status table lists both audio spike directories.
CHANGELOG updated under [Unreleased].
3.0 KiB
3.0 KiB
Proof-of-Concept Plan
Document type: Architecture / Proof-of-Concept Plan
Version: 0.3.0
Status: Draft
Language: English
Product: Chanora
Repo path: docs/architecture/proof-of-concept-plan.md
1. Purpose
This document defines technical proof-of-concept work that should be completed before heavy product implementation.
2. Required PoCs
| PoC | Purpose | Exit criteria | Status |
|---|---|---|---|
| Flutter/Rust bridge hello | Prove command/result/event DTO boundary | Flutter can call Rust and receive event stream data | PASS — poc/flutter_rust_bridge_hello/VERIFICATION.md (Linux desktop, 3/3 tests, 2026-05-13). Closes DEC-014. |
tsclientlib connect spike |
Prove protocol feasibility | Rust can connect to a compatible server/test double | PASS — poc/tsclientlib-connect-spike/VERIFICATION.md (live against cn.teamspeak.app, 2026-05-13). |
| Audio capture/playback spike | Prove platform audio behavior | Capture/playback works on at least one desktop and one mobile target | PASS — desktop half: poc/audio-capture-playback-spike/VERIFICATION.md (Linux/PipeWire, 2026-05-13). Mobile half: poc/audio-capture-playback-android-spike/VERIFICATION.md (Android 14 arm64-v8a on a physical Motorola Moto G Stylus 5G, 2026-05-13). Closes DEC-011.1 for desktop + Android; iOS still Deferred. |
| Secure storage spike | Prove secret storage behavior | Secret write/read/delete works through platform secure storage | PASS (Linux only) — poc/secure-storage-spike/VERIFICATION.md (6/6 audit tests, 2026-05-13). Closes DEC-013.2 (Linux backend policy). |
| SQLite storage spike | Prove local non-secret persistence | Schema, migration, and repository pattern are demonstrated | PASS — poc/sqlite-storage-spike/VERIFICATION.md (11/11 tests, 2026-05-13). Closes DEC-013.1. |
| Diagnostics redaction spike | Prove redaction before export | Password and identity-secret samples are redacted | PASS — poc/diagnostics-redaction-spike/VERIFICATION.md (REDACT-TC-001..010, 2026-05-13). |
3. PoC Directory
Recommended future location:
poc/
flutter-rust-bridge-hello/
tsclientlib-connect-spike/
audio-capture-playback-spike/
secure-storage-spike/
sqlite-storage-spike/
diagnostics-redaction-spike/
4. Rule
A PoC is not product code unless explicitly promoted.
5. Change History
| Version | Date | Description |
|---|---|---|
| 0.1.0 | 2026-05-14 | Initial proof-of-concept plan. |
| 0.2.0 | 2026-05-14 | Recorded PoC outcomes: 5 PASS, 1 PARTIAL PASS (mobile half of audio still open). Added Status column. Spike directories live under poc/; see poc/README.md and docs/governance/poc-results-summary.md. |
| 0.3.0 | 2026-05-14 | Audio PoC promoted from PARTIAL PASS to PASS after poc/audio-capture-playback-android-spike verified the mobile half on a physical Android device. All six PoC plan entries are now PASS. iOS is explicitly deferred per DEC-011.1 and remains an open follow-up but is no longer a PoC-plan gap. |