feat: Multi-guild support implementation

- Added multi-guild support with comma-separated AllowedGuildIDs config
- Per-guild embed tracking with isolated state
- Per-server action locking to prevent race conditions across guilds
- Cross-guild embed updates after power actions
- Debug logging for embed update triggers
- Fixed resource usage field formatting (brackets now properly closed)
- Updated config.ini.sample, generate_config.py for backward compatibility
- Updated README.md with multi-guild documentation
- Updated tests for multi-guild support
This commit is contained in:
k.eaven committed 2026-10-30 10:37:13 +00:00
1 parent e68b248033
commit bec06bd909
10 files changed
+802 -408

No files matched your search

+7 -1
View File
@@ -101,11 +101,17 @@ class ServerListResponse(BaseModel):
class EmbedLocation(BaseModel):
"""Embed location tracking data."""
"""Embed location tracking data with guild context."""
guild_id: int
channel_id: str
message_id: str
# Composite key for storage
@property
def storage_key(self) -> str:
return f"{self.guild_id}:{self.channel_id}:{self.message_id}"
# Rebuild models to resolve forward references
ResourceAttributes.model_rebuild()