Skip to content

fix(ci): rhodibot must never relicense AGPL — warn only - #36

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/rhodibot-never-relicense
Aug 26, 2026
Merged

fix(ci): rhodibot must never relicense AGPL — warn only#36
hyperpolymath merged 1 commit into
mainfrom
fix/rhodibot-never-relicense

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Rhodibot ran a sed sweep over dotfiles rewriting AGPL SPDX headers — on a Monday cron and on every completed Hypatia analysis:

sed -i 's/AGPL-3.0-or-later/MPL-2.0/g; s/AGPL-3.0/MPL-2.0/g' "$dotfile"

Three things wrong with it

1. LICENCE-POLICY.adoc A2 forbids it outright:

No automated or bulk SPDX/licence change (sed sweep, script, agent pass) on any estate repo, ever. Prior automated attempts falsified third-party licence authorship — a legal-integrity hazard.

This is literally a sed sweep changing SPDX headers.

2. AGPL is correct in this estate, not drift. Rule 3 covers projects co-developed with the owner's son. Rule 5 — added today, 2026-08-26 — makes games AGPL as a class. This bot was scheduled to undo a policy set the same day.

3. It was half-fixed, which is worse than either state. The sed target had already been changed from PMPL to MPL-2.0, but the report line still read (AGPL → PMPL) — so the log described an edit the code no longer made. A bot whose output misdescribes its own behaviour is harder to audit than one that is plainly wrong.

The fix

Warn-only, matching what rsr-template-repo's rhodibot already does correctly — someone hardened the spine but this copy was missed.

Scope note

38 copies of the original PMPL-rewriting form exist as vendored sub-copies under developer-ecosystem and standards/k9-svc. Those are inert unless executed and are a separate cleanup. This fixes the one that is active and scheduled.

🤖 Generated with Claude Code

Rhodibot ran a sed sweep over dotfiles rewriting AGPL SPDX headers,
on a Monday cron AND on every completed Hypatia analysis:

    sed -i 's/AGPL-3.0-or-later/MPL-2.0/g; s/AGPL-3.0/MPL-2.0/g' "$dotfile"

Three things wrong with that:

1. LICENCE-POLICY.adoc A2 forbids it outright -- "No automated or bulk
   SPDX/licence change (sed sweep, script, agent pass) on any estate
   repo, ever. Prior automated attempts falsified third-party licence
   authorship -- a legal-integrity hazard." This is literally a sed
   sweep changing SPDX headers.

2. AGPL is CORRECT in this estate, not drift. Rule 3 covers projects
   co-developed with the owner's son; Rule 5 (added 2026-08-26) makes
   games AGPL as a class. This bot was scheduled to undo a policy set
   the same day.

3. It was HALF-fixed, which is worse than either state. The sed target
   had been changed from PMPL to MPL-2.0, but the report line still read
   "(AGPL → PMPL)" -- so the log described an edit the code no longer
   made. A bot whose output misdescribes its own behaviour is harder to
   audit than one that is plainly wrong.

Replaced with warn-only, matching what rsr-template-repo's rhodibot
already does correctly:

    echo "::warning::... must be fixed MANUALLY (owner-only, never
    auto-edited). AGPL is correct under LICENCE-POLICY Rule 3 and Rule 5."

The header comment claiming 'Fix SPDX headers (AGPL → PMPL in dotfiles)'
is corrected to say it flags for manual review.

Note on scope: 38 copies of the original PMPL-rewriting form exist as
vendored sub-copies under developer-ecosystem and standards/k9-svc.
Those are inert unless executed, and are a separate cleanup; this fixes
the one that is ACTIVE and scheduled.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@hyperpolymath
hyperpolymath merged commit 1e8ff80 into main Aug 26, 2026
@hyperpolymath
hyperpolymath deleted the fix/rhodibot-never-relicense branch August 26, 2026 16:01
@sonarqubecloud

Copy link
Copy Markdown

@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5b4a9a10-5d2e-4ee8-ba8a-22840ef5f7c7

📥 Commits

Reviewing files that changed from the base of the PR and between 398a637 and 2cf4a18.

📒 Files selected for processing (1)
  • .github/workflows/rhodibot.yml

📝 Walkthrough

Summary by CodeRabbit

  • Documentation
    • Clarified that AGPL licence headers require manual review rather than automatic replacement.
  • Bug Fixes
    • Updated dotfile licence handling to preserve AGPL identifiers, issue a warning, record a manual-review notice, and flag the workflow as changed.

Walkthrough

The workflow documentation now identifies AGPL SPDX headers as manual-review items. Matching dotfiles emit a warning, record the header for review, preserve the header, and mark the workflow as changed.

Changes

AGPL header handling

Layer / File(s) Summary
Manual review handling
.github/workflows/rhodibot.yml
The workflow description identifies AGPL headers for manual review. Dotfile processing no longer rewrites AGPL identifiers to MPL-2.0. It emits a warning and records the header without editing it.

Estimated code review effort: 2 (Simple) | ~10 minutes

Poem

A rabbit checks the headers with care
AGPL warnings rise in the air
No rewrite hops through the file
The owner reviews it in style
The workflow marks each change there


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gitar-bot

gitar-bot Bot commented Aug 26, 2026

Copy link
Copy Markdown

Important

You are using the Gitar free plan. Upgrade to unlock code review, CI analysis, auto-apply, custom automations, and more.

Gitar

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