Compare commits

..
Author SHA1 Message Date
golemandClaude Opus 5.5 edd7224bde docs(license): flag the earlier copyright-registration deadline
If the July and August 2026 pushes of the 1.1 code to the public Gitea count
as publication, the three-month window for statutory damages and fees closes
around 29 October to 1 November 2026, not January 2027.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 06:31:05 -06:00
golemandClaude Opus 5.5 ef621d291c docs(license): replace the license with the Zavage Software Freeware License 1.0
The old LICENSE.txt was a stock business EULA. It allowed use only "for your
internal business purposes", banned copying and reverse engineering of code we
publish, named "Zavage Software inc." as licensor, and claimed users agreed by
installing.

The new text lets anyone use the extension free of charge, for any purpose,
and withholds republishing, forks and reuse of the code. It also covers
versions 1.0 to 1.3, which AMO shows under one shared license record. The
README, CHANGELOG and package.json follow suit.

The text went through three multi-agent review passes. The decisions behind
it and the AMO publishing steps are in
docs/superpowers/specs/2026-10-19-license-design.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 06:28:51 -06:00
7 changed files with 174 additions and 163 deletions
+7
View File
@@ -2,6 +2,13 @@
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version). All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version).
## Unreleased
- Replace the license with the Zavage Software Freeware License 1.0, written in
plain English. Anyone may install and use the extension free of charge, for
any purpose, and the new terms also cover earlier versions. Republishing it,
sharing changed versions or reusing its code still needs permission.
## [1.3.0] (2026-10-18) ## [1.3.0] (2026-10-18)
- Use the extension's bundled icon for the ChatGPT search engine. - Use the extension's bundled icon for the ChatGPT search engine.
+42 -53
View File
@@ -1,81 +1,70 @@
1. Grant of License Zavage Software Freeware License 1.0
This Zavage Software inc. License Agreement (the "Agreement") is a legal agreement between Copyright (c) 2024-2026 Mathew Guest <mat@zavage.net> (https://zavage-software.com), who publishes as Zavage Software ("Zavage Software").
you (either an individual or a single entity) and Zavage Software inc. ("Licensor") for the
use of the software product identified above, which includes computer software and may include
associated media, printed materials, and "online" or electronic documentation (the "Software").
By installing, copying, or otherwise using the Software, Anyone may install and use this extension free of charge, for any purpose. That permission lasts forever for every version this license covers. Without permission, nobody may republish, sell or give away copies of it, changed or not, or reuse its code, text or images elsewhere. You may read its source code, but this isn't an open source license. The full terms follow.
you agree to be bound by the terms of this Agreement. If
you do not agree to the terms of this Agreement, do not
install or use the Software.
This license covers the browser extension Search with ChatGPT powered by OpenAI! (the "Software"): every version Zavage Software made before this license or publishes with it, under any name and for any browser, together with their source code, icons, images, documentation and store listings. On addons.mozilla.org its add-on ID is {24644f0c-bfcb-4ebd-a16b-bc8a7d154288}. Anything in the Software or its repository history that belongs to someone else, such as another company's logo, isn't covered by this license and stays with its owner. In this license, "you" means the person or organization using the Software.
2. License Section 1: What you may do
The Software is licensed, not sold. Subject to the terms of this Agreement, You may install and use the Software for any purpose, personal or commercial, on any number of devices, free of charge. You may install it for others too, on devices you manage, such as your family's or your organization's. You may also:
Licensor grants you a limited, non-exclusive, non-transferable,
non-sublicensable license to use the Software solely for your
internal business purposes.
3. Restrictions - make the copies you need to install, run, sync and back up the Software, including a copy on an internal server or network share for installing it on devices you manage;
- read, study and test its source code, including to check its security and privacy, and make the copies you need for that, such as a clone of the official repository; and
- change your own copy, and use, copy and share the changed version only within your own household or organization.
You may not: These permissions are worldwide, permanent and irrevocable: as long as you follow section 2, Zavage Software can't take them back. Section 5 explains what happens if you don't.
Copy, modify, or create derivative works of the Software. Section 2: What you may not do
Distribute, sell, sublicense, lease, rent, or otherwise transfer the Software to any third party.
Reverse engineer, decompile, disassemble, or otherwise attempt to derive the source code of the Software,
except to the extent expressly permitted by applicable law.
Use the Software in any manner that could damage, disable, overburden, or impair the
Software or interfere with any other party's use of the Software.
4. Ownership Except as this license allows, and unless Zavage Software gives you written permission (an email is enough), you may not:
All right, title, and interest in and to the Software, including all intellectual - publish, distribute, sell, rent or give the Software, or a version made from it (a fork), to anyone else, whether or not you charge for it, including by listing it on an add-on store (such as addons.mozilla.org, the Chrome Web Store or Microsoft Edge Add-ons) or posting it on a public website or in a public code repository. A fork includes a changed copy, a version for another browser, a userscript, and a translation of its code or text, whether made by hand, with AI or with other tools;
property rights, are and will remain the sole property of Licensor. This Agreement does - copy or adapt any part of its code, text, icons or images for anything else, such as another add-on, app, script, website, service or store listing; or
not grant you any rights in or to the Software other than the limited license granted above. - remove or change its copyright and license notices.
Sharing a link to the official listing or repository is always fine, and so is naming the Software, quoting short parts of it, or showing its icon and screenshots or videos of it in use, in a review, an article, a tutorial, a class, a security report or a support request. Nothing in this license limits rights the law gives you anyway, such as fair use or fair dealing. Zavage Software keeps every right this license doesn't give you.
5. Termination Section 3: Names and logos
This Agreement is effective until terminated. Licensor may terminate this Agreement You may use the Zavage Software name and the Software's name and icon to refer to the Software, but not to brand anything else or to suggest that Zavage Software made or endorsed something it didn't. ChatGPT and OpenAI are trademarks of OpenAI. The Software is unofficial and isn't affiliated with or endorsed by OpenAI.
immediately if you breach any term of this Agreement. Upon termination, you must cease
all use of the Software and destroy all copies of the Software in your possession or control.
Section 4: ChatGPT is a separate service
6. Disclaimer of Warranties The Software opens chatgpt.com in your browser with your text filled in. OpenAI runs ChatGPT under its own terms and privacy policy. Zavage Software doesn't control ChatGPT and isn't responsible for its availability or its answers, or for how OpenAI handles text that reaches ChatGPT through the Software.
The Software is provided "AS IS" and "AS AVAILABLE," without warranty of any kind. Section 5: If you break section 2
Licensor disclaims all warranties, whether express, implied, statutory, or
otherwise, including but not limited to the implied warranties of merchantability,
fitness for a particular purpose, title, and non-infringement.
If you break section 2, Zavage Software may tell you so in writing (an email is enough). If, within 30 days of that notice, you stop and undo what you can, such as taking down copies you published, you keep your permissions under this license, though that doesn't excuse the breach. If you don't, or if you break section 2 again after a notice, your permissions under this license end: stop using the Software and delete your copies. Sections 6 to 10 still apply after that.
7. Limitation of Liability Section 6: No warranty
To the maximum extent permitted by applicable law, in no event will Licensor be liable Because the Software is free, it comes without a warranty:
for any indirect, incidental, special, consequential, or punitive damages, or any loss of
profits or revenues, whether incurred directly or indirectly, or any loss of data, use,
goodwill, or other intangible losses, resulting from (a) your use of or inability to use
the Software; (b) any unauthorized access to or use of the Software; or (c) any other
matter relating to the Software.
TO THE EXTENT THE LAW ALLOWS, THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT.
8. Governing Law Section 7: Limit of liability
This Agreement will be governed by and construed in accordance with the laws of Denver, CO and the United States, TO THE EXTENT THE LAW ALLOWS, FOR ANY CLAIM ARISING FROM THE SOFTWARE OR THIS LICENSE, ZAVAGE SOFTWARE IS NOT LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR PUNITIVE DAMAGES, OR FOR LOST DATA, PROFITS OR GOODWILL, AND ITS TOTAL LIABILITY FOR ALL SUCH CLAIMS WILL NOT EXCEED US$50.
without regard to its conflict of law principles.
Sections 6 and 7 don't limit liability for death or personal injury caused by negligence, for fraud, for harm caused deliberately, recklessly or through gross negligence, or under product liability laws. They also don't limit any other liability, or take away any consumer right, that the law doesn't allow to be limited or taken away.
9. Entire Agreement Section 8: Law
This Agreement constitutes the entire agreement between you and Licensor regarding the use of the Colorado law and United States federal law govern this license. If you use the Software as a consumer, outside your trade, business or profession, you also keep the protections of the law where you live that an agreement can't take away.
Software and supersedes all prior and contemporaneous understandings, agreements, representations,
and warranties, both written and oral.
10. Contact Information Section 9: Earlier and later versions
If you have any questions about this Agreement, please contact Zavage Software Inc. at: This license replaces any other terms that came with the versions it covers. A later version may come with different terms, but they can't take back what this license gives you for the versions it covers.
* mat@zavage.net (email) Section 10: General
* https://zavage-software.com (website)
- If a court won't enforce part of this license, the rest still applies.
- If the Software passes to someone else, such as a company, this license keeps applying and they take Zavage Software's place in it.
Section 11: Contact
Official listing: https://addons.mozilla.org/firefox/addon/search-with-chatgpt/
Official repository: https://git-repos.zavage.net/zavage-software/search-with-chatgpt-powered-by-openai-extension
Questions, permission requests or security reports: mat@zavage.net, https://zavage-software.com
+4 -2
View File
@@ -7,7 +7,7 @@ It uses no API key, custom server, or intermediary handler.
**ChatGPT may require you to sign in. If your prompt is not sent automatically, **ChatGPT may require you to sign in. If your prompt is not sent automatically,
press Enter or click Send in ChatGPT.** press Enter or click Send in ChatGPT.**
This is an unofficial extension provided by Zavage Software Inc. This is an unofficial extension by Zavage Software.
- [Firefox Add-ons listing](https://addons.mozilla.org/en-US/firefox/addon/search-with-chatgpt/) - [Firefox Add-ons listing](https://addons.mozilla.org/en-US/firefox/addon/search-with-chatgpt/)
- [Project website](https://zavage-software.com/portfolio/search-with-ChatGPT) - [Project website](https://zavage-software.com/portfolio/search-with-ChatGPT)
@@ -15,7 +15,9 @@ This is an unofficial extension provided by Zavage Software Inc.
- [Feedback or report a bug](https://zavage-software.com/contact-us) - [Feedback or report a bug](https://zavage-software.com/contact-us)
- [Zavage Software](https://zavage-software.com) - [Zavage Software](https://zavage-software.com)
See `LICENSE.txt` for licensing terms. Anyone may use the extension free of charge, for any purpose. Republishing it,
sharing changed versions or reusing its code needs permission. You may read the
source, but it isn't open source. See `LICENSE.txt` for the full terms.
## Ask about selected text ## Ask about selected text
@@ -0,0 +1,119 @@
# Replace the license
Status: implemented on `docs/replace-license`. Researched and reviewed, but not
legal advice; no lawyer has read it.
## Problem
The old `LICENSE.txt` was a stock business EULA, unchanged since June 2024. It:
- allowed use only "for your internal business purposes", which leaves out
people using the extension at home;
- banned copying and reverse engineering, although the source is public and the
listing links to it;
- named "Zavage Software inc." as licensor, though the code is Mathew's;
- said users agreed by installing, which binds no one who installs from AMO.
## Goals
1. Anyone may use the extension for free, for any purpose, forever.
2. Nobody may fork it, republish it, or build or sell anything from it.
3. Everything else is reserved.
The text must not scare ordinary users away.
## How it was reviewed
Three multi-agent passes on 2026-10-19. Each finding was checked against primary
sources by a separate skeptic.
1. Seven lenses: US law, international law, platforms, comparable licenses, a
would-be cloner, ordinary users and drafting. A completeness critic followed.
This pass produced 92 findings.
2. A four-lens adversarial review of the revision, which produced 29 findings.
3. A final consistency check and cold read.
## Decisions
- **Custom text.** No standard license fits all three goals:
- PolyForm Strict allows noncommercial use only.
- PolyForm Internal Use covers business use only.
- PolyForm Perimeter, Shield and Noncommercial, Elastic, BSL and FSL all allow
redistribution.
- CC BY-NC-ND allows sharing unchanged copies.
- **A permission, not an agreement.** Copyright already forbids forks without
anyone agreeing to anything. "By installing you agree" doesn't bind people who
install from a store (Specht v. Netscape, 2d Cir. 2002).
- **Licensor: Mathew Guest, publishing as Zavage Software.** Colorado lists a
Zavage Software Inc. LLC, but the code was never assigned to it. Section 10
keeps the license in force if the code later passes to a company.
- **Earlier versions are covered.** On AMO, versions 1.0, 1.2 and 1.3 share one
license record (9155), and their signed packages bundle the old EULA. Section 9
replaces those terms.
- **Each version stays free forever.** A later version may carry different
terms, but it can't take back what this license gives. The owner chose this
over promising that every future version stays free.
- **Changed copies stay within your household or organization.** There is no
route for having Mozilla sign a changed copy. Submitting to AMO makes the
submitter warrant worldwide distribution rights (Firefox Add-on Distribution
Agreement §5(c)), which this license withholds. Changed copies still run as
temporary add-ons, or in Developer Edition, Nightly and ESR.
- **Reviews are welcome.** Reviews, tutorials, classes and security reports may
name the extension, quote short parts, and show its icon and screenshots of it
in use.
- **Liability is capped at US$50**, for claims about the Software only. The cap
has explicit exceptions (injury, fraud, deliberate or reckless harm, gross
negligence, product liability). A bare "to the extent the law allows" doesn't
save a cap in Germany, the UK or the EU.
- **Clauses left out:**
- A courts clause, which binds no forker and is unfair to EU and UK consumers.
- A noncompete or a ban on similar extensions. Ideas aren't protected, and
such a clause risks copyright misuse.
- Clauses on AI training and on outside contributions.
- **The name is "Freeware", not "Free Use".** "Free Use" has a slang meaning, and
"free" alone suggests free software.
- **The layout is plain text.** AMO shows license text as plain text: every line
break shows, and there's no Markdown. So each paragraph sits on one line, and
headings read "Section N:".
## Publishing on AMO (untested, 2026-10-19)
1. In the Developer Hub, open the add-on's **Manage Authors & License** page.
2. Set "What is your license's name?" to `Zavage Software Freeware License 1.0`.
The listing's License link and each version's "Source code released under …"
line show this name, not the text's first line.
3. Paste `LICENSE.txt` unchanged, and leave the End-User License Agreement box
unticked.
4. Save. Saving edits the shared record, so 1.0, 1.2 and 1.3 all show the new
text, and the next upload inherits it.
5. Check every version:
```sh
curl -s https://addons.mozilla.org/api/v5/addons/addon/search-with-chatgpt/versions/ \
| jq '.results[] | {version, license: .license.name}'
```
AMO turns the email address into a link to its own home page. It looks odd but
does no harm.
## Outside the license
- **Register the copyright** with the US Copyright Office (Standard Application,
US$65), and exclude AI-generated material that is more than trivial.
Registration is needed to sue and to keep a takedown in place after a
counter-notice. Statutory damages and fees also depend on registering within
three months of first publication.
- 1.2 and 1.3 reached AMO on 18 and 19 October 2026, so their window runs to
about 18 January 2027.
- The 1.1 code was pushed to the public Gitea in July and August 2026. If
those pushes count as publication, its window closes around 29 October to
1 November 2026. The old license's copy ban suggests they didn't, but that
reading is low confidence.
- So file by late October 2026 to be safe, and have an IP attorney confirm.
- **Replace the Chrome repository's `LICENSE.txt`.** It still carries the old
EULA and the public@zavage.net contact.
- **Report clones** through Mozilla's infringement form or
dmcanotice@mozilla.com. On AMO, Mozilla's own fork rule is a second route. Use
the Chrome Web Store's and Microsoft's DMCA forms for those stores.
- **Don't mirror the repository publicly on GitHub.** GitHub's terms let any
GitHub user fork a public repository there.
@@ -1,108 +0,0 @@
# Add a privacy policy
Status: design approved on 2026-10-21. The policy isn't written yet, and it
will be published after the release that fixes #16. Researched, but not legal
advice.
## Problem
- The AMO listing has no privacy policy. On 2026-10-21 the API reported
`has_privacy_policy: false`.
- The README has a short "Privacy Policy" section. The website's page for the
extension says only "Extension collects zero user information."
- The owner wants a policy that says the extension collects nothing and that
data will never be sold: "basically the most privacy respecting as possible".
## Goals
1. Say in plain English what happens to data, with every claim checkable
against the code.
2. Make clear that Zavage Software receives nothing and will never sell data.
3. Make clear that ChatGPT is a separate service under OpenAI's own privacy
policy.
## Decisions
- **Plain English, organised by where data goes.** A one-line "we collect
nothing" would hide the hand-off to ChatGPT. A formal GDPR-style template is
the legalese Mozilla advises against (Extension Workshop, "Create an appealing
listing").
- **The extension only.** One line says the policy doesn't cover the website or
email, although the options page links to the website and its contact form.
The policy ends with mat@zavage.net for questions. The owner chose this over
also covering messages or the whole website.
- **The current version only.** The policy describes the current version and
says so.
- **#16 is fixed first.** Up to 1.3, a chat started in a private window can open
in a normal window. The owner chose to fix that before publishing rather than
disclose it, so the policy doesn't mention it.
- **Promises.** Nothing is ever sold. Any future collection would be opt-in, and
the policy is updated before any version that changes how data is handled.
- **No "can't".** Nothing in the code sends data to Zavage Software, but that is
a fact about the current code. The policy says so and points to the public
source instead of claiming the extension is unable to send data.
- **No claim that Mozilla agreed.** #17 asks whether the manifest's "no data
collection" declaration covers the hand-off to ChatGPT, and it is still open.
The policy describes what happens and doesn't say Mozilla confirmed anything.
- **`PRIVACY.md` is the only copy.** It is pasted into AMO unchanged. The README
section shrinks to a summary and a link. AGENTS.md names `PRIVACY.md` as the
file every data-handling change must update.
- **Not packaged.** `web-ext-config.mjs` ignores `PRIVACY.md`, so AMO and the
repository hold it.
- **Its own pull request,** separate from the license change in #33.
- **Review.** Three readers: one checks each claim against the code, one checks
Mozilla's policies and privacy law, and one reads it cold for plain English.
## What each claim rests on
| Claim | Evidence |
| --- | --- |
| Zavage Software receives nothing | The code has no `fetch`, `XMLHttpRequest`, `sendBeacon`, `WebSocket` or `EventSource`, and the manifest has no `favicon_url`. |
| Settings stay in Firefox and sync only through Firefox Sync | `lib/settings.js:37-60` uses `storage.sync`, the only storage API in the code. |
| Three permissions, and no host access | `manifest.json:25`: `storage`, `menus` and `activeTab`. |
| The manifest declares no data collection | `manifest.json:18` |
| The selection is read only when the toolbar button or shortcut is used | `background/background.js:41-50`: `activeTab` and `tabs.executeScript`. |
| The right-click menu gets the selection, link or page address from Firefox at the click | `lib/actions.js:16-21` |
| ChatGPT receives the text in the address of the page the extension opens | `lib/build-url.js:11` and `:45-47`; `background/open-chat.js:1-9` |
| Temporary chat and web search are only hints in that address | `lib/build-url.js:32-37` |
| Dialogs hold pending text in memory only | `background/dialogs.js:1` and `:20` |
| The `gpt` search sends nothing until Enter | `manifest.json:58-61` has no `suggest_url`. |
| No remote code | Manifest V2's default content security policy runs only the extension's own scripts. |
| Links to other sites open only when clicked | `options/options.html` |
## AMO's privacy policy field
- Unlike the license field, it renders a restricted Markdown. The field is
`privacy_policy = PurifiedMarkdownField(...)` in addons-server's
`addons/models.py`, as Mozilla's blog post of 3 March 2025 describes.
- The allowed tags are `a`, `abbr`, `acronym`, `b`, `blockquote`, `code`, `em`,
`i`, `li`, `ol`, `strong` and `ul`. Headings are dropped, so section labels
are bold lines.
- Tags are stripped before the Markdown is rendered, so anything in angle
brackets disappears.
- Bare URLs become links through Mozilla's redirector. The email address may
link to AMO's home page, as it does in the license.
## Publishing on AMO (untested, 2026-10-21)
Publish after the release that fixes #16.
1. In the Developer Hub, open the add-on's **Manage Authors & License** page,
where the license is set too.
2. Tick "This add-on has a Privacy Policy" and paste `PRIVACY.md` unchanged.
3. Save, then check:
```sh
curl -s https://addons.mozilla.org/api/v5/addons/addon/search-with-chatgpt/ | jq .has_privacy_policy
curl -s https://addons.mozilla.org/api/v5/addons/addon/search-with-chatgpt/eula_policy/ | jq .privacy_policy
```
The policy then appears at
https://addons.mozilla.org/firefox/addon/search-with-chatgpt/privacy/.
## Outside the policy
- Point the website's "Extension collects zero user information" at the new
policy.
- #17 is still open.
- The Chrome repository has no privacy policy.
+1
View File
@@ -7,6 +7,7 @@
"": { "": {
"name": "search-with-chatgpt-powered-by-openai-extension", "name": "search-with-chatgpt-powered-by-openai-extension",
"version": "1.3.0", "version": "1.3.0",
"license": "SEE LICENSE IN LICENSE.txt",
"devDependencies": { "devDependencies": {
"web-ext": "10.5.0" "web-ext": "10.5.0"
}, },
+1
View File
@@ -4,6 +4,7 @@
"private": true, "private": true,
"type": "module", "type": "module",
"description": "Development tooling for the Search with ChatGPT Firefox extension.", "description": "Development tooling for the Search with ChatGPT Firefox extension.",
"license": "SEE LICENSE IN LICENSE.txt",
"engines": { "engines": {
"node": ">=22" "node": ">=22"
}, },