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].
44 lines
2.0 KiB
Markdown
44 lines
2.0 KiB
Markdown
# Chanora — Proofs of Concept
|
|
|
|
This directory holds **non-product** technical spikes. They exist to retire
|
|
risk before the Flutter/Rust product scaffold is created.
|
|
|
|
Authority: [`docs/architecture/proof-of-concept-plan.md`](../docs/architecture/proof-of-concept-plan.md).
|
|
|
|
> **Rule (PoC plan §4):** A PoC is not product code unless explicitly
|
|
> promoted. Nothing here should be imported by the future
|
|
> `apps/chanora_flutter` or `crates/chanora_*` trees.
|
|
|
|
## Status
|
|
|
|
| Spike | Required by PoC plan | Status |
|
|
|---|---|---|
|
|
| `tsclientlib-connect-spike` | yes | **PASS** — see `tsclientlib-connect-spike/VERIFICATION.md` |
|
|
| `flutter_rust_bridge_hello` | yes (`flutter-rust-bridge-hello` in plan) | **PASS** — see `flutter_rust_bridge_hello/VERIFICATION.md` |
|
|
| `secure-storage-spike` | yes | **PASS (Linux only)** — see `secure-storage-spike/VERIFICATION.md` |
|
|
| `sqlite-storage-spike` | yes | **PASS** — see `sqlite-storage-spike/VERIFICATION.md` |
|
|
| `diagnostics-redaction-spike` | yes | **PASS** — see `diagnostics-redaction-spike/VERIFICATION.md` |
|
|
| `audio-capture-playback-spike` (desktop half) | yes | **PASS** — see `audio-capture-playback-spike/VERIFICATION.md` |
|
|
| `audio-capture-playback-android-spike` (mobile half) | yes | **PASS** — see `audio-capture-playback-android-spike/VERIFICATION.md` |
|
|
|
|
## Naming note
|
|
|
|
`flutter_rust_bridge_hello` is listed in the PoC plan as
|
|
`flutter-rust-bridge-hello`. The directory on disk uses underscores
|
|
because the Dart `pubspec.yaml` package-name grammar forbids hyphens.
|
|
This is a naming convention, not a scope change.
|
|
|
|
## What "verified" means here
|
|
|
|
Each verified spike contains:
|
|
|
|
- a `README.md` describing scope, exit criterion, and reproduction;
|
|
- a `VERIFICATION.md` recording the exact toolchain versions, command,
|
|
observed output, and an honest list of things the spike does **not**
|
|
validate.
|
|
|
|
Spikes are intentionally narrow. They do not approximate Chanora
|
|
architecture layering, they do not implement the documented DTO
|
|
catalogue, and they do not stand in for the product Rust crates or
|
|
Flutter modules.
|