From e0f34009d959757197568dcdac903a05b8c2eb3f Mon Sep 17 00:00:00 2001 From: EdisonJwa Date: Thu, 14 May 2026 21:02:16 +0800 Subject: [PATCH] docs(governance): record product scaffolding paths (DEC-022) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updates two documents to reflect the workspace + Flutter app scaffold landed in the previous commit. path-migration-map.md v0.9.2 -> v0.9.3: Adds §3 Implementation Path Layout. Lists each subsystem's canonical crate path alongside its SAD / SysDes / DEC authority. Notes that the Flutter app is owned by Flutter tooling and is not a Cargo workspace member. CHANGELOG entry under [Unreleased]: - Documents the seven new Cargo workspace members and the invariants pinned at the workspace level. - Documents the Flutter app scaffold, the DEC-004 minSdk = 28 override, and the DEC-015 English + Simplified Chinese ARB catalogue (with the ADR-008 server-content reaffirmation). - Records the empirical verification (cargo check + cargo test + flutter analyze + flutter test all clean). --- CHANGELOG.md | 54 +++++++++++++++++++++++++++ docs/governance/path-migration-map.md | 28 +++++++++++++- 2 files changed, 80 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cac1c04..f2df517 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,60 @@ This project is expected to follow a Conventional Commits style workflow. ### Added +- **Product workspace scaffold (DEC-022).** Created the canonical + implementation directory layout per the README sketch + SAD §7.2: + - `Cargo.toml` — top-level Cargo workspace declaring seven members + and excluding the `poc/` spike trees and `apps/chanora_flutter`. + Pins `license = "MIT OR Apache-2.0"` (DEC-020) and + `rust-version = "1.95"` workspace-wide. + - `core/chanora_core/` — top-level Rust API + orchestration. Owns + `ChanoraSession` (placeholder) and the `CoreError` enum that + typed-wraps every subsystem error. + - `crates/chanora_protocol/` — tsclientlib adapter scaffold, + opaque `ChannelId` / `ClientId` types, `ProtocolError`. + - `crates/chanora_state/` — `StateError`, `ConnectionState` enum. + - `crates/chanora_audio/` — `AudioError`, `AudioEffects` struct + whose defaults match DEC-007/008/009/010 (all four effects on). + - `crates/chanora_storage/` — `StorageError`, marker traits for + the two repositories per the SAD-067 separation. + - `crates/chanora_diagnostics/` — `DiagnosticsError`, + `REDACTION_MARKER` constant matching the PoC, `Redactor` shell. + - `crates/chanora_bridge/` — `BridgeError` DTO (Serialize + + Deserialize) for FRB 2.x boundary. + Workspace `cargo check --workspace` and `cargo test --workspace` + both clean on Rust 1.95. +- **Flutter application scaffold.** + - `apps/chanora_flutter/` created via `flutter create` with + `--org app.chanora --project-name chanora_flutter`. Platforms + enabled at scaffold time: Linux + Android. + - `apps/chanora_flutter/android/app/build.gradle.kts` overridden + to `minSdk = 28` per DEC-004 (raised from Flutter's default + minSdk by explicit owner ruling, register v0.9.5). + - `flutter_localizations` + `intl` added to `pubspec.yaml`; + `flutter.generate: true` enabled. + - `l10n.yaml` configured to emit `lib/l10n/generated/AppL10n` + (no synthetic package — `synthetic-package` was removed in + Flutter 3.41+). + - `lib/l10n/app_en.arb` — English template ARB with the MVP key + set (`appTitle`, `homeGreeting`, `homeNotProductionReadyBanner`, + `connectAction`). + - `lib/l10n/app_zh.arb` — Simplified Chinese translations per + DEC-015 (MVP language scope expanded from English-only). + - `lib/main.dart` and `test/widget_test.dart` rewritten as a + minimal scaffold that exercises both locales. + - `flutter analyze` reports no issues. `flutter test` runs the + English + Simplified Chinese smoke tests and both pass. + +### Changed + +- `docs/governance/path-migration-map.md` bumped to v0.9.3 with a + new §3 *Implementation Path Layout* recording the DEC-022 + directory adoption (`apps/`, `core/`, `crates/`) and pointing + each subsystem at its crate alongside the relevant SAD/SysDes/DEC + authority. + +### Added (LICENSE files) + - `LICENSE-APACHE` — Apache License Version 2.0 text (DEC-020). - `LICENSE-MIT` — MIT License text (DEC-020). - Initial repository foundation files. diff --git a/docs/governance/path-migration-map.md b/docs/governance/path-migration-map.md index cdea2c8..14213ab 100644 --- a/docs/governance/path-migration-map.md +++ b/docs/governance/path-migration-map.md @@ -1,7 +1,7 @@ # Documentation Path Migration Map **Document type:** Configuration / Migration Map -**Version:** 0.9.2 +**Version:** 0.9.3 **Status:** Baseline Candidate **Language:** English **Product:** Chanora @@ -53,8 +53,32 @@ This document maps the previous package-style filenames to the new repository do | `CHANORA_VER_ASPICE_SYS4_System_Integration_Verification_Plan_v0.9.2.md` | `docs/verification/sys4-system-integration-verification-plan.md` | | `CHANORA_VER_Master_Plan_v0.9.2.md` | `docs/verification/verification-master-plan.md` | -## 3. Change History +## 3. Implementation Path Layout (DEC-022) + +The canonical implementation directory layout was adopted as DEC-022 +(register v0.9.5) and matches the README's sketch + SAD §7.2 module +decomposition. Implementation paths are listed here for traceability +alongside the documentation paths above. + +| Logical role | Repo path | Authority | +|---|---|---| +| Flutter application | `apps/chanora_flutter/` | SAD §7.1, DEC-022 | +| Rust orchestration / top-level API | `core/chanora_core/` | SAD §7.2 | +| Protocol adapter (tsclientlib isolation) | `crates/chanora_protocol/` | SAD §7.2, SAD-067, SysDes-011/029 | +| State synchronisation | `crates/chanora_state/` | SAD §7.2 | +| Audio subsystem | `crates/chanora_audio/` | SAD §7.2, DEC-011, DEC-011.1 | +| Storage (non-secret DB + platform secure store) | `crates/chanora_storage/` | SAD §7.2, SAD-067, DEC-013, DEC-013.1, DEC-013.2 | +| Diagnostics (logs, redaction, export) | `crates/chanora_diagnostics/` | SAD §7.2, DEC-016, DEC-017 | +| Typed Flutter/Rust bridge | `crates/chanora_bridge/` | SAD §7.2, DEC-014, SDD-079, SAD-068 | + +The Cargo workspace is declared at the repository root (`Cargo.toml`). +The Flutter application is **not** a Cargo workspace member; it is +owned by Flutter / Gradle / Xcode tooling and listed under the +workspace's `exclude` array along with the `poc/` spike directories. + +## 4. Change History | Version | Date | Description | |---|---|---| | 0.9.2 | 2026-05-14 | Initial migration map from package filenames to repo docs paths. | +| 0.9.3 | 2026-05-14 | Added §3 Implementation Path Layout recording the DEC-022 directory adoption (apps/, core/, crates/) as the workspace was first scaffolded on `product/scaffold-v0`. |