Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADR 0009 · License prospero under AGPL-3.0-only

  • Status: accepted
  • Date: 2026-07-05
  • Source: prospero #73 · in force since the prosperod image work (P0 #62, workspace.package.license = "AGPL-3.0-only") · relates to 0002

Context

Prospero shipped its workspace with license = "AGPL-3.0-only" (set alongside the prosperod container image, P0 #62) but never recorded why — the decision lived only in a Cargo.toml field and a commit message. Prospero is a network-facing control plane (0002): its primary deployment shape is a long-running daemon (prosperod) plus a dashboard that users reach over the network, increasingly in-cluster (the k8s epic, 0008). A license needs recording as an ADR so the choice — and its obligations — are explicit for contributors and operators.

Options weighed:

  • AGPL-3.0-only. Strong copyleft whose §13 network clause extends the source-availability obligation to users who interact with a modified version over a network, not only to those who receive a binary. Matches the rest of the caliban-ai stack (caliban, gonzalo), which is AGPL.
  • A permissive license (MIT/Apache-2.0). Maximizes adoption and frictionless embedding, but lets a network operator run a modified prospero as a service without ever sharing changes — the exact gap AGPL closes, and the wrong default for a network control plane.
  • GPL-3.0-only. Copyleft but without the network clause, so a hosted (SaaS) prospero could diverge privately — strictly weaker than AGPL for this deployment shape.

Decision

We will license all prospero crates under AGPL-3.0-only, matching the caliban-ai stack. workspace.package.license = "AGPL-3.0-only" is the source of truth; every crate inherits it via license.workspace = true. Network use of a modified prospero carries the AGPL §13 source-availability obligation.

This ADR records a decision already in force; it changes no code.

Consequences

  • Positive: the copyleft obligation reaches network users of a modified prospero (its dominant deployment), keeping hosted forks source-available; the whole stack (caliban/gonzalo/prospero) shares one coherent license story; the rationale is now discoverable, not buried in a manifest field.
  • Negative: AGPL deters some downstream adopters (notably orgs with policies banning AGPL dependencies), narrowing embedding/commercial-integration reach; contributors must be comfortable with copyleft.
  • Revisit if: a dual-licensing or commercial-exception model is needed for adoption, or the stack's license stance changes — at which point this ADR is superseded rather than edited (ADRs are immutable once accepted).