Skip to content

Adopt AGPLv3 and offer matching client and service source - #68

Merged
frahlg merged 4 commits into
mainfrom
licensing/agpl-home-use-20260912
Sep 12, 2026
Merged

frahlg merged 4 commits into
mainfrom
licensing/agpl-home-use-20260912

Conversation

@frahlg

@frahlg frahlg commented Sep 12, 2026

Copy link
Copy Markdown
Member

The client, relay and escrow now use AGPLv3 with the narrow Energyplan permission, while NOTICE preserves earlier Apache rights. The client offers source for its build revision and includes the complete license and earlier notices in a separate precached chunk, loaded when the license menu opens. The initial JavaScript remains within the 90,000-byte gzip budget (76,341 bytes locally).

Relay and escrow images create source archives during the build, before runtime state exists. GET /source serves the archive; HTTP responses and relay WebSocket handshakes advertise it. The archive retains build paths, Dockerfiles and deployment files; relay also includes the installed dependency source and lockfile. Downloads never traverse runtime data.

Validation: Svelte check, 1,033 tests and production build passed. Two runs under high concurrent load timed out in unchanged escrow timing tests; the full suite passed with --maxWorkers=2. Both Docker builds and HTTP smoke tests passed. Tests inserted runtime sentinel files, verified their exclusion, compared source files with the checkout and rebuilt both images from downloaded archives. Local browser review passed.

Contribution guidance welcomes external PRs and requires new contributions to carry AGPL-3.0-only with the Energyplan permission. DCO sign-off grants no copyright assignment or commercial relicensing rights. NOTICE preserves the Apache-licensed default-branch snapshot at 1ae2390b7bea4986d01500c90c33a914833b3801, including its exact prior license and any prior notice.

Relay and escrow READMEs explain AGPL commercial use, the matching-source endpoint and source obligations for modified hosted versions.

This is part of the FTW license transition: AGPL-3.0-only for the open code, with a narrow section 7 permission for the proprietary Energyplan workers. Energyplan Home Use terms apply only to new workers; AGPL commercial use remains permitted. Prior Apache, MIT and Energyplan grants remain available, and third-party terms remain intact.

Automated legal review checked license scope, retained notices, source offers, the Energyplan boundary, commercial installer use and source packaging. It is not a human legal opinion and does not establish copyright assignments or app-store compatibility. Commercial rights can be offered only for software and rights Sourceful controls.

Paired PRs:


Note

Medium Risk
License and distribution obligations change for all consumers and operators; relay/escrow add new HTTP routes and Docker build steps, though runtime behavior of core protocols is largely unchanged.

Overview
Replaces Apache-2.0 with AGPL-3.0-only for this repo, plus a narrow Energyplan combination permission in LICENSE. NOTICE records the 2026-09-12 transition and keeps the prior Apache grant for the pinned snapshot; LICENSING.md and CONTRIBUTING.md spell out redistribution, Energyplan boundaries, and that new contributions are AGPL-only (DCO does not assign copyright).

AGPL source offers in the product: the web client adds a Source & licenses footer (SourceNotice) with a GitHub archive link keyed to __APP_BUILD__, and lazy-loads full LICENSE / NOTICE text from a separate chunk. package.json now points at SEE LICENSE IN LICENSE.

Relay and escrow containers bake a build-time source.tar.gz (no runtime data), serve it at GET /source, and advertise it via Link headers (relay also on WebSocket upgrade). Service READMEs document operator obligations for modified hosted builds.

Reviewed by Cursor Bugbot for commit ab00b0b. Bugbot is set up for automated code reviews on this repo. Configure here.

Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 12, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
ftw-webapp ab00b0b Commit Preview URL

Branch Preview URL
Sep 12 2026, 01:38 PM

Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>
Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>
Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>
@frahlg
frahlg marked this pull request as ready for review September 12, 2026 13:39
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 12, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-12T13:42:39.050889Z ab00b0b Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@cursor

cursor Bot commented Sep 12, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_67176398-4d12-49a4-9a17-6ff4f17ad26b)

@frahlg
frahlg merged commit dcae2c9 into main Sep 12, 2026
4 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ab00b0b8e2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"ftw-webapp": minor
---

Adopt AGPLv3 with a narrow Energyplan combination permission and expose source access. New Energyplan workers use separate private-household terms; commercial use and distribution require a Sourceful license. Earlier grants remain unchanged.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify the commercial-license requirement

When this changeset is published as release notes, the unqualified statement that “commercial use and distribution require a Sourceful license” implies that this applies to the AGPL-covered app and to all redistribution. That contradicts LICENSING.md, which permits selling the AGPL software and permits free noncommercial redistribution of new Energyplan workers. Limit this clause explicitly to commercial use, bundling, resale, or services involving the restricted Energyplan binaries so users are not told their granted rights are narrower than they are.

Useful? React with 👍 / 👎.

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