legal: proprietary EULA + privacy policy; GPL terms retired

Licensing posture changes to closed-source commercial software (creator ruling 2026-10-30): free
tier caps output at 720p30, a paid licence unlocks 1080p ($10/month or $400 lifetime).

- LICENSE is now an End User License Agreement: grant, what you may do with your own content,
  no redistribution/reverse engineering, third-party components prevail, updates at publisher
  discretion, warranty and liability limits, termination, governing law.
- ADDITIONAL-TERMS.md deleted — those were GPL §7 terms and have no meaning under the EULA.
- THIRD-PARTY-NOTICES.txt keeps every third-party obligation and drops the GPL header and §6
  source offer; it states plainly that LlamaCasty ships no source.
- PRIVACY.md is new: exactly what is written locally (layout DB, DPAPI token, capped log,
  recordings you choose), what leaves the machine (Google's APIs only, with your account), and the
  standing promises (chat rendered never stored, no telemetry, no ad SDKs).
- README, docs/ai/product.md, docs/ai/decisions.md and TASKS.md record the decision and the
  obligations that still bind (ffmpeg LGPL as a separate process, OFL fonts, CC0 icons, model
  provenance, notices in the About screen).

Deliberately NOT decided here: key issuance/verification and the resolution gate itself. Earlier
GPL builds remain GPL for the versions that shipped under it.
This commit is contained in:
2026-10-30 16:10:38 -07:00
parent 7829610cad
commit 0498f7e130
9 changed files with 171 additions and 821 deletions
+8 -1
View File
@@ -4,7 +4,14 @@ One dated line per decision that **no longer governs**, plus the reason it died.
you are about to re-open one of them. Live rules live in the subsystem files; this is the
graveyard with cause of death.
## Monetization — all superseded by the free-forever ruling (2026-10-08, TASK 54)
## Monetization
### 2026-10-30 — freemium replaces free-forever (creator ruling)
Free tier caps output at **720p30**; **$10/month** or **$400 lifetime** unlocks 1080p. Reverses the
2026-10-08 free-forever ruling below, which was a *current decision*, not an absolute.
### Superseded: free forever (2026-10-08, TASK 54)
- **2026-09-21** one-time perpetual licence `$29` founder → `$49` list — superseded 6 days later.
- **2026-09-27** `$10/mo` subscription or `$400` lifetime, **no annual**. Store revenue share was
+18 -64
View File
@@ -53,72 +53,26 @@ Architecture decisions, product direction, and quality gates are human-owned;
AI accelerates implementation. This is a testimonial to successful human-AI
collaboration, not autonomous code generation.
## Licensing — do not violate (GPL-3.0 open source since 2026-10-09; see `LICENSE`, `ADDITIONAL-TERMS.md`, `THIRD-PARTY-NOTICES.txt`)
## Licensing — proprietary since 2026-10-30
**LlamaCasty is free software under GPL-3.0-or-later** (creator rulings 2026-10-09 — free forever, public
repo, "GPL-3 with attribution"). Copyright (C) 2026 Gramps. `ADDITIONAL-TERMS.md` carries the three
§7 terms: **7(b)** every copy keeps "Based on LlamaCasty by Gramps — https://llamacasty.com" in its
About screen; **7(c)** modified versions are marked and renamed; **7(e)** no trademark rights. The
**icon + logo files** (`Assets/llamacasty-icon.png/.ico`, `Assets/llamacasty-logo.jpg`) are **all
rights reserved, outside the GPL** — verbatim copies may carry them, forks must replace them (this is
what keeps the merch brand protected). The scene backgrounds + default alert video are AI-generated
**placeholders** (creator: made "with the intent of individual creators to immediately replace with
their own images") — they go out under the GPL with the code, no reservation. `LICENSE` + `ADDITIONAL-TERMS.md` ship beside the exe
(csproj `None` items); the About panel shows `THIRD-PARTY-NOTICES.txt`, whose header carries the
LlamaCasty license notice (GPL §5(d) "Appropriate Legal Notices"). **Source offer (§6):**
`https://llgit.llamachile.tube/gramps/LlamaCasty` (the Gitea repo; creator toggles it public — the
old `gramps/ytLlive` path 301-redirects there), recorded in the notices header + README.
**LlamaCasty is closed-source commercial software.** `LICENSE` is the EULA; the paid tier exists
because the free tier caps output at **720p30** (creator ruling 2026-10-30, superseding free-forever).
Every bundled component must stay GPL-3.0-compatible (MIT/BSD/Apache-2.0/LGPL/public domain all are;
**GPL-2.0-only and proprietary are not**; Apache-2.0 is fine with GPL-3 but NOT with GPL-2). The
rules below predate the GPL switch; where their *reason* was "proprietary product" it is noted, but
the rule itself still stands for its other reasons. **NEVER:**
- **Swap the FFmpeg pin casually** — the BtbN `lgpl-shared` pin is the verified build. A GPL FFmpeg
build would now be license-compatible (the old "GPL contaminates the paid product" reason is gone),
but changing builds means re-verifying encoders, and libx264 carries no H.264 patent grant (Cisco's
covers OpenH264). Keep `lgpl-shared` unless a task says otherwise.
- **Distribute the static lgpl build** — LGPLv2.1 §6 wants relinkable object files for static linking.
The **shared** (dynamic-DLL) build sidesteps that: compliance is "license text + source offer +
unmodified binaries". The pin is `lgpl-shared`; when the pin is refreshed, keep the shared variant.
- **Use BtbN's `nonfree` variant** — it adds fdk-aac (Fraunhofer code licensing). The native FFmpeg AAC
encoder is fine (no Fraunhofer code) but grants no AAC patent license — accepted low-risk posture for
RTMP→YouTube, since encoder vendors cover their implementations (Cisco OpenH264, NVIDIA NVENC, Intel
QSV, AMD AMF).
- **Link FFmpeg into the app** — it stays a separate subprocess fed frames over a pipe; that separation
keeps the app's own code out of LGPL reach.
- **Drop `THIRD-PARTY-NOTICES.txt`** from the shipped app or the About screen, or alter the FFmpeg
copyright/LGPL notices inside the downloaded binaries. Automating the download counts as distribution
— the obligations are not optional.
- **Pin to a moving target** — the `latest` BtbN release tag floats. Only immutable autobuild tags give
a reproducible source offer. Record the tag + variant beside the URL (TASKS.md) every time the pin moves.
- **Use non-CC0 icon art** — the social bar's bundled SVG logo path data comes from **Simple Icons**
(CC0 1.0, public domain — see `THIRD-PARTY-NOTICES.txt`). Replacing or adding logos must stay CC0 or
another public-domain source; a logo asset under an incompatible or attribution-heavy license
would complicate every redistribution. The app's icon + logo (`Assets/llamacasty-icon.*`,
`Assets/llamacasty-logo.jpg`) are the creator's own art — all rights reserved, outside the GPL
(`ADDITIONAL-TERMS.md`).
- **Ship a font whose licence was not checked.** The two bundled families — **Inter** and
**JetBrains Mono** — are **SIL Open Font License 1.1** (approved 2026-10-30 with the DESIGN.md
standard). OFL is a free licence but is **not** GPL-compatible in the linking sense; they ship as
separate `.ttf` files loaded through WPF's font stack, which is aggregation, so the two coexist.
Obligations: keep the copyright line in `THIRD-PARTY-NOTICES.txt`, ship the `OFL-*.txt` text
beside the files in `Assets/Fonts/`, and never modify the fonts or reuse their reserved family
names for a modified version. Any new typeface needs this same check before it ships.
- **Ship an ML model without clean provenance** — the background-effects model (TASK 51) is Google's
official MediaPipe Selfie Segmenter download (Apache-2.0, model card), converted by our own script.
Model-zoo re-hosts (e.g. PINTO #109 = ML Kit's model, extracted) are off-limits. Apache-2.0 §4
obligations (license notice + "we converted it") live in `THIRD-PARTY-NOTICES.txt`.
- **Forget the v1 license-texts gate** — `THIRD-PARTY-NOTICES.txt` links the canonical license texts; at
**v1 (GA)** the full texts of every license it names MUST ship alongside it (TASK 4 requirement 9 is the
release blocker). Queued early is wrong; the release pass owns it.
- **Break the in-app About requirement** — since TASK 11 the About overlay is the app's in-app creator
hub: the real logo, the creator links (YouTube channel, Mastodon, Buy me a coffee, and the greyed
"Unlock Premium" seam whose billing URL is tabled), and a **Licenses & legal** sub-panel that loads
`THIRD-PARTY-NOTICES.txt` from the executable directory and renders it in a scrolling panel —
**never the OS viewer, no Notepad, no browser tab**. The premium/coffee link constants live in
`MainViewModel` (`PremiumUrl`, `CoffeeUrl`, `ChannelUrl`, `MastodonUrl`); filling in the billing URL
lights up the premium button. Do not reintroduce an "open the notices in Notepad" button.
- **Every GPL build already published stays GPL for that snapshot.** Attribution/§7 terms
(`ADDITIONAL-TERMS.md`) are deleted and were GPL-only; the files are gone.
- **No GPL third-party component may be linked.** ffmpeg stays a separate subprocess (LGPL,
relinkable via the shared build), OpenH264 ships as Cisco's binary, the rest are MIT/Apache/CC0.
Never add a statically linked GPL library — that would make the commercial build undistributable.
- **Obligations that still bind** (they are third-party, not ours): keep `THIRD-PARTY-NOTICES.txt`
shipped and shown in About, ship full licence texts at v1, keep the ffmpeg pin immutable and
`lgpl-shared`, never use the `nonfree` variant, keep icon art CC0/public-domain, keep the ML model
provenance clean (Google MediaPipe, Apache-2.0 — no model-zoo re-hosts).
- **Fonts:** Inter + JetBrains Mono are OFL-1.1, bundled as separate files with their licence text —
allowed in a commercial product, but the fonts may not be sold on their own and must not be
modified under the reserved names.
- **Brand artwork** (name, icon, logo) is the publisher's property; the EULA grants no trademark
rights and forbids implying endorsement.
- **No source offer.** The GPL §6 source link is gone; the repo is private.
## Design Principle