Files
chanora/docs/architecture/proof-of-concept-plan.md
T
EdisonJwa 4c64517e45 docs(governance): promote audio PoC to PASS; close mobile-Android half
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].
2026-05-14 18:25:03 +08:00

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 PASSpoc/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 PASSpoc/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 PASSpoc/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 PASSpoc/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.