Maintainer-ratified from the 2026-07-03 review (R1-R3): - ADR-0009: retire "structurally impossible for a 3-vendor stack" post-0007; restate the gate's true guarantees (credential isolation, unskippable mediation, media-plane enforcement, audit co-location). Propagated to README pillar 3, ARCHITECTURE, PORT_PLAN s10; amendment note on ADR-0002. - ADR-0010: insert step 4.5 (benchmark + simulation harness, rutster-sim seed, CI-regressed p50/p99 + kill-time) after barge-in; pull rung-2 escalation ahead of steps 5-6. Spearhead lists updated. - ADR-0004: delete the legally-broken AGPL escape hatch; GPL-3.0-or-later permanent, no CLA; tap protocol/SDKs intended permissive (future ADR). - README: add brain-vendor-direct competitor row (review D2). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018vNe64BBDkgo5oQVkBa3XF
60 lines
3.3 KiB
Markdown
60 lines
3.3 KiB
Markdown
# ADR-0004 — License: GPL-3.0-or-later
|
|
|
|
- **Status:** Accepted
|
|
- **Date:** 2026-06
|
|
- **Closes:** the license open-decision carried in the founding docs
|
|
|
|
## Context
|
|
|
|
The founding docs (and the [vision-revision](../superpowers/specs/2026-06-26-vision-revision-design.md)
|
|
open-decisions list) left license open. rutster is a self-hosted engine whose competitor set
|
|
([ADR-0002](0002-north-star-and-fused-core.md)) includes cloud CCaaS that could *wrap-and-resell*
|
|
it as a managed service — the classic strong-copyleft concern.
|
|
|
|
## Decision
|
|
|
|
**GPL-3.0-or-later.**
|
|
|
|
Strong copyleft (requires source-sharing on binary conveyance), OSI-clean, modernized one notch
|
|
over Asterisk's GPLv2+. `SPDX-License-Identifier: GPL-3.0-or-later`.
|
|
|
|
## Alternatives considered
|
|
|
|
- **AGPL-3.0-or-later** — *considered.* AGPL additionally closes the network-use / SaaS loophole:
|
|
GPLv3 §13 states network use is **not** conveyance (so a hosted service triggers no
|
|
source-sharing obligation); AGPL §13 fixes that, compelling source disclosure for network-served
|
|
use. Given that cloud CCaaS is a named competitor, AGPL would harder-prevent a vendor from
|
|
hosting rutster-as-managed-CCaaS without contributing back.
|
|
- **GPL-3.0-or-later was chosen** in favor of simplicity and lower downstream-embedding friction
|
|
(operators and tooling/library authors integrating rutster avoid AGPL's network-trigger), while
|
|
remaining strong copyleft against proprietary forking of the engine itself.
|
|
|
|
## Trade-off accepted deliberately
|
|
|
|
A cloud competitor *can* host GPL rutster and owe source only on binary distribution, which for a
|
|
hosted service may be nothing. The license is the **floor**, not the moat: the wedge — self-host
|
|
+ data-ownership + one auditable boundary + operational simplicity + data-ownership as a buying
|
|
criterion — is the actual reason operators self-host rather than wrap.
|
|
|
|
> **Amended 2026-07-03** (maintainer-ratified; origin:
|
|
> [adversarial review D5](../reviews/2026-07-03-adversarial-review.md)). The paragraph this note
|
|
> replaces claimed the "or-later" clause permits a clean later transition to AGPL. **That claim
|
|
> was wrong:** "or-later" covers later versions of the *GNU GPL* (GPLv3 §14); AGPL is a different
|
|
> license, not a later GPL version — GPLv3 §13 permits *combining* with AGPL works, not
|
|
> relicensing GPL code as AGPL. Relicensing requires the consent of every copyright holder, so
|
|
> the option would die at the first external contribution accepted without a CLA.
|
|
>
|
|
> **Resolution:** rutster accepts **GPL-3.0-or-later permanently** for the engine. No CLA — the
|
|
> contributor friction and community optics were judged worse than the loss of a relicensing
|
|
> option. Cloud-wrap remains a named, accepted risk mitigated by the wedge, exactly as the
|
|
> trade-off paragraph above already argued. (The tap *protocol spec* and client SDKs are
|
|
> intended to be permissively licensed for adoption — engine GPL, protocol permissive — to be
|
|
> ratified in the tap-protocol ADR when that interface hardens.)
|
|
|
|
## Consequences
|
|
|
|
- **Positive:** OSI-clean strong copyleft in the Asterisk lineage; compatible with the project's
|
|
dependencies (Valkey BSD-3-Clause per [ADR-0005](0005-event-bus.md); Rust-ecosystem MIT/Apache crates).
|
|
- **Negative:** the network-use loophole is open **by design choice** — mitigated by the wedge, not
|
|
the license.
|