Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure feature parity with non-SDK features in old bot code #3

Open
2 tasks
Arlodotexe opened this issue Dec 29, 2024 · 0 comments
Open
2 tasks

Ensure feature parity with non-SDK features in old bot code #3

Arlodotexe opened this issue Dec 29, 2024 · 0 comments
Assignees
Labels
areas::processes::planning High-level strategy and planning areas::product::release Affects a project in release form, as consumed by users areas::product::source Affects product source (code, etc) tasks::features::new New features tasks::review::compliance Alignment with standards or regulations tasks::review::design Setup, architecture or design patterns tasks::review::functional Alignment with specifications and requirements

Comments

@Arlodotexe
Copy link
Member

Arlodotexe commented Dec 29, 2024

The MVP for the Server Companion rewrite must have feature parity with the old bot.

While we've been hard at work over the past year planning and building our vNext architecture for SDK features, the bot features which don't depend on our database or SDK are simpler and can be implemented in tandem.

To that end, this document reviews and tracks the various features in our "old infra" which can be implemented now without the use of our SDK.

Existing non-SDK features

The original TypeScript code used Discord.js, but we'll be using Remora for our rewrite implementation.

We already have an end-to-end testbed setup for developers to run the bot rewrite in our test server.

  • Documentation is pending, follow-up review in another issue.
  • Talk to a staff member for access, we'll set you up 1:1 for now

Commands

The commands that need consideration can be found at uwpcommunity-backend/tree/dev/src/bot/commands. Each file is a command that can be run, and the default TS import declares the parameters.

As of a75cc7ac5bd3761aef25f4aebd869cfcd23cbce4, these are:

  • autoregister.ts
  • getuser.ts
  • infraction.ts
  • news.ts
  • ping.ts
  • portal.ts
  • project.ts
  • role.ts
  • staffpoll.ts
  • syncroleswithbackend.ts

The only commonly used commands here are:

  • infraction.ts
  • portal.ts
  • project.ts

Of these three commands, the project command is part of our SDK, so only the infraction system and the portal command are left to be implemented without it.

Events

Events that may need implemented can be found at uwpcommunity-backend/tree/dev/src/bot/events.

As of 1cedacadb69534dc6a42d9ac24492684b2192873, these are:

  • messageHandlers
    • devChatterWarning.ts: Does a very specific and relaxed check for certain indicators of developer topics being discussed and warns when in an explicitly user-friendly channel.
    • swearFilter.ts: Detects certain explicit words that are blacklisted from being said, as well as whitelist exceptions.
  • guidMemberRemove.ts: Deletes registered user data and projects when they leave the server.
  • messageCreate.ts: Simply imports the messageHandlers listed above
  • messageDelete.ts: Captures deleted messages for moderators only.
  • messageUpdate.ts: Handles the swear filter on message update.

Required work

Commands

The infraction system and portal command need to be implemented in the new bot using Remora.

  • These should use slash commands
  • They should be functionally identical to the old code, except where otherwise noted.

Events

Only the swear filter and dev-chatter warning need to be implemented for now.

  • They should be functionally identical to the old code, except where otherwise noted.

Details and requirements will be filed in separate tickets from here. Come back soon.

Tasks

Preview Give feedback
  1. 0 of 2
    areas::processes::planning areas::product::source tasks::features::new
    Arlodotexe
  2. 0 of 2
    areas::processes::planning areas::product::source tasks::features::new tasks::review::design tasks::review::functional
@Arlodotexe Arlodotexe added areas::processes::planning High-level strategy and planning areas::product::release Affects a project in release form, as consumed by users areas::product::source Affects product source (code, etc) tasks::features::new New features tasks::review::compliance Alignment with standards or regulations tasks::review::functional Alignment with specifications and requirements tasks::review::design Setup, architecture or design patterns labels Dec 29, 2024
@Arlodotexe Arlodotexe self-assigned this Dec 29, 2024
@Arlodotexe Arlodotexe moved this to In Review in Windows App Community Dec 29, 2024
@Arlodotexe Arlodotexe moved this from In Review to In Progress in Windows App Community Dec 29, 2024
@Arlodotexe Arlodotexe moved this from In Progress to Ready in Windows App Community Dec 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
areas::processes::planning High-level strategy and planning areas::product::release Affects a project in release form, as consumed by users areas::product::source Affects product source (code, etc) tasks::features::new New features tasks::review::compliance Alignment with standards or regulations tasks::review::design Setup, architecture or design patterns tasks::review::functional Alignment with specifications and requirements
Projects
Status: Ready
Development

No branches or pull requests

1 participant