Skip to content

chore: relicense from MIT to AGPLv3 with proprietary dual-licensing#147

Merged
SUaDtL merged 1 commit into
mainfrom
chore/relicense-agplv3
Jun 27, 2026
Merged

chore: relicense from MIT to AGPLv3 with proprietary dual-licensing#147
SUaDtL merged 1 commit into
mainfrom
chore/relicense-agplv3

Conversation

@SUaDtL

@SUaDtL SUaDtL commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

What this does

Relicenses the open-source distribution of codeArbiter from MIT to the GNU AGPLv3 and records the dual-licensing posture. Implements ADR-0009, which supersedes ADR-0006.

Why

MIT lets a third party run a closed-source hosted fork with no reciprocity. AGPLv3 section 13 closes that network-use loophole, so a hosted fork must offer its source. Sole copyright ownership preserves a clean proprietary dual-license for a planned closed-source SaaS. The project stays open source (AGPLv3 is OSI-approved); what changes is the reciprocity strength of the license and the addition of a commercial path. This trades some adoption breadth (AGPL is banned in many enterprises) for moat protection, a tradeoff weighed and chosen by the owner.

Changes

  • LICENSE replaced with the verbatim FSF AGPLv3 text (unmodified body, per GNU convention).
  • README.md: license badge MIT to AGPL v3; a license-transition notice under the hero; a rewritten ## License section explaining AGPLv3 and the forward-only transition; a new ## Dual-Licensing & Contributions section (open-source AGPLv3, commercial licensing via GitHub, CLA-required contributions). Also fixes a now-broken link to the deleted archive/v1 branch.
  • CLA.md (new): an individual Contributor License Agreement template granting the owner the right to relicense contributions under both AGPLv3 and proprietary terms. Headed as a template pending legal review and not yet in force.
  • ADR-0009 plus its decision-log entry, recording the decision with owner attribution.

Notes

  • Forward-only. MIT is irrevocable for already-published code: anyone may fork the last MIT commit and continue under MIT. This protects future development only.
  • Copyright holder is the pseudonymous SUaDtL for now. A real legal entity is to be set up before any commercial license is granted.
  • The CLA is a template. It follows a reasonable standard structure but has not been reviewed by counsel and is not yet in force.
  • No version bump. All paths are repo-root or .codearbiter/, not plugins/ca/**, so the plugin payload version is unchanged.
  • Conflict-hierarchy: a governance and strategic decision, recorded via ADR-0009 superseding ADR-0006.

Review and test plan

  • No behavioral code and no tests, so coverage-auditor is not applicable (nothing testable in a license/docs change).
  • LICENSE verified as the verbatim AGPLv3 (661 lines, section 13 present, LF endings).
  • Sampled the Python suite green and confirmed the plugin reference graph resolves after the ADR and README edits.

Ref: ADR-0009

Per ADR-0009, the open-source distribution moves from MIT to the GNU AGPLv3 so a
third party cannot run a closed-source hosted fork (AGPLv3 section 13 closes the
network-use loophole MIT leaves open). Copyright is held solely by the owner, who
reserves a proprietary dual-licensing path for a planned closed-source SaaS;
future contributions require the CLA to keep that path clean. This supersedes
ADR-0006's broad-adoption posture, trading some adoption breadth for moat
protection. Forward-only: code already published under MIT stays under MIT.

LICENSE is the verbatim FSF AGPLv3 text; the copyright assertion and the
dual-licensing terms live in the README. No per-file headers (the single-root
LICENSE convention is retained). This session's history-maintenance dev-mode
audit entries in overrides.log also land here, since that work was a history
rewrite with no work commit of its own.

CHANGELOG: codeArbiter is now licensed under AGPLv3 (previously MIT) as of v2.6.0.
Proprietary/commercial licensing is available from the copyright holder; future
contributions require a CLA. The license change is forward-only.

Ref: ADR-0009

Claude-Session: https://claude.ai/code/session_01QaLw7nTrRbHwygFar2R6zu
@SUaDtL
SUaDtL merged commit 9728cf7 into main Jun 27, 2026
17 checks passed
@SUaDtL
SUaDtL deleted the chore/relicense-agplv3 branch June 27, 2026 13:50
SUaDtL added a commit that referenced this pull request Jun 27, 2026
* docs(changelog): roll the 2.6.0 release notes

Reconcile the [2.6.0] CHANGELOG section for the release: broaden the intro
beyond the farm work, add context-drift provenance (#145) and file-scoped
context injection (#146) under Added, note the MIT to AGPLv3 relicense (#147,
ADR-0009) under Changed, and add a Fixed section for #143, #139, and #138.
Dated 2026-06-27.

Also flips v2.feature.0001 to done now that file-scoped context injection has
shipped and merged; the flip rides this release commit per ADR-0008.

No version bump: plugin.json is already 2.6.0 and the ca-scoped commit window is
unchanged. The relicense and docs commits touch no plugins/ca/ payload.

Claude-Session: https://claude.ai/code/session_01QaLw7nTrRbHwygFar2R6zu

* docs(license): reserve the dual-licensing right without offering it yet

Soften the README "Commercial licensing" wording. The prior text implied
proprietary licenses were actively on offer; the intent is narrower: the owner
retains sole ownership and reserves the right to dual-license, but is not
offering commercial licenses at this time. Inquiries may still be sent through
GitHub and will be considered if and when a commercial path is established.

The legal substance is unchanged. AGPLv3 plus sole copyright already secures the
right; this only corrects the public statement so it does not overstate an
active commercial offering. ADR-0009, the CLA, and the CHANGELOG already use the
reserves-the-right framing, so no other file changes.

Claude-Session: https://claude.ai/code/session_01QaLw7nTrRbHwygFar2R6zu

---------

Co-authored-by: SUaDtL <SUaDtL@users.noreply.github.com>
SUaDtL added a commit that referenced this pull request Jun 27, 2026
…ons (2.6.1) (#151)

* fix(release): roll changelog into the bracket heading form

Phase 1 of the release skill instructed rolling the new section under a bare
`## v<version>` heading, but the repo's CHANGELOG.md -- and every prior GitHub
Release -- uses the Keep-a-Changelog `## [<version>]` form, which is also the
form the _releaselib notes/date guards (hardened in #150) now match. The roll
prose was the last spot still naming the bare-v form, so a literal reading would
have written a heading the guards don't recognize.

Aligns the roll instruction to the bracket form and pins it with a SkillProseTest
assertion. The version bump rides this commit because the change touches the
published `plugins/ca/` payload (the version-bump gate requires it).

CHANGELOG: the /ca:release skill now documents the Keep-a-Changelog `## [X.Y.Z]`
changelog heading, matching the repo convention and the hardened release guards.

Claude-Session: https://claude.ai/code/session_015tNUy37dx7DJGDzmVUB8Wf

* fix(license): align manifest + README with the AGPLv3 relicense

Two declarations were left stale after the relicense (#147/#149, ADR-0009):

- plugins/ca/.claude-plugin/plugin.json still declared "license": "MIT" -- the
  machine-readable field plugin registries display. Now AGPL-3.0-only, matching
  the LICENSE file and the README badge. SPDX -only per the v3, no-or-later
  grant the docs and ADR state (per-file headers were explicitly declined).
- The top-of-README License notice still carried the pre-#149 "available
  separately" offering wording; #149 corrected only the detailed Dual-Licensing
  section and left this callout. Now uses the same reserves-the-right /
  not-offered-at-this-time framing as that section.

CHANGELOG: the plugin manifest now declares AGPL-3.0-only (was a stale MIT), and
the README license notice no longer implies commercial licenses are on offer.

Claude-Session: https://claude.ai/code/session_015tNUy37dx7DJGDzmVUB8Wf

---------

Co-authored-by: SUaDtL <SUaDtL@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant