Skip to content

feat(privacy): add cog for privacy policy - #398

Merged
tigattack merged 4 commits into
mainfrom
feat/privacy_policy
Nov 2, 2026
Merged

tigattack merged 4 commits into
mainfrom
feat/privacy_policy

Conversation

@tigattack

Copy link
Copy Markdown
Member

Initial Checklist

  • Has @tigattack been added as a reviewer?
  • If applicable, have the relevant project(s), milestone(s), and label(s) been applied?
  • If applicable, have you added details of the cog to the readme as per README.md?

Details

Does this resolve an issue?
No

Changes

Features / Fixes

  • Adds a cog to output the bot's privacy policy

Breaking Changes

Additional

@tigattack tigattack added the new-cog New cog for bot. label Nov 2, 2026

@Matsukami7 Matsukami7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not blocking, but a few bits of the policy don't match the repo. Some depend on which cogs are loaded:

Worth fixing before it goes live, if these cogs are loaded:

  1. Sentry: sentry/sentry.py sends the full message content, user ID and display name for every command to Sentry. The policy doesn't mention this, and it undercuts "all persistent data is stored in the bot's own database". If Sentry is SaaS, it needs listing as a third party. If it's self-hosted, it
    still needs a mention.
  2. Jail: jail/utils.py saves full channel transcripts as HTML files on disk, and I can't see anything that deletes them. That contradicts "It is not stored outside Discord" and "the only content we keep is content you deliberately save".
  3. Markov: markov/markov.py builds per-user word chains from the messages of users who opt in. That conflicts with the same "only content we keep" line, and arguably with "we do not build profiles from your messages" and the no-ML claim.

Worth fixing regardless:
4. Data rights: mydata whatdata only returns generic text and a link, not what's held about that person. mydata forgetme only deletes data in cogs that implement it, and in this repo that's just markov and onboarding_role. Red's own prompt also says it won't remove modlog entries, warnings or
mutes. I'd make the moderation team the main route for deletion requests, and say forgetme only covers part of the data.
5. Contact: the only contact route is the Discord server, so banned users can't reach you, and they're the people most likely to have data held on them. I'd add an email address or a form.

Small fixes, can wait:

  • Presence: "only" isn't quite right, as report/report.py:259 also uses online/idle status to decide which members to ping for emergency reports. It isn't stored, though.
  • Tags: tags/tags.py:74 also logs the user ID and time of each tag use, but the policy only mentions creator/owner.
  • LaTeX: latex/latex.py puts the user's expression in a codecogs.com image URL, so it reaches a third party that isn't listed. Last.fm lookups presumably do the same with the linked username, but that cog isn't in this repo so I couldn't check it.
  • Access: "access is limited to the bot operators" reads oddly, since mods can also see notes and logged message content.

@tigattack

Copy link
Copy Markdown
Member Author

Worth fixing before it goes live, if these cogs are loaded:

None of those cogs are active.

  1. Data rights

Fair points. Re. forgetme, I intend to implement better data handling ASAP and in the meantime it should be clear to the user what is/isn't removed automatically. Re. whatdata, the policy says "information about the data the bot's cogs hold about you". The command doesn't return stored data, but we don't claim it does.

  1. Contact

They can reach out via r/Homelab modmail, which is suggested in parts of the policy.

Small fixes

Most of these are not applicable given the bot's live config. Many of the cogs in this repo aren't actually in active use.

The only one I will address is the following; the remaining points can be assumed irrelevant given how we are currently operating the bot.

Access: "access is limited to the bot operators" reads oddly, since mods can also see notes and logged message content.

This is directly in reference to the bot's infrastructure. Given the surrounding context, I believe this will be clear to human readers.

@tigattack
tigattack merged commit ca532d0 into main Nov 2, 2026
6 checks passed
@tigattack
tigattack deleted the feat/privacy_policy branch November 2, 2026 22:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-cog New cog for bot.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants