Skip to content

Promote uat to main - #1388

Merged
LunaUrsa merged 4 commits into
mainfrom
uat
Nov 14, 2026
Merged

LunaUrsa merged 4 commits into
mainfrom
uat

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Automated promotion PR: uat is 1 commit(s) ahead of main. Approving this PR fast-forwards main to uat's current commit automatically - no need to click Merge.

@github-actions
github-actions Bot requested a review from a team as a code owner November 12, 2026 18:59
LunaUrsa and others added 3 commits November 14, 2026 13:00
…covery (#1389)

* Bridge: look up same-name Discord member avatars via member search

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Comment out IRC placeholders in .env.example so they don't override defaults

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Privacy compliance for Discord intent review, bridge channel discovery, test coverage

Privacy and data minimisation:
- Remove the guild-to-guild bridge (command, utils, tests)
- Add /privacy bridge to opt out of IRC relaying (users.irc_bridge_opt_out)
- Add 6-month inactivity purge and 90-day command-parameter pruning
- Track users.last_seen_at so retention is based on real activity
- Only create user rows for the TripSit guild; strip stored command option values
- Drop user_tickets.description; clear saved roles after ticket restore
- Stop logging message content, AI prompts and command option values
- Log the user ID instead of the username in command context
- Remove Sentry/GlitchTip and Rollbar; errors go to the Discord channel only

Also includes bridge channel auto-discovery and the broader Vitest coverage work.

Three new migrations must be applied before deploying:
20261112120000, 20261112120100, 20261112130000 (the last deletes data).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Keep moderation actions for 2 years instead of deleting them with the user purge

- purgeInactiveUsers no longer deletes moderation actions; it only scrubs personal data
- New pruneModerationActions deletes actions older than 2 years (from the action date),
  keeping full bans, ban evasion and every action of a currently banned user
- Runs daily with the retention timer; /privacy delete wording updated
- Restore the privacy tests lost in the uat merge (opt-out, purge, prune, /privacy bridge)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Cover the remaining uncovered lines so the 100% coverage threshold passes

- Skipped saved roles on ticket close, failed hash write in command deploy,
  seed warnings and listener diff in bridge mappings, default topic length and
  an emptied join queue in the IRC channel joiner

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Make /privacy delete remove everything except moderation records

Also delete quotes, game scores, the RPG character, AI data, best-of and bounty
records, member trust flags and linked accounts (Last.fm, IRC, Matrix, Moodle,
password hash). Moderation actions, appeals, bans, tickets and the bridge opt-out
are kept.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Fix bridge privacy checks and atomic data deletion

* Fix privacy transaction tests and time-dependent coverage

* Fix bridge permission sync and channel rejoining

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
)

* Make /purge ephemeral by default and deploy commands on bot start

- /purge: rename the `private` option to `ephemeral` (the code read
  `ephemeral`, so replies were always public) and default to a hidden
  reply. Fixes #1382. Requires a command redeploy.
- Register slash commands on every bot start, skipping the Discord call
  when the definitions are unchanged since the last deploy. A failure is
  logged and does not stop the bot.
- AGENTS.md: document the `ephemeral`-by-default option rule and the
  deploy-on-start behavior.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Fix object-curly-newline lint errors in mid_guild_commands test

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Fix DeepScan issues (null checks, dead stores, unused imports)

- purge: skip channels missing from cache instead of dereferencing undefined
- sheesh: null-safe member.id in passjoint
- report: drop redundant always-true role_moderator check
- rpg/profile/levels: remove dead variable assignments
- matrix: fix always-true calc_nasal condition and NaN checks, drop await on handler
- irc archive: remove unused imports/requires
- tests for the purge and sheesh null cases

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Remove unused logger require from i.thoughtPolice

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@LunaUrsa
LunaUrsa merged commit 61a31fa into main Nov 14, 2026
25 checks passed
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.

2 participants