Skip to content

License the repository under AGPL-3.0-or-later - #1

Merged
spyhack225 merged 2 commits into
mainfrom
claude/open-source-license-setup-d0l8u9
Sep 17, 2026
Merged

spyhack225 merged 2 commits into
mainfrom
claude/open-source-license-setup-d0l8u9

Conversation

@spyhack225

@spyhack225 spyhack225 commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Open-sources the repository under the GNU Affero General Public License v3.0 or later — the code is readable, buildable and forkable by anyone, and stays that way through any fork.

Why AGPL rather than GPL

The interesting fork of a dictation and meeting-notes app is a hosted one. Plain GPL lets someone take this, modify it, run it as a transcription or notes service, and give nothing back — distribution is the trigger, and running a server isn't distribution. Section 13 of the AGPL closes exactly that: a modified version offered over a network owes its source to the people using it. Everything else is identical to GPLv3, and it keeps a dual-licensing option open if a commercial edition ever makes sense.

What lands

  • LICENSE — the verbatim FSF text (canonical wrapping), so GitHub's detector and every downstream scanner identify it as AGPL-3.0. Fetched from two independent mirrors and diffed to confirm they agree.
  • README.md — a ## License section in plain terms, plus a one-line pointer under the demo. It spells out what most people actually need to know: local use obliges nothing, distribution and network service both mean source under the same terms, separate programs reached over a socket (ACP CLIs, MCP servers, gws, OpenRouter) are not covered, contributions are inbound = outbound with no CLA, and the user's own recordings, transcripts and notes are theirs — the licence covers the program, never its output.
  • THIRD-PARTY-NOTICES.md — an inventory of what is vendored, built at package time, linked, and downloaded at runtime, with each licence. Everything present is BSD, MIT, Apache-2.0, ISC or OFL, all one-way compatible into AGPL, so the combined work is distributable as is. Models are downloaded at runtime and are not distributed, so they keep their own publishers' terms.
  • The licence travels with the binaries. make app now copies LICENSE and the notices into Next Notes.app/Contents/Resources/; Info.plist gains NSHumanReadableCopyright; the Windows assemblies are stamped PackageLicenseExpression = AGPL-3.0-or-later; site/package.json declares the same.
  • The copyright holder is now consistent. windows/Directory.Build.props carried a template placeholder (Copyright © Pat Simmons) that was being stamped into every shipped Windows assembly. It now reads Copyright © 2026 Serge Kadjo, matching Info.plist, the README and the licence notices.
  • AGENTS.md — a short Licence section: new files inherit the licence (no per-file headers), and new dependencies get checked against it before they land, with the notices file as the thing to update.

Verification

  • LICENSE text confirmed identical across two mirrors after whitespace normalisation.
  • site/package.json parses as JSON, Resources/Info.plist parses via plistlib, windows/Directory.Build.props parses as XML.
  • make --dry-run app shows both new cp lines in the bundle recipe, in the right place.
  • The Windows → Build, analyze & test workflow is green on the first commit — that is the check which compiles every assembly under warnings-as-errors with the strictest analyzers, so the Directory.Build.props changes are CI-validated.
  • The macOS workflow does not fire on this branch: its path filter is Sources/**, Tests/**, shared/**, Package.swift, and nothing here touches those. It also only runs the dictionary contract test, never make app, so the bundle-packaging change has no CI coverage either way.
  • No Swift, C# or TypeScript source was touched, so no build behaviour changes.

Not included

The app has no visible "Source code" link in About or Settings. For a downloadable binary the bundled LICENSE.txt satisfies the licence; that link matters the day any part of this runs as a network service (AGPL §13). Worth a follow-up, out of scope here.

🤖 Generated with Claude Code

https://claude.ai/code/session_01B9Zxoo5RMWoHuff3kGfLo9

The code should be readable, buildable and forkable by anyone, and stay that
way through any fork. AGPL rather than GPL because the interesting fork of a
dictation and meeting-notes app is a hosted one: plain GPL lets a modified
version be run as a service with nothing given back, and the Affero clause in
section 13 is what closes that.

- LICENSE: the verbatim FSF text, so GitHub and every scanner detect it.
- README: a License section in plain terms — local use obliges nothing,
  distribution and network service both mean source under the same terms, and
  the user's own recordings and transcripts are never covered.
- THIRD-PARTY-NOTICES.md: what is vendored, built, linked and downloaded, with
  each licence. Everything present is BSD, MIT, Apache-2.0, ISC or OFL, all
  one-way compatible into AGPL, so the combined work is distributable as is.
- The licence now travels with the binaries: make app copies LICENSE and the
  notices into the bundle's Resources, Info.plist gains
  NSHumanReadableCopyright, the Windows assemblies are stamped
  AGPL-3.0-or-later, and site/package.json declares it.
- AGENTS.md: new files inherit the licence, and new dependencies get checked
  against it before they land.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B9Zxoo5RMWoHuff3kGfLo9
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

The previous string was a template placeholder, and it was being stamped into
every shipped Windows assembly — contradicting the AGPL notices this branch
adds everywhere else. Now matches Info.plist, the LICENSE header and the README.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B9Zxoo5RMWoHuff3kGfLo9
@spyhack225
spyhack225 merged commit b48851a into main Sep 17, 2026
1 check 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