docs: dependency licensing policy + third-party notices#680
Conversation
Co-Authored-By: SageOx <ox@sageox.ai> SageOx-Session: https://sageox.ai/repo/repo_019c5812-01e9-7b7d-b5b1-321c471c9777/sessions/2026-06-22T15-01-ryan-Oxutju/view
📝 WalkthroughWalkthroughTwo documentation files are added or updated. ChangesDependency Licensing Documentation
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~4 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
THIRD_PARTY_NOTICES.md (1)
1-234:⚠️ Potential issue | 🟠 MajorTHIRD_PARTY_NOTICES.md is significantly incomplete and missing 183 out of 275 actual dependencies.
The file documents only 92 dependencies while go.mod contains 275 total modules. Critical gaps include:
- bleve search packages: 22 in use, only 1 documented (95% missing)
- cel.dev/expr, cloud.google.com, github.com/GoogleCloudPlatform, github.com/bbalet/stopwords, github.com/aymerick/douceur and many others completely absent
All third-party dependencies redistributed in the project must be documented for license compliance. Add the missing 183 dependencies with their correct license classifications.
The original concern about undocumented license types (Unlicense, CC0, Zlib) is secondary to this broader completeness issue.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@THIRD_PARTY_NOTICES.md` around lines 1 - 234, The THIRD_PARTY_NOTICES.md file is incomplete, documenting only 92 of 275 actual dependencies from go.mod. Add all missing 183 dependencies to the appropriate license sections (MIT License, Apache License 2.0, BSD 2-Clause License, BSD 3-Clause License, ISC License, Mozilla Public License 2.0, and any other license types present in go.mod). For each missing dependency including the bleve search packages, cel.dev/expr, cloud.google.com/*, github.com/GoogleCloudPlatform/*, github.com/bbalet/stopwords, github.com/aymerick/douceur and others, add entries in the format of the existing dependencies with the module name and copyright holder. Ensure all 275 dependencies are documented with correct license classifications for full compliance.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@THIRD_PARTY_NOTICES.md`:
- Around line 1-234: The THIRD_PARTY_NOTICES.md file is incomplete, documenting
only 92 of 275 actual dependencies from go.mod. Add all missing 183 dependencies
to the appropriate license sections (MIT License, Apache License 2.0, BSD
2-Clause License, BSD 3-Clause License, ISC License, Mozilla Public License 2.0,
and any other license types present in go.mod). For each missing dependency
including the bleve search packages, cel.dev/expr, cloud.google.com/*,
github.com/GoogleCloudPlatform/*, github.com/bbalet/stopwords,
github.com/aymerick/douceur and others, add entries in the format of the
existing dependencies with the module name and copyright holder. Ensure all 275
dependencies are documented with correct license classifications for full
compliance.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 8d40cd13-8c46-4f60-baf4-757ac7772c04
📒 Files selected for processing (2)
AGENTS.mdTHIRD_PARTY_NOTICES.md
Greptile SummaryThis PR adds a Dependency Licensing Policy section to
Confidence Score: 4/5Docs-only change with no code paths touched; safe to merge, though the notices file has accuracy gaps worth addressing before it's treated as an authoritative compliance artifact. No production code is touched. The licensing policy in AGENTS.md is clear and actionable. The notices file has two categories of inaccuracies — wrong canonical module paths for v2+ modules, and at least one missing direct dependency — that reduce its reliability as a compliance reference but do not block the codebase from building or running correctly. THIRD_PARTY_NOTICES.md needs the most attention: module paths should match go.mod exactly (including major-version suffixes), and the file should be cross-checked against go.mod for completeness before it is relied upon for license compliance. Important Files Changed
|
| - **Banned licenses:** GPL, LGPL, AGPL, SSPL, EUPL, OSL, CPL, EPL, CC-BY-SA | ||
| - **Allowed licenses:** MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, Unlicense, CC0, MPL-2.0, Zlib | ||
| - **MPL-2.0 note:** Allowed because it is file-level copyleft (not project-level), but prefer MIT/Apache/BSD when alternatives exist |
There was a problem hiding this comment.
EPL is listed as banned while MPL-2.0 is explicitly allowed because it is "file-level copyleft (not project-level)." EPL-2.0 shares exactly the same file-level copyleft scope as MPL-2.0 — it only requires modified files (not the whole project) to remain under EPL. If the intent is to ban EPL-1.0 specifically (which has stronger per-plugin propagation semantics), that distinction should be called out; otherwise the rule may confuse contributors who encounter EPL-2.0 dependencies and see no principled reason it differs from allowed MPL-2.0.
| - **Banned licenses:** GPL, LGPL, AGPL, SSPL, EUPL, OSL, CPL, EPL, CC-BY-SA | |
| - **Allowed licenses:** MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, Unlicense, CC0, MPL-2.0, Zlib | |
| - **MPL-2.0 note:** Allowed because it is file-level copyleft (not project-level), but prefer MIT/Apache/BSD when alternatives exist | |
| - **Banned licenses:** GPL, LGPL, AGPL, SSPL, EUPL, OSL, CPL, EPL-1.0, CC-BY-SA | |
| - **Allowed licenses:** MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, Unlicense, CC0, MPL-2.0, EPL-2.0, Zlib | |
| - **MPL-2.0 / EPL-2.0 note:** Allowed because both are file-level copyleft (not project-level), but prefer MIT/Apache/BSD when alternatives exist | |
| - **EPL-1.0 note:** Banned — its per-plugin propagation scope is broader than EPL-2.0/MPL-2.0 |
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| - charm.land/bubbles - Copyright (c) Charmbracelet, Inc. | ||
| - charm.land/bubbletea - Copyright (c) Charmbracelet, Inc. | ||
| - charm.land/glamour - Copyright (c) Charmbracelet, Inc. | ||
| - charm.land/lipgloss - Copyright (c) Charmbracelet, Inc. | ||
| - github.com/AlexanderGrooff/mermaid-ascii - Copyright (c) Alexander Grooff | ||
| - github.com/Microsoft/go-winio - Copyright (c) Microsoft Corporation | ||
| - github.com/alecthomas/chroma - Copyright (c) Alec Thomas | ||
| - github.com/cenkalti/backoff - Copyright (c) Cenk Alti | ||
| - github.com/charmbracelet/colorprofile - Copyright (c) Charmbracelet, Inc. | ||
| - github.com/charmbracelet/ultraviolet - Copyright (c) Charmbracelet, Inc. | ||
| - github.com/charmbracelet/x/ansi - Copyright (c) Charmbracelet, Inc. | ||
| - github.com/charmbracelet/x/term - Copyright (c) Charmbracelet, Inc. | ||
| - github.com/cpuguy83/go-md2man - Copyright (c) Brian Goff | ||
| - github.com/fatih/color - Copyright (c) Fatih Arslan | ||
| - github.com/gin-gonic/gin - Copyright (c) Manu Martinez-Almeida | ||
| - github.com/goccy/go-json - Copyright (c) Masaaki Goshima | ||
| - github.com/joho/godotenv - Copyright (c) John Barton | ||
| - github.com/json-iterator/go - Copyright (c) json-iterator | ||
| - github.com/mattn/go-colorable - Copyright (c) Yasuhiro Matsumoto | ||
| - github.com/mattn/go-isatty - Copyright (c) Yasuhiro Matsumoto | ||
| - github.com/mattn/go-runewidth - Copyright (c) Yasuhiro Matsumoto | ||
| - github.com/muesli/cancelreader - Copyright (c) Christian Muehlhaeuser | ||
| - github.com/odvcencio/gotreesitter - Copyright (c) Contributors | ||
| - github.com/pelletier/go-toml - Copyright (c) Thomas Pelletier | ||
| - github.com/sirupsen/logrus - Copyright (c) Simon Eskildsen | ||
| - github.com/stretchr/testify - Copyright (c) Stretchr, Inc. | ||
| - github.com/testcontainers/testcontainers-go - Copyright (c) Testcontainers | ||
| - github.com/yuin/goldmark - Copyright (c) Yusuke Inuzuka | ||
| - github.com/zalando/go-keyring - Copyright (c) Zalando SE | ||
| - go.etcd.io/bbolt - Copyright (c) Ben Johnson, etcd Authors |
There was a problem hiding this comment.
Module paths omit Go major-version suffix for v2+ modules
Several entries use the unversioned module path rather than the canonical path recorded in go.mod. In Go's module system, charm.land/bubbles and charm.land/bubbles/v2 are distinct modules — the notices should match the actual import path so attribution stays unambiguous.
Examples of mismatches (notices path → actual go.mod path):
charm.land/bubbles→charm.land/bubbles/v2charm.land/bubbletea→charm.land/bubbletea/v2charm.land/glamour→charm.land/glamour/v2charm.land/lipgloss→charm.land/lipgloss/v2github.com/alecthomas/chroma→github.com/alecthomas/chroma/v2github.com/cenkalti/backoff→github.com/cenkalti/backoff/v4/v5github.com/go-git/go-git→github.com/go-git/go-git/v6github.com/godbus/dbus→github.com/godbus/dbus/v5github.com/hashicorp/golang-lru→github.com/hashicorp/golang-lru/v2github.com/shirou/gopsutil→github.com/shirou/gopsutil/v4
The same pattern occurs for other packages in the Apache-2.0 and BSD sections.
| # Third-Party Software Notices | ||
|
|
||
| This product includes software developed by third parties. The following | ||
| notices are provided in compliance with the license terms of each project. | ||
|
|
There was a problem hiding this comment.
Direct dependency
github.com/bbalet/stopwords absent from notices
github.com/bbalet/stopwords appears as a direct dependency in go.mod (line 13) but is not listed anywhere in this file. Since MIT and other permissive licenses require attribution to be preserved in distributions, a notices document that omits direct dependencies is incomplete for compliance purposes. Tools like go-licenses or golicense can generate a full list automatically from go.mod/go.sum.
What this PR ships
Salvages two durable artifacts from long-lived local stashes (the only non-superseded content out of 19 audited) into
main.AGENTS.md— Dependency Licensing Policy (new section): hard rule against copyleft deps for AI coworkers.go get, including transitive pulls.THIRD_PARTY_NOTICES.md(new): attribution/notices for bundled third-party dependencies.Motivation
A 19-stash audit found almost everything either already merged into
mainor pure beads/config state noise. These two were the only items with real, unmerged value — both licensing-hygiene related, so they ship together as one coherent change. The remaining 17 stashes are being dropped.Test Plan
Docs-only; no code paths touched. Nothing to build or test. Render-check
AGENTS.mdsection andTHIRD_PARTY_NOTICES.mdon GitHub.Summary by CodeRabbit