Skip to content

feat(chat)!: relicense @ngaf/chat — MIT → PolyForm Noncommercial 1.0.0 OR commercial#501

Merged
blove merged 11 commits into
mainfrom
claude/ngaf-chat-license-artifacts
May 21, 2026
Merged

feat(chat)!: relicense @ngaf/chat — MIT → PolyForm Noncommercial 1.0.0 OR commercial#501
blove merged 11 commits into
mainfrom
claude/ngaf-chat-license-artifacts

Conversation

@blove
Copy link
Copy Markdown
Contributor

@blove blove commented May 21, 2026

Summary

PR A of three planned PRs for the @ngaf/chat license migration. Library files only. Pricing-page rewrite + sitewide positioning sweep land in PR B. Verification runtime lands in PR C after dedicated brainstorm.

Future versions of @ngaf/chat are dual-licensed:

  • PolyForm Noncommercial 1.0.0 — free for personal, hobby, student, academic, nonprofit, public-demo, OSI-licensed open source, and 30-day commercial evaluation use.
  • Threadplane commercial license — required for commercial production use.

Historical npm versions remain MIT.

Files changed

  • New: libs/chat/LICENSE.md — Threadplane preamble + full PolyForm-NC 1.0.0 body.
  • New: libs/chat/LICENSE-COMMERCIAL.md — plain-English summary (you may / may not / how to acquire).
  • New: libs/chat/COMMERCIAL-USE.md — definition of commercial use, list of permitted free uses, 30-day evaluation note.
  • New: libs/chat/NOTICE.md — copyright + dual-license attribution.
  • New: libs/chat/CHANGELOG.md — first per-lib changelog, leading entry is the license change.
  • Modified: libs/chat/README.md — single-line MIT framing replaced with source-available framing + new ## Commercial use section. Install/usage content below is unchanged.
  • Modified: libs/chat/package.json"license": "PolyForm-Noncommercial-1.0.0 OR LicenseRef-Threadplane-Commercial". pnpm pack accepted the compound expression with no warnings; no fallback needed.
  • Modified: libs/chat/ng-package.jsonassets extended to copy the 5 new docs into dist/libs/chat/ so they ship in the published tarball.
  • New: design + plan docs under docs/superpowers/.

Out of scope (deliberately)

  • All other libraries stay MIT (no changes to their package.json, README, or NOTICE).
  • Root README.md, root COMMERCIAL.md, root LICENSE, root NOTICE — these get the "chat is the exception" qualification in PR B.
  • Homepage hero eyebrow ("Agent UI for Angular · MIT"), footer "MIT License" link, /pricing page rewrite — PR B.
  • Runtime enforcement, prod public-key in CI, nag UI, license signal — PR C (needs brainstorm first).

Test plan

  • npx nx run chat:lint → success.
  • npx nx run chat:test → all tests pass (no test files touched).
  • npx nx build chat → success.
  • cd dist/libs/chat && pnpm pack → tarball produced, no license warnings. The published tarball contains LICENSE.md, LICENSE-COMMERCIAL.md, COMMERCIAL-USE.md, NOTICE.md, CHANGELOG.md alongside README.md and package.json.
  • Scope check: git diff --name-only origin/main..HEAD | grep -v '^libs/chat/' | grep -v '^docs/superpowers/' returns empty.

Risks

  • No published release in this PR. The next time @ngaf/chat is cut, it will pick up the new license. Anyone consuming @ngaf/chat from main (rather than npm) sees the change immediately.
  • Public posture lags. Until PR B lands, the homepage hero still says "Agent UI for Angular · MIT" and the footer still links to "MIT License" — visitors who land on the chat README will see the new framing while the rest of the site still claims MIT for the framework as a whole. PR B follows immediately to close that gap.
  • No enforcement yet. Commercial users won't be technically blocked from running @ngaf/chat without a license — PR C wires libs/licensing into the chat bootstrap and surfaces a nag UI. Today's provideChat() already calls runLicenseCheck, but it's advisory only.

🤖 Generated with Claude Code

blove and others added 10 commits May 20, 2026 17:23
Dual-license migration MIT → PolyForm Noncommercial 1.0.0 OR Threadplane
commercial. Library files only; pricing page and runtime enforcement
live in separate follow-up PRs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
9 tasks: LICENSE.md, LICENSE-COMMERCIAL.md, COMMERCIAL-USE.md,
NOTICE.md, CHANGELOG.md, README patch, package.json license field
(with SPDX-compound + safe-fallback path), ng-package.json assets
extension, verification.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ngaf/chat is dual-licensed: PolyForm NC 1.0.0 for free noncommercial
use OR a separate Threadplane commercial license. Adds the official
PolyForm NC text alongside a Threadplane preamble that links to the
commercial-summary and commercial-use definition files.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Lists what the commercial license grants (production use, SaaS bundling,
modification, CI/CD use, unlimited end users) and what it prohibits
(competing libraries, removing notices, bypassing entitlement checks,
sublicensing as a standalone package). Routes acquisition through
threadplane.ai/pricing and /contact.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ree use

Defines commercial use (for-profit operation, revenue, paid services,
client deliverables, business workflows), lists permitted free uses
(personal, hobby, student, academic, nonprofit, demos, evaluation,
OSI-licensed open source), and states the 30-day commercial evaluation
window.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
First per-library changelog file for @ngaf/chat. Calls out the license
change as the leading entry and includes a migration note for
commercial users.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The README now leads with PolyForm Noncommercial 1.0.0 + commercial
licensing posture and adds a top-level "Commercial use" section
pointing at COMMERCIAL-USE.md, LICENSE-COMMERCIAL.md, and the
pricing page. Install/usage content below is unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…plane-Commercial

BREAKING: package.json license field changes. Future versions of
@ngaf/chat are dual-licensed under PolyForm Noncommercial 1.0.0 OR
a Threadplane commercial license. Historical MIT versions remain
under their original license terms.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ng-packagr only auto-copies README.md. Extends the assets array so
LICENSE.md, LICENSE-COMMERCIAL.md, COMMERCIAL-USE.md, NOTICE.md, and
CHANGELOG.md end up in dist/libs/chat and therefore in the published
npm tarball. Without this, package.json's license claim would point
at a LICENSE.md that doesn't exist in the published artifact.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 21, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
threadplane Ready Ready Preview, Comment May 21, 2026 12:29am

Request Review

@blove blove enabled auto-merge (squash) May 21, 2026 00:24
@blove blove merged commit e17aade into main May 21, 2026
2 checks passed
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