Commit Graph

16 Commits

Author SHA1 Message Date
hikari 453ebd0f15 feat: sanction DM links and per-event colour coding (#13)
Node.js CI / CI (push) Successful in 28s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 2m12s
## Summary

- Adds resource links (appeal form, sanction logs, contact page, community invite) to all sanction DMs, separated from the sanction text by a Components v2 separator
- Adds a unique accent colour for every mod log and activity log event type, giving each action a distinct visual identity at a glance

## Changes

- `src/utils/components.ts` — Added `sanctionDmMessage` helper with two-section container (sanction text + links); added full `Colours` palette covering all sanction and activity event types; added `ColourKey` export
- `src/commands/{ban,kick,mute,softban,warn}.ts` — Updated DMs to use `sanctionDmMessage` with the appropriate colour
- `src/modules/logModAction.ts` / `logActivity.ts` — Thread `colour` parameter through to message builders
- All event and command files updated with their respective colours

 This PR was created with help from Hikari~ 🌸

Reviewed-on: #13
Co-authored-by: Hikari <hikari@nhcarrigan.com>
Co-committed-by: Hikari <hikari@nhcarrigan.com>
2026-03-31 17:33:35 -07:00
hikari 01d6da8a33 fix: disable mention pings in log messages
Node.js CI / CI (push) Successful in 28s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m51s
Add allowedMentions: { parse: [] } to all three log message builders
(activityMessage, modLogMessage, memberMessage) to prevent automated
log entries from accidentally pinging users.

Closes #12
2026-03-25 08:32:43 -07:00
hikari 1c31a49bc4 feat: rewrite as moderation bot (#11)
Node.js CI / CI (push) Successful in 29s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 55s
## Summary

- Replaces the old AI companion bot with a full Discord moderation system
- Adds 8 slash commands: `warn`, `mute`, `unmute`, `kick`, `softban`, `ban`, `unban`, `prune`
- Adds logging for member join/leave, activity (messages, threads, voice), and moderation actions
- Audit log integration captures manual bans, kicks, timeouts, and unbans
- All applicable actions post sanctions to the Hikari sanction API
- All commands are ephemeral, use Components v2, and enforce permission + role hierarchy checks

## Test plan

- [ ] Run `pnpm register` to register all 8 commands to the guild
- [ ] Verify each command appears in Discord and is only visible to members with the appropriate permissions
- [ ] Test each command against a valid target and confirm mod log entry, DM notification, and sanction record
- [ ] Test each command against an invalid target (equal/higher role, self, bot) and confirm correct error response
- [ ] Perform a manual ban, kick, and timeout in the Discord UI and confirm audit log handler picks them up
- [ ] Perform a manual unban and confirm it logs correctly without creating a sanction
- [ ] Verify join/leave messages appear in the welcome log channel
- [ ] Verify message edits, deletes, thread events, and voice state changes appear in the activity log channel

 This issue was created with help from Hikari~ 🌸

Reviewed-on: #11
Co-authored-by: Hikari <hikari@nhcarrigan.com>
Co-committed-by: Hikari <hikari@nhcarrigan.com>
2026-03-24 20:35:26 -07:00
naomi 76fe838987 chore: 2000 character chunks
Node.js CI / Lint and Test (push) Successful in 41s
2025-10-10 18:00:25 -07:00
naomi bfc52fbe85 feat: okay i hate the multiple messages, lets chunk instead
Node.js CI / Lint and Test (push) Successful in 36s
2025-10-10 17:58:21 -07:00
naomi 4300cf0d3f feat: add web search, stagger responses
Node.js CI / Lint and Test (push) Successful in 39s
2025-10-10 17:53:36 -07:00
naomi 94a4d7e043 fix: i figured out the thread issue
Node.js CI / Lint and Test (push) Successful in 39s
2025-10-09 16:23:27 -07:00
naomi 918c2982ac fix: okay i do not think the owner check is correct
Node.js CI / Lint and Test (push) Successful in 41s
2025-10-09 15:08:10 -07:00
naomi 2de490a3d7 fix: cost indentation
Node.js CI / Lint and Test (push) Successful in 39s
2025-10-09 15:06:52 -07:00
naomi 8eb0c19709 fix: guild intents
Node.js CI / Lint and Test (push) Successful in 39s
2025-10-09 15:05:56 -07:00
naomi 595c68deb6 fix: guild message intent
Node.js CI / Lint and Test (push) Successful in 39s
2025-10-09 15:03:34 -07:00
naomi ffb07f041d fix: missed a couple things guess was not quite done
Node.js CI / Lint and Test (push) Successful in 39s
2025-10-09 15:02:23 -07:00
naomi f20823f567 fix: couple of last copy-paste errors
Node.js CI / Lint and Test (push) Successful in 38s
2025-10-09 14:58:29 -07:00
naomi b384522ae1 feat: analytics
Node.js CI / Lint and Test (push) Successful in 40s
2025-10-09 14:57:26 -07:00
naomi eb554922b3 fix: server stuff
Node.js CI / Lint and Test (push) Successful in 39s
2025-10-09 14:25:16 -07:00
naomi 68f7eabe2c feat: initial prototype
Code Analysis / SonarQube (push) Failing after 19s
Node.js CI / Lint and Test (push) Has been cancelled
2025-10-09 11:28:47 -07:00