Skip to content

Releases: digitalgroundgame/DiscordProjectManager

v0.2.2-alpha: Unified Task Controls & Notification Polish

Choose a tag to compare

@espdesign espdesign released this 24 Sep 23:13

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

Choose a tag to compare

@espdesign espdesign released this 24 Sep 12:01

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-role maintained 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 menu button is updated to Team Leads, opening an embed portal featuring native Discord RoleSelect and UserSelect dropdowns.
  • 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.py creating guild_lead_users with composite primary key (guild_id, user_discord_id) and indexed lookups.
  • Hexagonal Architecture: Added IGuildLeadUserRepository port and PostgresGuildLeadUserRepository adapter wired into SqlAlchemyUnitOfWork.
  • 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.md and Slash-Commands-Reference.md reflecting 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

Choose a tag to compare

@espdesign espdesign released this 17 Sep 23:35

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_roles with guild_lead_roles mapping 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 admin allowing 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

Pre-release

Choose a tag to compare

@espdesign espdesign released this 13 Sep 16:40
f217b93

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 Task and Unassign Me buttons 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 task parameter.

2. Safety Rails & Data Integrity

  • Task Deletion & Cascading Purge (#24): Interactive /pm task delete confirmation 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_STARTUP to prevent 429s and Gateway session exhaustion on container restarts. Added python -m src.cli sync-commands (and make 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.example to essential secrets with static defaults in src/config.py.

v0.0.1-pre-alpha.1

v0.0.1-pre-alpha.1 Pre-release
Pre-release

Choose a tag to compare

@espdesign espdesign released this 13 Sep 01:34

Testing our release functionality.