3.4 KiB
3.4 KiB
Chanora Dependency and Supply Chain Report
Document status: DV meeting baseline candidate
Date: 2026-05-29
Scope: Dependency, license, advisory, and supply-chain evidence for DV review
1. Purpose
This report summarizes the current dependency and supply-chain controls visible in the repository. It is not the final DEC-012 legal sign-off.
2. Automated Controls
| Control | Location | Current behavior |
|---|---|---|
| Rust license/advisory/bans/sources check | .github/workflows/ci.yml supply-chain job |
Runs cargo deny check --workspace --all-features |
| Rust license inventory freshness | .github/workflows/ci.yml license-inventory job |
Regenerates cargo-about inventory and diffs docs/security/license-inventory.md |
| Flutter license inventory freshness | .github/workflows/ci.yml flutter-license-inventory job |
Runs tools/dump_flutter_licenses.sh and fails if docs/security/flutter-license-inventory.md is stale |
| Rust dependency lock enforcement | .github/workflows/ci.yml Rust job |
Uses cargo check/test --locked |
| Flutter dependency resolution | .github/workflows/ci.yml Flutter job |
Runs flutter pub get, analyze, and tests |
3. Dependency Areas
| Area | Examples from current repository | DV status |
|---|---|---|
| Rust workspace crates | chanora_protocol, chanora_audio, chanora_storage, chanora_diagnostics, chanora_bridge, chanora_resolver, chanora_prefetch, chanora_state, chanora_core |
In workspace and covered by CI commands |
| Flutter app dependencies | flutter_rust_bridge, audio_session, flutter_foreground_task, package_info_plus, share_plus, shared_preferences |
Covered by Flutter dependency resolution and license inventory job |
| Native/audio dependencies | Opus, platform audio stacks, Android/iOS audio services | Require platform build and license review evidence |
| Patched Rust dependency | cmake patched to a pinned git revision for Android build support |
Requires DEC-032 tracking and periodic reevaluation |
| Pinned Android audio fork | oboe uses https://github.com/EdisonJwa/oboe-rs at a fixed revision |
Removes machine-local path dependency while preserving reviewed Android callback/session fixes |
4. Open Evidence Gaps
| Gap | Impact | Required action |
|---|---|---|
docs/security/license-inventory.md and Flutter inventory are referenced by CI but were not present in the current document listing |
CI may fail or the repository may have untracked/missing inventory artifacts | Generate and commit inventories or update CI/documentation to the actual artifact location |
| DEC-012 remains open | Blocks public/store release | Complete legal/trademark/OSS review |
| Candidate CI run IDs are not recorded in release readiness | Reviewers cannot tie evidence to a specific release candidate | Attach latest passing run IDs to release-readiness record |
Patched cmake dependency requires monitoring |
Long-term supply-chain risk if fork remains pinned indefinitely | Reevaluate when upstream release includes the needed Android fix |
audiopus_sys unmaintained advisory RUSTSEC-2026-0150 is explicitly ignored in deny.toml |
Keeps current Opus path buildable but remains a supply-chain risk | Track replacement or upstream remediation before public release sign-off |
5. DV Conclusion
Automated supply-chain controls are defined, but final dependency/legal approval is not complete. This supports DV documentation pass with a public-release blocker.