feat(legal): resolve DEC-020 — dual-license under Apache-2.0 OR MIT
Closes the only previously-open decision in the register. Chanora is
now dual-licensed under either:
* Apache License, Version 2.0 (LICENSE-APACHE), OR
* MIT License (LICENSE-MIT)
at the recipient's option. This is the standard Rust-ecosystem
permissive model and is compatible with every direct dependency
in the PoC tree:
tsclientlib MIT OR Apache-2.0
flutter_rust_bridge MIT
cpal Apache-2.0
rusqlite MIT
keyring MIT OR Apache-2.0
hound Apache-2.0
ndk-context, jni, android_logger, regex, serde, tokio,
tracing, thiserror, zeroize, etc. MIT OR Apache-2.0
and with the Flutter framework's BSD-3-Clause.
Files added:
- LICENSE-APACHE Apache 2.0 license text.
- LICENSE-MIT MIT license text with the standard 2026 copyright
line.
Files updated:
- LICENSE Now the dual-license aggregator. Includes the standard
Apache-2.0 inbound-contribution clause ("Unless you
explicitly state otherwise, any contribution
intentionally submitted for inclusion in Chanora by you,
as defined in the Apache-2.0 license, shall be
dual-licensed as above, without any additional terms or
conditions.").
- NOTICE Rewritten with the dual-license declaration and an
inventory of direct dependencies with their upstream
licenses. Transitive deps remain to be enumerated by
build tooling (cargo about, Flutter LicenseRegistry).
- README.md §License section rewritten to point at LICENSE-APACHE
and LICENSE-MIT.
- docs/governance/product-decision-register.md v0.9.5 → v0.9.6:
DEC-020 status: Open → Accepted. §4 license row updated. §6
collapsed: every previously-Proposed or Open decision in the
register is now resolved. DEC-012 legal review remains as a
release-gating *work* item, but is not an open decision.
- docs/governance/poc-results-summary.md v0.3.0 → v0.4.0:
RISK-PoC-003 closed. DEC-020 row moved out of 'Still open'.
This is a license-model commitment, not a substitute for the
DEC-012 legal review. Per DEC-012 the actual legal review work
(transitive-dep OSS obligations, trademark registrability, final
sign-off on the non-affiliation wording) must still be completed
before any public/store release; that is sign-off work, not an
architectural decision.
Decision register state after this commit:
Accepted: 23 of 23 unique decisions
Open/Deferred: 0
Proposed: 0
This commit is contained in:
@@ -8,6 +8,8 @@ This project is expected to follow a Conventional Commits style workflow.
|
||||
|
||||
### Added
|
||||
|
||||
- `LICENSE-APACHE` — Apache License Version 2.0 text (DEC-020).
|
||||
- `LICENSE-MIT` — MIT License text (DEC-020).
|
||||
- Initial repository foundation files.
|
||||
- Documentation-first project structure.
|
||||
- `justfile` with `format`, `lint`, `test`, `verify-docs`, and
|
||||
@@ -48,6 +50,23 @@ This project is expected to follow a Conventional Commits style workflow.
|
||||
|
||||
### Changed
|
||||
|
||||
- **DEC-020 license resolved.** Chanora is now dual-licensed under
|
||||
**Apache-2.0 OR MIT** (recipient's choice), the standard
|
||||
Rust-ecosystem permissive model. Compatible with every direct
|
||||
dependency (`tsclientlib`, `flutter_rust_bridge`, `cpal`, `rusqlite`,
|
||||
`keyring`, etc.) and with the Flutter framework's BSD-3-Clause.
|
||||
`LICENSE` rewritten as a dual-license aggregator pointing at
|
||||
`LICENSE-APACHE` and `LICENSE-MIT`. `NOTICE` rewritten with current
|
||||
direct-dependency attributions. `README.md` §License updated.
|
||||
- `docs/governance/product-decision-register.md` bumped to v0.9.6:
|
||||
DEC-020 status promoted from Open to Accepted. §4 license row
|
||||
updated. §6 collapsed: there is no longer any open decision —
|
||||
DEC-012 legal review remains as a *work* item, not a pending
|
||||
decision. Change-history entry added.
|
||||
- `docs/governance/poc-results-summary.md` bumped to v0.4.0:
|
||||
RISK-PoC-003 closed. DEC-020 row moved from the "Still open"
|
||||
section into the closed table.
|
||||
|
||||
- `docs/governance/product-decision-register.md` bumped to v0.9.5:
|
||||
owner confirmation on all 17 previously-Proposed decisions
|
||||
(DEC-001..010, 012, 015..019, 021). Sixteen were Accepted as
|
||||
|
||||
@@ -1,9 +1,27 @@
|
||||
TBD
|
||||
Chanora is dual-licensed under either of:
|
||||
|
||||
The Chanora license model has not been finalized.
|
||||
* Apache License, Version 2.0
|
||||
([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
|
||||
* MIT license
|
||||
([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT)
|
||||
|
||||
Do not treat this repository as open source, source-available, or proprietary-final until the license model is explicitly approved in:
|
||||
at your option.
|
||||
|
||||
docs/governance/product-decision-register.md
|
||||
docs/security/dependency-and-supply-chain-report.md
|
||||
docs/legal/trademark-and-attribution-review.md
|
||||
This dual-license model is recorded in
|
||||
`docs/governance/product-decision-register.md` (decision DEC-020,
|
||||
Accepted on 2026-05-14).
|
||||
|
||||
## Contribution
|
||||
|
||||
Unless you explicitly state otherwise, any contribution intentionally
|
||||
submitted for inclusion in Chanora by you, as defined in the
|
||||
Apache-2.0 license, shall be dual-licensed as above, without any
|
||||
additional terms or conditions.
|
||||
|
||||
## Third-party software
|
||||
|
||||
Chanora bundles or links to third-party software whose own licenses
|
||||
apply. See `NOTICE` for an inventory and the per-dependency license
|
||||
texts that ship with the released artefacts. The legal review of the
|
||||
full dependency set is tracked by DEC-012 and must complete before any
|
||||
public/store release.
|
||||
|
||||
+201
@@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for describing the origin of the Work and
|
||||
reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Support. While redistributing the Work or
|
||||
Derivative Works thereof, You may choose to offer, and charge a
|
||||
fee for, acceptance of support, warranty, indemnity, or other
|
||||
liability obligations and/or rights consistent with this License.
|
||||
However, in accepting such obligations, You may act only on Your
|
||||
own behalf and on Your sole responsibility, not on behalf of any
|
||||
other Contributor, and only if You agree to indemnify, defend,
|
||||
and hold each Contributor harmless for any liability incurred by,
|
||||
or claims asserted against, such Contributor by reason of your
|
||||
accepting any such warranty or support.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright 2026 The Chanora Project Contributors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 The Chanora Project Contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,10 +1,80 @@
|
||||
Chanora Notices
|
||||
|
||||
Chanora is an independent project and is not affiliated with, endorsed by, sponsored by, or officially associated with TeamSpeak.
|
||||
Copyright (c) 2026 The Chanora Project Contributors.
|
||||
|
||||
Third-party notices, OSS attributions, and license obligations are not final.
|
||||
Chanora is dual-licensed under the Apache License, Version 2.0 (see
|
||||
LICENSE-APACHE) or the MIT license (see LICENSE-MIT) at your option.
|
||||
The Apache-2.0 portion of the license requires this NOTICE file to be
|
||||
preserved in redistributions; see LICENSE-APACHE §4(d).
|
||||
|
||||
Before public release, complete:
|
||||
Chanora is an independent project and is not affiliated with, endorsed
|
||||
by, sponsored by, or officially associated with TeamSpeak.
|
||||
|
||||
docs/security/dependency-and-supply-chain-report.md
|
||||
docs/legal/trademark-and-attribution-review.md
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Third-party software and attributions
|
||||
|
||||
This NOTICE file enumerates third-party software that Chanora links to
|
||||
or bundles, together with the upstream license that applies. The full
|
||||
license texts for each dependency must ship alongside released
|
||||
artefacts; production-build packaging is responsible for generating
|
||||
those bundles. The legal review of the complete dependency tree is
|
||||
tracked by DEC-012 in
|
||||
docs/governance/product-decision-register.md and must complete before
|
||||
any public/store release.
|
||||
|
||||
Direct Rust dependencies of the proof-of-concept code (current as of
|
||||
2026-05-14):
|
||||
|
||||
* tsclientlib — MIT OR Apache-2.0
|
||||
https://github.com/ReSpeak/tsclientlib
|
||||
* flutter_rust_bridge — MIT
|
||||
https://github.com/fzyzcjy/flutter_rust_bridge
|
||||
* cpal — Apache-2.0
|
||||
https://github.com/RustAudio/cpal
|
||||
* rusqlite — MIT
|
||||
https://github.com/rusqlite/rusqlite
|
||||
* keyring — MIT OR Apache-2.0
|
||||
https://github.com/hwchen/keyring-rs
|
||||
* linux-keyutils — BSD-3-Clause
|
||||
* hound — Apache-2.0
|
||||
* regex — MIT OR Apache-2.0
|
||||
* serde / serde_json — MIT OR Apache-2.0
|
||||
* tokio — MIT
|
||||
* tracing / tracing-subscriber — MIT
|
||||
* jni — MIT OR Apache-2.0
|
||||
* ndk-context — MIT OR Apache-2.0
|
||||
* android_logger — MIT OR Apache-2.0
|
||||
* thiserror — MIT OR Apache-2.0
|
||||
* zeroize — MIT OR Apache-2.0
|
||||
* indoc — MIT OR Apache-2.0
|
||||
* tempfile — MIT OR Apache-2.0
|
||||
* once_cell — MIT OR Apache-2.0
|
||||
* anyhow — MIT OR Apache-2.0
|
||||
* clap — MIT OR Apache-2.0
|
||||
* futures — MIT OR Apache-2.0
|
||||
* serial_test — MIT
|
||||
|
||||
Direct Flutter / Dart dependencies of the FRB hello PoC:
|
||||
|
||||
* Flutter framework — BSD-3-Clause
|
||||
* flutter_rust_bridge — MIT (Dart side mirrors the Rust side)
|
||||
|
||||
Direct Android dependencies of the Android audio spike:
|
||||
|
||||
* androidx.core:core-ktx, androidx.appcompat:appcompat — Apache-2.0
|
||||
* Android NDK r26.x runtime libraries — Apache-2.0 / per-component licences
|
||||
* Kotlin stdlib — Apache-2.0
|
||||
* Gradle wrapper — Apache-2.0
|
||||
|
||||
This list reflects PoC code only. The product-code dependency set
|
||||
(`apps/chanora_flutter/`, `crates/chanora_*`) is not yet established;
|
||||
its full license inventory will be re-collected and reviewed under
|
||||
DEC-012 before public release.
|
||||
|
||||
Transitive dependencies are not enumerated here. A complete
|
||||
machine-generated inventory must be produced by the build tooling
|
||||
(e.g. `cargo about` for Rust and the Flutter LicenseRegistry for Dart)
|
||||
and shipped with released artefacts. See
|
||||
docs/security/dependency-and-supply-chain-report.md for the audit
|
||||
record.
|
||||
|
||||
@@ -373,9 +373,28 @@ Before making a change:
|
||||
|
||||
## License
|
||||
|
||||
TBD.
|
||||
Chanora is dual-licensed under either of:
|
||||
|
||||
The license model must be confirmed before public release. See:
|
||||
- Apache License, Version 2.0
|
||||
([LICENSE-APACHE](LICENSE-APACHE) or
|
||||
<https://www.apache.org/licenses/LICENSE-2.0>)
|
||||
- MIT license
|
||||
([LICENSE-MIT](LICENSE-MIT) or
|
||||
<https://opensource.org/licenses/MIT>)
|
||||
|
||||
at your option. This dual-license model was Accepted on 2026-05-14
|
||||
as decision DEC-020 in
|
||||
[`docs/governance/product-decision-register.md`](docs/governance/product-decision-register.md).
|
||||
|
||||
Unless you explicitly state otherwise, any contribution intentionally
|
||||
submitted for inclusion in Chanora by you, as defined in the Apache-2.0
|
||||
license, shall be dual-licensed as above, without any additional terms
|
||||
or conditions.
|
||||
|
||||
Third-party software bundled or linked by Chanora is listed in
|
||||
[`NOTICE`](NOTICE) with its own licenses. The complete legal review of
|
||||
the dependency tree (DEC-012) must complete before any public/store
|
||||
release. See:
|
||||
|
||||
```text
|
||||
docs/governance/product-decision-register.md
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# PoC Results Summary
|
||||
|
||||
**Document type:** Governance / PoC Results Summary
|
||||
**Version:** 0.3.0
|
||||
**Version:** 0.4.0
|
||||
**Status:** Draft
|
||||
**Language:** English
|
||||
**Product:** Chanora
|
||||
@@ -74,7 +74,7 @@ Recorded in [`docs/governance/product-decision-register.md`](product-decision-re
|
||||
| **DEC-013.2** Linux secure-storage backend policy | Accepted (Secret Service preferred, keyutils fallback) | `secure-storage-spike` |
|
||||
| **DEC-011.1** audio crate | Accepted (desktop: `cpal`; Android: `cpal`-on-Oboe) / Deferred (iOS) | `audio-capture-playback-spike` (desktop) + `audio-capture-playback-android-spike` (mobile) |
|
||||
| **DEC-022** canonical implementation directory layout | Accepted (README sketch — `apps/chanora_flutter/`, `core/chanora_core/`, `crates/chanora_*`) | Owner ruling on 2026-05-13 |
|
||||
| **DEC-020** license | **Open / Deferred** | Owner deferred 2026-05-13 — **remains a public-release blocker** |
|
||||
| **DEC-020** license | Accepted (Apache-2.0 OR MIT dual-license) | Owner ruling on 2026-05-14; license texts added as `LICENSE-APACHE` and `LICENSE-MIT`. |
|
||||
|
||||
### From the 2026-05-14 owner-confirmation pass (all 17 previously-Proposed)
|
||||
|
||||
@@ -102,9 +102,10 @@ Recorded in [`docs/governance/product-decision-register.md`](product-decision-re
|
||||
|
||||
### Still open
|
||||
|
||||
| Decision | Status |
|
||||
|---|---|
|
||||
| DEC-020 License model | **Open / Deferred** — only remaining public-release blocker. |
|
||||
(none — DEC-020 closed on 2026-05-14; see register v0.9.6.)
|
||||
|
||||
DEC-012 legal/trademark/licensing review remains a release-gating
|
||||
*work* item but is not an open decision.
|
||||
|
||||
## 5. Audit-report coverage
|
||||
|
||||
@@ -132,7 +133,7 @@ Recorded in [`docs/governance/product-decision-register.md`](product-decision-re
|
||||
|---|---|---|---|
|
||||
| RISK-PoC-001 | iOS audio (AVAudioEngine via cpal or a per-platform iOS adapter) is not verified. The desktop and Android halves of the PoC plan's audio criterion are met; iOS is explicitly deferred per DEC-011.1. | Audio Owner + iOS Owner | iOS spike on macOS + Xcode hardware; or accept the risk and discover it during product integration (not recommended). |
|
||||
| RISK-PoC-002 | Windows / macOS / iOS / Android secure-storage adapters not implemented. SS-TC-001/002/004/005 unverified. | Platform Owners | Per-platform adapter spike or first-implementation-in-`chanora_storage` with the audit checks re-run on each target. |
|
||||
| RISK-PoC-003 | License (DEC-020) deferred. Blocks public/store release. | Product Owner + Legal | Owner ruling. |
|
||||
| RISK-PoC-003 | ~~License (DEC-020) deferred. Blocks public/store release.~~ **CLOSED 2026-05-14.** DEC-020 Accepted as Apache-2.0 OR MIT dual-license; texts present in repository root. Release-gating legal review under DEC-012 remains pending as a separate *work* item, but no longer a license-choice blocker. | Product Owner + Legal | Closed. |
|
||||
| RISK-PoC-004 | ~~DEC-001..012, 015..019, 021 still in Proposed status.~~ **CLOSED 2026-05-14.** All 17 decisions were owner-reviewed; statuses recorded in the register at v0.9.5. | Product Owner | Closed. |
|
||||
| RISK-PoC-005 | Production code does not exist yet. README's "Implementation status: Not production-ready" remains accurate. | Software Architect | Promote PoC code into `apps/` and `crates/` per DEC-022. The only release-gating decision still open is DEC-020 (license). Scaffolding can begin without it; publication cannot. |
|
||||
| RISK-PoC-006 | **DEC-004 Android minimum was raised to API 28 from the spike's `minSdk = 24`.** The Android spike still builds and runs; product code in `apps/chanora_flutter` must move `minSdk` to 28 and may simplify its AAudio fallback logic accordingly. | Android Owner | Set `minSdk = 28` when the Android target is added to `apps/chanora_flutter`. |
|
||||
@@ -152,3 +153,4 @@ without an explicit promotion record per spike.
|
||||
| 0.1.0 | 2026-05-14 | Initial PoC results summary. Records the outcome of the first PoC batch (5 PASS, 1 PARTIAL), the toolchain versions exercised, the owner-confirmed decisions, audit-report coverage, and the open risks. |
|
||||
| 0.2.0 | 2026-05-14 | Audio PoC promoted from PARTIAL to PASS after the Android spike verified the mobile half on a physical Motorola Moto G Stylus 5G running Android 14 arm64-v8a. All six PoC plan entries now PASS. RISK-PoC-001 narrowed from "mobile audio" to "iOS audio only". Android toolchain (NDK r26.3, cargo-ndk, AGP/Gradle/Kotlin, jni/ndk-context/android_logger) added to the toolchain table. |
|
||||
| 0.3.0 | 2026-05-14 | Recorded the owner-confirmation pass on the 17 remaining Proposed decisions (register at v0.9.5). RISK-PoC-004 closed. Added RISK-PoC-006 (Android `minSdk` 24 → 28) and RISK-PoC-007 (MVP language expanded to English + Chinese Simplified) for the two decisions that diverged from the original recommendations. DEC-020 license remains the sole open release-gating decision. |
|
||||
| 0.4.0 | 2026-05-14 | DEC-020 license closed as Apache-2.0 OR MIT dual-license (register v0.9.6). RISK-PoC-003 closed. No remaining open decisions; the only release-gating activity outstanding is the DEC-012 legal review *work*, which is sign-off rather than an architectural choice. |
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
# CHANORA_CFG_Product_Decision_Register_v0.9.5.0.0
|
||||
# CHANORA_CFG_Product_Decision_Register_v0.9.6.0.0
|
||||
|
||||
**Document type:** Configuration / Product Decision Register
|
||||
**Version:** 0.9.5
|
||||
**Version:** 0.9.6
|
||||
**Status:** Baseline Candidate
|
||||
**Language:** English
|
||||
**Product:** Chanora
|
||||
@@ -50,7 +50,7 @@ A decision marked **Proposed / Owner Confirmation Required** is a recommended de
|
||||
| DEC-018 | Public product name | Chanora | Accepted | Product Owner | Branding and legal identity. Trademark / registrability check remains under DEC-012 legal review before public release. |
|
||||
| DEC-019 | Public non-affiliation statement | Use legal-approved wording; drafted text accepted as working copy: "Chanora is independent and is not affiliated with, endorsed by, sponsored by, or officially associated with TeamSpeak." Subject to final legal review under DEC-012 before public release. | Accepted (drafted wording) | Legal / Compliance | Required for public release and store metadata. |
|
||||
| DEC-021 | Apple App Store submission SDK | Use Xcode 26 or later and the iOS 26 / iPadOS 26 SDK or later for App Store submission on or after 2026-04-28, unless Apple publishes a newer applicable requirement before upload | Accepted | iOS Owner + Release Manager | Controls App Store Connect upload eligibility and release pipeline. |
|
||||
| DEC-020 | License model | TBD by owner; no public release until license model and OSS obligations are confirmed | Open | Product Owner + Legal | Business and OSS compliance decision. Explicitly deferred on 2026-05-13 by owner; remains a public-release blocker. |
|
||||
| DEC-020 | License model | **Dual-licensed under Apache-2.0 OR MIT (recipient's choice)**, the standard Rust-ecosystem permissive license model. Accepted on 2026-05-14. Compatible with every direct dependency in the PoC tree (`tsclientlib` MIT-OR-Apache-2.0, `flutter_rust_bridge` MIT, `cpal` Apache-2.0, `rusqlite` MIT, `keyring` MIT-OR-Apache-2.0, etc.) and with the Flutter framework's BSD-3-Clause. The license texts ship as `LICENSE-APACHE` and `LICENSE-MIT` at the repository root; an aggregator `LICENSE` points to both. `NOTICE` enumerates current direct-dependency attributions. The full OSS legal review (transitive deps, license obligations, OSS notices) remains under DEC-012 and is still required before public release. | Accepted | Product Owner + Legal | Business and OSS compliance decision. No longer a public-release blocker by itself; legal review under DEC-012 is the remaining gate. |
|
||||
| DEC-022 | Canonical implementation directory layout | Accept the README's sketch as canonical: `apps/chanora_flutter/`, `core/chanora_core/`, `crates/chanora_protocol/`, `crates/chanora_audio/`, `crates/chanora_state/`, `crates/chanora_storage/`, `crates/chanora_diagnostics/`, `crates/chanora_bridge/`. Matches SAD §7.2 module decomposition | Accepted | Software Architect | Unblocks product-crate scaffolding; was not formalised by any prior doc. |
|
||||
|
||||
## 4. Accepted MVP Defaults
|
||||
@@ -83,7 +83,7 @@ two were modified from the original recommendation (marked **MODIFIED**).
|
||||
| Audio crate | `cpal` (desktop, Android); iOS deferred |
|
||||
| Bridge | Stable typed Flutter/Rust bridge; `flutter_rust_bridge` 2.x pinned |
|
||||
| Implementation directory layout | `apps/chanora_flutter/`, `core/chanora_core/`, `crates/chanora_*` |
|
||||
| License | **Still Open** — DEC-020; blocks public release |
|
||||
| License | **Dual-licensed under Apache-2.0 OR MIT**, recipient's choice (DEC-020) |
|
||||
|
||||
## 5. Decision Impact Matrix
|
||||
|
||||
@@ -103,17 +103,14 @@ two were modified from the original recommendation (marked **MODIFIED**).
|
||||
|
||||
## 6. Decisions That Must Be Confirmed By You
|
||||
|
||||
All previously listed P0/P1 owner-confirmation items were addressed
|
||||
on **2026-05-14** in a single owner-review session; their final
|
||||
status is reflected in §3 and §7. The only remaining open item is:
|
||||
All decisions in the register have been addressed by the owner. The
|
||||
remaining release-gating *work* (not decisions) is the legal review
|
||||
itself under DEC-012, which must complete before any public/store
|
||||
release but is not an open decision:
|
||||
|
||||
| Priority | Decision | Status |
|
||||
| Priority | Item | Status |
|
||||
|---|---|---|
|
||||
| P0 | DEC-020 — License model. | **Open / Deferred** — blocks any public/store release. |
|
||||
|
||||
The release-gate legal review (DEC-012) is itself Accepted as a gate,
|
||||
but the legal review work has not yet been performed and remains a
|
||||
public-release blocker until completed.
|
||||
| P0 | DEC-012 legal/trademark/licensing review — perform the actual review work (non-affiliation wording final sign-off, trademark registrability check, transitive-dependency OSS obligations, `tsclientlib` license posture confirmation). | Pending; gate Accepted. |
|
||||
|
||||
## 7. Open Decision Log
|
||||
|
||||
@@ -141,7 +138,7 @@ public-release blocker until completed.
|
||||
| DEC-017 | Product Owner / Legal / Security | Crash reporting | Accepted | 2026-05-14 | Disabled for MVP. |
|
||||
| DEC-018 | Product Owner | Public product name | Accepted | 2026-05-14 | Chanora. Trademark check still required under DEC-012. |
|
||||
| DEC-019 | Legal / Compliance | Public non-affiliation statement | Accepted (drafted wording) | 2026-05-14 | Final legal sign-off still required under DEC-012. |
|
||||
| DEC-020 | Product Owner / Legal | License model | **Open / Deferred** | 2026-05-13 | Explicitly deferred by owner; remains a public-release blocker. |
|
||||
| DEC-020 | Product Owner / Legal | License model | Accepted (Apache-2.0 OR MIT dual-license) | 2026-05-14 | Compatible with every direct dependency; texts ship as LICENSE-APACHE / LICENSE-MIT. Full OSS legal review remains under DEC-012. |
|
||||
| DEC-021 | iOS Owner / Release Manager | Apple App Store SDK gate | Accepted | 2026-05-14 | Xcode 26+ / iOS 26 SDK+ on or after 2026-04-28. |
|
||||
| DEC-022 | Software Architect | Canonical implementation directory layout | Accepted (README sketch) | 2026-05-13 | Closes the absence flagged during PoC review. |
|
||||
|
||||
@@ -185,3 +182,10 @@ public-release blocker until completed.
|
||||
| Version | Date | Description |
|
||||
|---|---|---|
|
||||
| 0.9.5 | 2026-05-14 | Owner confirmation pass on all previously-Proposed decisions. Accepted: DEC-001, DEC-002, DEC-003, DEC-005, DEC-006, DEC-007, DEC-008, DEC-009, DEC-010, DEC-011, DEC-012 (as a release gate), DEC-013, DEC-015, DEC-016, DEC-017, DEC-018, DEC-019 (drafted wording), DEC-021. Two decisions modified from their original recommendations: **DEC-004 Android minimum** raised from API 24 to **API 28** (simpler audio path, narrower compatibility surface); **DEC-015 product language** expanded from English-only to **English + Chinese (Simplified)** for MVP (reflects the demonstrated TS3-compatible-server audience). DEC-020 license model remains Open / Deferred — the only public-release blocker outstanding. §4 renamed from "Recommended MVP Defaults" to "Accepted MVP Defaults" with MODIFIED rows annotated. §6 collapsed to the single remaining DEC-020 item. §7 dated and statused. |
|
||||
|
||||
|
||||
## Baseline Candidate 0.9.6 Update
|
||||
|
||||
| Version | Date | Description |
|
||||
|---|---|---|
|
||||
| 0.9.6 | 2026-05-14 | DEC-020 license model closed: **Apache-2.0 OR MIT** dual-license (standard Rust-ecosystem permissive model). The license is compatible with every direct dependency in the PoC tree (tsclientlib, flutter_rust_bridge, cpal, rusqlite, keyring, hound, etc.) and with the Flutter framework's BSD-3-Clause. License texts added as `LICENSE-APACHE` and `LICENSE-MIT` at the repository root; the existing `LICENSE` file now aggregates both with the dual-license declaration and the standard Apache-2.0 inbound-contribution clause. `NOTICE` populated with current direct-dependency attributions. README §License rewritten. §4 updated. §6 collapsed: there is no longer any open decision — DEC-012 legal review remains a pending *work* item, not a pending decision. With this change, every previously-Proposed or Open decision in the register has been resolved; the only outstanding release-gating activity is the DEC-012 legal review itself (which is sign-off work, not an architectural choice). |
|
||||
|
||||
Reference in New Issue
Block a user