Releases: digitalgroundgame/DiscordProjectManager
Release list
v0.2.2-alpha: Unified Task Controls & Notification Polish
Alpha Release (v0.2.2-alpha)
This release consolidates task editing into a unified draft experience, eliminates duplicate activity logs and error notifications, and polishes interaction feedback.
🌟 Key Features & Improvements
1. Unified Task Controls & Draft UX (#50)
• Consolidated Task Action Bar: Replaced separate "Edit Details" and "Quick Controls" buttons with a single, streamlined "Edit Task" button (task:edit:{task_id}), maintaining backward compatibility for existing Discord action cards.
• In-Line Title & Description Staging: Introduced TaskQuickEditTitleModal, enabling users to edit both task title and body text directly within the staged draft panel.
• Description Clearing Support: Supports clearing existing task descriptions (clear_body=True) via empty modal submissions.
• Draft UX Polish: Styled draft embeds in gold/amber with a single clear footer status (⚠️ Unsaved Draft • Click 'Save Changes' to apply or 'Discard Changes' to cancel) and clean button grouping (Save Changes, Discard Changes, Edit Title / Body).
• Rate-Limit Aware Thread Sync: Thread renames are selectively triggered only when the title has actually changed, preventing Discord API rate limit penalties.
2. Ephemeral Note Modal Acknowledgments (#49)
• Clean Activity Stream: Submitting notes via TaskNoteModal now acknowledges ephemerally with a 6-second auto-dismissing toast instead of a public thread message, preventing duplicate note announcements in the thread.
3. Error Notification & Toast Dismissal Polish (#47)
• Duplicate Notification Prevention: Enhanced DggPmBot.on_app_command_error to respect command- and cog-level error handlers via _has_any_error_handlers(), preventing dual error alerts on command check failures.
• Followup Toast Auto-Dismissal: Configured deferred interaction error responses with wait=True to track and auto-dismiss followup WebhookMessage toasts cleanly.
Full Changelog: v0.2.1-alpha...v0.2.2-alpha
v0.2.1-alpha: Unified Team Lead Authorization
Alpha Release (v0.2.1-alpha)
This release introduces Unified Team Lead Authorization, allowing Discord Server Managers to delegate project and squad management capabilities to either custom Discord server roles or designated individual server members without requiring server-wide administrative permissions.
🌟 Key Features & Improvements
1. Unified Team Lead Delegation (Roles & Individual Members) (#44, #45)
- Individual Team Lead Authorization: Server Managers can designate specific trusted members or external leads directly without needing to create or maintain dedicated Discord roles, preventing role bloat.
- Unified Slash Commands:
/pm admin lead action:<add|remove|list> role:<@Role> user:<@Member>enables managing roles and individual members from a single command (with/pm admin lead-rolemaintained as a backwards-compatible alias). - Self-Healing on Server Departure: Automatic event-driven pruning (
on_member_remove) removes individual team lead records if an authorized member leaves the server. - Bot Guardrails: Slash commands automatically prevent bot accounts from being designated as Team Leads.
2. Interactive Admin UI (TeamLeadsAdminView)
- Interactive Multi-Picker Portal: The
/pm menubutton is updated to Team Leads, opening an embed portal featuring native DiscordRoleSelectandUserSelectdropdowns. - One-Click Actions: Easily assign or remove roles and individual users directly from interactive button components with real-time feedback.
3. Database Schema & Infrastructure
- Schema Migration: Added
0003_add_guild_lead_users.pycreatingguild_lead_userswith composite primary key(guild_id, user_discord_id)and indexed lookups. - Hexagonal Architecture: Added
IGuildLeadUserRepositoryport andPostgresGuildLeadUserRepositoryadapter wired intoSqlAlchemyUnitOfWork. - Auto-Wiring: View-layer helpers and pinned forum hub posts automatically inject lead user repositories.
4. Documentation & Test Coverage
- Wiki Documentation: Updated
Teams-and-Authorization.mdandSlash-Commands-Reference.mdreflecting individual team leads and unified commands. - Test Suite: Added unit, repository, cog, and menu test suites with 100% pass rate (393 tests passing).
Full Changelog: v0.2.0-alpha...v0.2.1-alpha
v0.2.0-alpha: Configurable Team Lead Roles & Docs Overhaul
Alpha Release (v0.2.0-alpha)
This release introduces Configurable Team Lead Roles, dynamic Discord UI/Hub controls, application command error ergonomics, and a comprehensive overhaul of project technical documentation.
🌟 Key Features & Improvements
1. Configurable Team Lead Roles & Authorization (#43)
- Granular Delegation: Server administrators can now designate custom Discord roles as "Team Leads" without granting full Discord Administrator permissions.
- Project & Squad Management: Team lead roles are authorized to create projects, launch squad threads, and manage assignments directly within their server.
- Guild Configuration Storage: Added database migration
0002_add_guild_lead_roleswithguild_lead_rolesmapping table and repository operations.
2. Discord UI & Hub Integration
- Contextual Action Buttons: The "Create Project" button dynamically appears in Project Hubs and Dashboards for users with designated Team Lead roles.
- Admin Configuration Menu: Interactive role selection dropdowns in
/pm adminallowing admins to view, assign, and revoke Team Lead roles seamlessly. - Cleaned Command Surface: Removed redundant squad slash commands in favor of Discord native roles and permissions.
3. Error Ergonomics & Reliability
- Graceful Error Feedback: Enhanced Discord bot check error handling (
MissingRole,MissingPermissions,CheckFailure) with clear, user-friendly ephemeral responses instead of generic slash command failures.
4. Documentation & Wiki Overhaul
- Modular Documentation: Migrated comprehensive operational, architecture, workflow, deployment, and local development guides into structured wiki documents in
docs/wiki/. - Streamlined README: Concise, developer-friendly landing page focusing on quickstart, NixOS/devenv support, and core concepts.
Full Changelog: v0.1.0-alpha...v0.2.0-alpha
v0.1.0-alpha: Alpha Release
Alpha Release (v0.1.0-alpha)
We are excited to announce the official Alpha Release of DiscordProjectManager (dgg-pm)!
This milestone establishes the core task management lifecycle, collaborator ergonomics, operational safety rails, and Discord API / Gateway outage resilience for early adopter communities.
Key Capabilities
1. Contributor Ergonomics & Self-Assignment
- 1-Click Self-Assignment (#23): Interactive
Claim TaskandUnassign Mebuttons mounted on task action cards. - In-Thread Context Awareness (#23): Slash commands executed inside a task thread automatically resolve the target task without requiring the
taskparameter.
2. Safety Rails & Data Integrity
- Task Deletion & Cascading Purge (#24): Interactive
/pm task deleteconfirmation workflow with permission checks, thread archiving/deletion, and dependency severance audit trail. - Dependency Invalidation Guard (#28): Intercepts attempts to start or complete blocked tasks, displaying active blocker warnings and requiring interactive confirmation to proceed.
3. Discord API Rate-Limit Protection
- Thread Rename Rate-Limiter (#32): Enforces Discord's strict 2-renames-per-10-minutes limit with sliding window tracking, debouncing, and deferred execution.
- Startup Slash Command Protection (#33): Selective command syncing on boot controlled via
SYNC_COMMANDS_ON_STARTUPto prevent 429s and Gateway session exhaustion on container restarts. Addedpython -m src.cli sync-commands(andmake sync-commands).
4. Outage Resilience & Gateway Supervision
- Gateway Connection Supervisor (#37): Exponential backoff with randomized jitter for transient network/Discord outages; fast failure with clear diagnostics for fatal auth/permissions errors.
- Extended Outbox Retention (#36): Capped exponential backoff and 24-48h retention to prevent notification loss during prolonged outages.
- Outbox Auto-Reclaim (#38): Automatically reclaims and retries failed outbox notifications upon Gateway reconnection.
5. Developer Experience & Packaging
- Migrated local development tooling from Nix flake to
devenv.nix(#30). - Added official bot invite links to documentation.
- Streamlined
.env.exampleto essential secrets with static defaults insrc/config.py.
v0.0.1-pre-alpha.1
Testing our release functionality.