leander and Claude Opus 5.5
b8da764bd8
upgrade discord.py to 2.7
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 22:04:55 +02:00
leander and Claude Opus 5.5
b24fb03af2
upgrade python-dotenv to 1.2
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 22:04:55 +02:00
leander and Claude Opus 5.5
5f78de8631
upgrade asyncpg to 0.32
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 22:04:55 +02:00
leander and Claude Opus 5.5
f6468b0d7b
upgrade the docker images to python 3.14
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 22:04:55 +02:00
leander and Claude Opus 5.5
be64ced94e
use the request-first TemplateResponse signature
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 22:04:45 +02:00
leander and Claude Opus 5.5
d6091b8c86
fix stale status emoji ids in the bot env example
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:51:54 +02:00
leander and Claude Opus 5.5
6a5d67ac09
check the galtinn user id from the notification instead of sending an ignored filter
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:51:54 +02:00
leander and Claude Opus 5.5
8cd4961e74
return None instead of raising when a galtinn request fails
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:49:25 +02:00
leander and Claude Opus 5.5
745412ac48
share one http session with a timeout for galtinn requests in the bot
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:49:25 +02:00
leander and Claude Opus 5.5
8990ccce06
merge the galtinn pagination helpers into one
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:49:24 +02:00
leander and Claude Opus 5.5
0b7412de70
keep the paginator within its page range
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:41:21 +02:00
leander and Claude Opus 5.5
a351ded028
append to one log file that rotates at midnight
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:41:21 +02:00
leander and Claude Opus 5.5
5aeaba22ec
stop summing the total count across galtinn pages
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:41:21 +02:00
leander and Claude Opus 5.5
ff8f794524
show a warning in /guild ikon when the server has no icon
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:41:21 +02:00
leander and Claude Opus 5.5
967ae4bd5e
add doctype and viewport to the verification pages
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:38:10 +02:00
leander and Claude Opus 5.5
befa4dcaf8
only accept the leave confirmation on the confirmation message
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:38:10 +02:00
leander and Claude Opus 5.5
111c84ad9f
fix KeyError in /guild info for the highest verification level
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:38:09 +02:00
leander and Claude Opus 5.5
1f25407210
log prefix commands after they run so failures show up
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:38:09 +02:00
leander and Claude Opus 5.5
a5e7590cfc
fix doubled word in error messages and use 502 for token failures
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:36:05 +02:00
leander and Claude Opus 5.5
266367dff5
take an optional guild id in leave instead of a tuple
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:36:05 +02:00
leander and Claude Opus 5.5
7eaf6f1d0f
stop resetting the cooldown when the error is the cooldown itself
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:36:05 +02:00
leander and Claude Opus 5.5
d12d92a7a9
send long role lists from memory instead of a missing temp dir
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:36:05 +02:00
leander and Claude Opus 5.5
f0039ee240
show an error page when galtinn redirects back without a code
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:34:37 +02:00
leander and Claude Opus 5.5
f08cb453ec
stop reloadall and reloadunloaded failing on unloaded cogs
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:34:37 +02:00
leander and Claude Opus 5.5
1c80ed1dfa
handle CheckFailure subclasses before ignoring check failures
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:34:36 +02:00
leander and Claude Opus 5.5
76dbdb1f0a
read BOT_CONFIG_MODE instead of CONFIG_MODE when syncing commands
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:30:18 +02:00
leander and Claude Opus 5.5
c8fb7976b0
use send_help in the cogs command group
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:30:18 +02:00
leander and Claude Opus 5.5
7dba79d4c0
fix empty role list breaking /bruker info for members without roles
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:30:18 +02:00
leander and Claude Opus 5.5
4b82e92d15
fix logging error on every ignored prefix command error
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:30:18 +02:00
leander and Claude Opus 5.5
b6915bf135
default presence env vars so on_ready doesn't crash when unset
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:28:30 +02:00
leander and Claude Opus 5.5
05603326e6
make guild and bruker command groups guild only
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:28:30 +02:00
leander and Claude Opus 5.5
023d94378b
make viteboka requests async with a timeout
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:28:30 +02:00
leander and Claude Opus 5.5
68289af070
fix slash command errors never reaching the user
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 21:28:21 +02:00
leander
b87a617a55
nårsk r vanskeli
2026-10-23 20:50:40 +02:00
leander and Claude Opus 5.5
5867bbe587
remove leftover debug prints in get_guild_member
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:49:03 +02:00
leander and Claude Opus 5.5
2b5abc14d8
show an error page when galtinn returns no access token
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:48:59 +02:00
leander and Claude Opus 5.5
30558eaa45
share one http session with a timeout for galtinn requests in the verification server
...
Unreachable or slow Galtinn requests now show an error page instead of a 500
or hanging the request.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:48:47 +02:00
leander and Claude Opus 5.5
268f593e69
replace deprecated on_event hooks with a lifespan handler
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:48:06 +02:00
leander and Claude Opus 5.5
0849f069d1
fix GALTIINN_CLIENT_ID typo in verification server
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:47:20 +02:00
leander and Claude Opus 5.5
579d3f282a
remove asyncio from requirements
...
The PyPI asyncio package is an outdated backport. asyncio is part of the
standard library.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:47:14 +02:00
leander and Claude Opus 5.5
4827d84f77
add missing = to BOT_EMOJI_DND in bot env example
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:47:14 +02:00
leander and Claude Opus 5.5
665f8deb28
unlink before removing roles in delete, and remove them from the guild member
...
Removing roles first left the user linked but without roles when the
deletion failed. interaction.user is not a guild member when the command
is used in DMs, so the member is now looked up in the guild.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:47:08 +02:00
leander and Claude Opus 5.5
7d782690c5
show an error instead of crashing when galtinn can't be reached in register and delete
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:46:23 +02:00
leander and Claude Opus 5.5
28a61b42a1
keep the membership check going when a single user fails
...
An unhandled exception, e.g. from a user without a discord profile, stopped
the task loop until the bot was restarted.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:45:46 +02:00
leander and Claude Opus 5.5
a8168ec323
fetch galtinn group roles once per membership check instead of per user
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:45:21 +02:00
leander and Claude Opus 5.5
aef7753751
resolve roles with at most one fetch_roles call per update
...
Previously every role missing from the cache triggered its own fetch_roles
call, for every user in the membership check.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:44:44 +02:00
leander and Claude Opus 5.5
3e4561367c
only send role changes the member doesn't already have
...
add_roles and remove_roles make one API call per role, and every role linked
to any Galtinn group was removed from every user on every run.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:44:20 +02:00
leander and Claude Opus 5.5
9d72cf9da6
skip unresolvable and unmanageable roles instead of aborting the whole update
...
A single deleted or too-high role linked to any Galtinn group was part of
every user's removal set, which made role updates fail for all users.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:44:09 +02:00
leander and Claude Opus 5.5
0737a2c322
reconnect the db listener when its connection is lost
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:43:09 +02:00
leander and Claude Opus 5.5
346b4558bd
give the db listener a dedicated connection that is closed on cog unload
...
The listener previously held a pool connection that was never released and
kept its callback registered after a reload, so every reload leaked a pool
connection and added another handler for each notification.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-23 02:42:05 +02:00