store: PR review: major-domo-v2#62 — maintenance mode flag in /admin-maintenance
This commit is contained in:
parent
e6bdac66c8
commit
a0218b428e
@ -0,0 +1,33 @@
|
||||
---
|
||||
id: 5cdfc099-7916-440a-a711-1a47ad8dc3bd
|
||||
type: workflow
|
||||
title: "PR review: major-domo-v2#62 — maintenance mode flag in /admin-maintenance"
|
||||
tags: [pr-reviewer, major-domo, discord-bot, python, discord.py, maintenance-mode, tree-interaction-check, approved]
|
||||
importance: 0.4
|
||||
confidence: 0.8
|
||||
created: "2026-03-03T18:33:25.436987+00:00"
|
||||
updated: "2026-03-03T18:33:25.436987+00:00"
|
||||
---
|
||||
|
||||
## Verdict: APPROVED (posted as COMMENT due to Gitea self-approval restriction)
|
||||
|
||||
### PR Summary
|
||||
Fixes #28. `/admin-maintenance` previously showed a success embed but never changed state. This PR implements the actual flag.
|
||||
|
||||
### Files Reviewed
|
||||
- `bot.py` — added `self.maintenance_mode: bool = False` to `SBABot.__init__`; registered `@self.tree.interaction_check` inside `setup_hook` to block non-admin users when flag is set
|
||||
- `commands/admin/management.py` — wired `self.bot.maintenance_mode = is_enabling`, added logger.info, removed no-op comment; rest is formatting cleanup
|
||||
|
||||
### Key Findings
|
||||
- Pattern is correct: nested function in `setup_hook` captures `self` via closure, always reads live flag value
|
||||
- Admin bypass uses `isinstance(interaction.user, discord.Member) and interaction.user.guild_permissions.administrator` — mirrors existing `AdminCommands.interaction_check` pattern
|
||||
- No double-response risk: ephemeral message sent before returning `False`
|
||||
- `self.bot.maintenance_mode` typed as `commands.Bot` not `SBABot` — runtime safe, would fail strict mypy (pre-existing pattern, not blocked)
|
||||
- No new tests added; acceptable for simple boolean flag feature
|
||||
|
||||
### Patterns Noted
|
||||
- `@self.tree.interaction_check` inside `setup_hook` is idiomatic discord.py for global interaction gates
|
||||
- `EmbedTemplate.create_base_embed()` correctly used when title contains custom emoji (per CLAUDE.md rule)
|
||||
|
||||
### Meta
|
||||
- Gitea blocks self-approval on own PRs — reviewer must post as COMMENT in this case
|
||||
Loading…
Reference in New Issue
Block a user