# Changelog

[All Releases](https://github.com/phrdang/enoch-bot/releases) | [All Tags](https://github.com/phrdang/enoch-bot/tags)

## v3.x.x

### v3.1.0

{% hint style="success" %}
**Latest**
{% endhint %}

#### New Commands

* `enochbug` & `enochidea` - Sends the link for the bug report/idea suggestions form of Enoch bot [#134](https://github.com/phrdang/enoch-bot/pull/134)

**Command Updates & Fixes**

* Update the `help` command to include the select menu and button features to paginate contents of the command [#130](https://github.com/phrdang/enoch-bot/pull/130)
* Change the `link` command to send the updated links [#143](https://github.com/phrdang/enoch-bot/pull/143) & [#145](https://github.com/phrdang/enoch-bot/pull/145)
* Update the `setup` command to change the process required to set up parent, student, or teacher permissions on Discord. Read the [new instructions](https://discord.code4tomorrow.org/get-started/setup) to learn more [#146](https://github.com/phrdang/enoch-bot/pull/146)

#### Under the Hood Changes

* Use a queue for sending emails to parents and teachers [#111](https://github.com/phrdang/enoch-bot/pull/111) & [#144](https://github.com/phrdang/enoch-bot/pull/144)
* Switch from the Discord.py library to use Pycord instead [#124](https://github.com/phrdang/enoch-bot/pull/124)
* Remove AWS dependencies from requirements [#128](https://github.com/phrdang/enoch-bot/pull/128)

#### Notes

* C4T parents and students can report bugs or send in suggestions for Enoch Bot through the link sent after using the commands `enochbug` or `enochidea`

#### Documentation Changes

* Update commands references of the [Links](/commands-reference/links.md) cog to account for the new command
* Update commands references of the [Setup](/commands-reference/setup.md) cog to account for the updated setup commands

### [v3.0.0](https://github.com/phrdang/enoch-bot/tree/3.0.0)

{% hint style="success" %}
**Latest**
{% endhint %}

#### New Commands

* `version` - Sends the current version of Enoch bot [#74](https://github.com/phrdang/enoch-bot/pull/74)

#### Command Updates & Fixes

* `setup member` can now be used in all C4T Discord servers [#47](https://github.com/phrdang/enoch-bot/pull/47)

#### Under the Hood Changes

* Develop a new sheet model for storing data of people [#47](https://github.com/phrdang/enoch-bot/pull/47)
  * Create new spreadsheet models for storing class, teacher, and student information
  * Create new spreadsheet models for storing C4T member and ambassador information
  * Update `setup.py` to reflect these new models
* Have Enoch bot send emails for student acceptances and rejections [#47](https://github.com/phrdang/enoch-bot/pull/47)
* Have the class code level digit of 4 represent Games courses (ex. Python Games) [#83](https://github.com/phrdang/enoch-bot/pull/83)
* Have the class code time digits of 7, 8, and 9 represent 7-8, 8-9, and 9-10 PM Pacific Time, respectively [#83](https://github.com/phrdang/enoch-bot/pull/83) & [#89](https://github.com/phrdang/enoch-bot/pull/89/files)
* Add emojis for the C and iOS App Development courses [#86](https://github.com/phrdang/enoch-bot/pull/86)

#### Notes

* Parents of C4T student applicants will now receive an email about whether or not their child was accepted into a certain class [#47](https://github.com/phrdang/enoch-bot/pull/47)

#### Documentation Changes

* Update commands references of the [Setup](/commands-reference/setup.md) and [Fun](/commands-reference/fun.md) cogs to account for the new and updated commands

## v2.x.x

### [v2.3.0](https://github.com/phrdang/enoch-bot/tree/v2.3.0)

**New Commands**

* `verifiedmode` - Toggles the verified mode (and scheduled jobs) of the bot
* `getvmode` - Sends the current verified mode of the bot
* `printjobs` - Sends all of the scheduled and pending jobs
* `setscore` - Sets score of the desired user to the score provided
* `givepoints` - Adds the given number of points to a specified user
* `viewdb` - Sends the XP database as a string
* `myscore` - Sends the score page on which your score lies on
* `scoreboard` - Sends the full scoreboard
* `cleardb` - Clears the XP database
* `rmscore` - Removes the given user's score from the database
* All of the commands above are from pull requests [#24](https://github.com/phrdang/enoch-bot/pull/24) and [#61](https://github.com/phrdang/enoch-bot/pull/61)

**Command Updates & Fixes**

* `gofundme` - Sends the new Code 4 Tomorrow GoFundMe link [#65](https://github.com/phrdang/enoch-bot/pull/65)
* `help` - No longer sends hidden commands in the cog summary [#63](https://github.com/phrdang/enoch-bot/pull/63)
* Update the welcome DM sent upon a user joining the C4T discord server [#61](https://github.com/phrdang/enoch-bot/pull/61)
* Fix typos in the confirmation messages of `textdown`, `voicedown`, and `roledown` [#68](https://github.com/phrdang/enoch-bot/pull/68)
* Fix bug in `setup addproj ios app development` where the role is not found on the server, even though it's there [#71](https://github.com/phrdang/enoch-bot/pull/71)
* Fix bug in `textdown` and `voicedown` where categories are marked as "deleted", even though they weren't [#69](https://github.com/phrdang/enoch-bot/pull/69)

**Under the Hood Changes**

* Add `database.db` to the `.gitignore` [#24](https://github.com/phrdang/enoch-bot/pull/24)
* Organize imports in `__init__.py` [#61](https://github.com/phrdang/enoch-bot/pull/61)
* Delete the `Courses` class from `cft.py` [#67](https://github.com/phrdang/enoch-bot/pull/67)
* Edit `build.sql` to only include user ID and XP points for the scoreboard [#24](https://github.com/phrdang/enoch-bot/pull/24)
* Add docstrings to `syntax` and `cmd_help` functions in `help.py` [#63](https://github.com/phrdang/enoch-bot/pull/63)
* Replace the `is_administrator` check with the `has_permissions(administrator=True)` check, which is built-in to the discord.py API [#61](https://github.com/phrdang/enoch-bot/pull/61)

**Documentation Changes**

* Update [Getting Started](/developer-guide/getting-started.md) to reflect on changes in the documentation and Enoch's verified mode and to clarify instructions with Git, bot tokens, and the contribution page
* Update commands references of the [Setup](/commands-reference/setup.md) and [Utility](/commands-reference/utility.md) cogs to account for the new commands
* Create [Development Process](/developer-guide/development-process.md) to give tips and instructions on how to write code/documentation for Enoch

### [v2.2.1](https://github.com/phrdang/enoch-bot/tree/v2.2.1)

**New Commands**

* `roleup` - Creates class cosmetic roles
* `roledown` - Deletes class cosmetic roles
* `convertroles` - For all users with the Student role, converts it to the Alumnus role. For all users with the Teacher role, converts it to the Former Teacher role.
* `textup` - Creates class text channels
* `textdown` - Deletes class text channels and empty channel categories.

**Command Updates & Fixes**

* `voiceup` - Does not create or edit class cosmetic roles anymore. Includes created category names in the results embed.
* `voicedown` - Includes deleted category names in the results embed.
* `classup` - Alias for doing `roleup`, `textup`, and `voiceup` all together
* `classdown` - Alias for doing `roledown`, `textdown`, `voicedown`, and `convertroles` all together
* `edocs` - Sends the new Enoch Bot documentation link ([enoch.code4tomorrow.org](https://enoch.code4tomorrow.org)), which is now under the Code 4 Tomorrow GitBook team
* All commands in the [Setup](/commands-reference/setup.md) cog will now send more detailed information in the event that an `HTTPException` is raised, specifically: the error text, the HTTP status code, and the Discord error code

**Under the Hood Changes**

* Condense class setup command error handlers into one function, `class_setup_error`

**Notes**

* Changes that apply to all of the class setup commands:
  * All commands that end in "down" (and also `convertroles`) now ask the user for a reaction confirmation before proceeding
  * All commands have adequate error handling/messages and output to tell the user what is happening/what happened after the command finishes
  * All commands require administrator permissions
* All major changes in this version were done in [#58](https://github.com/phrdang/enoch-bot/pull/58), which fixes [#57](https://github.com/phrdang/enoch-bot/issues/57).

**Documentation Changes**

* Update [Contributors](https://enoch.code4tomorrow.org/#contributing) list to reflect Neha P. leaving C4T
* Update [Getting Started](/developer-guide/getting-started.md) to tell new developers to join the C4T GitBook team
* Update [Miscellaneous and Resources](/developer-guide/miscellaneous-and-resources.md) with more external documentation links and explanation of branches vs. tags

### [v2.2.0](https://github.com/phrdang/enoch-bot/tree/v2.2.0)

**New Commands**

* `classdown` - Deletes class text and voice channels, deletes class roles, deletes all empty channel categories, and converts roles (Student -> Alumnus, Teacher -> Former Teacher) [#37](https://github.com/phrdang/enoch-bot/pull/37)
  * Uses reactions to confirm the classdown operation [#50](https://github.com/phrdang/enoch-bot/pull/50)
* `voicedown` - Deletes class voice channels [#51](https://github.com/phrdang/enoch-bot/pull/51) (partially fixes [#46](https://github.com/phrdang/enoch-bot/issues/46))
* `voiceup` - Creates class voice channels, class cosmetic roles, and class channel categories [#53](https://github.com/phrdang/enoch-bot/pull/53) (closes [#46](https://github.com/phrdang/enoch-bot/issues/46), [#55](https://github.com/phrdang/enoch-bot/issues/55))

**Command Updates & Fixes**

* `classup`
  * The `codes` argument is now optional. Providing no codes now executes the classup operation for all valid class codes on the class roster spreadsheet. [#38](https://github.com/phrdang/enoch-bot/pull/38)
  * Sets each class text channel's topic. [#38](https://github.com/phrdang/enoch-bot/pull/38)
  * Does not create duplicate class text channels/roles/categories if they already exist. [#38](https://github.com/phrdang/enoch-bot/pull/38)
  * Handles duplicate and invalid class codes. ([57bacf8](https://github.com/phrdang/enoch-bot/commit/57bacf8bbd2c83f272e063e64d8aa1d913e16f8f))
  * Sends its results and any runtime errors in embeds. ([57bacf8](https://github.com/phrdang/enoch-bot/pull/37/commits/57bacf8bbd2c83f272e063e64d8aa1d913e16f8f))
  * Fix issue where using this command too fast caused the bot to get rate limited by adding sleeps ([74519c5](https://github.com/phrdang/enoch-bot/pull/37/commits/74519c5c8266ca5628c4675236e9cdb97f284378))
  * Fix issue where C4T members don't have access to class text channels. [#56](https://github.com/phrdang/enoch-bot/pull/56) (partially fixes [#55](https://github.com/phrdang/enoch-bot/issues/55))
* `setup student` and `setup parent` - Activated for Summer 2021 classes ([5ca5fa3](https://github.com/phrdang/enoch-bot/commit/5ca5fa36cd063cb0c47d15398abd367d89520200))
* `attendance` - Sends the Notion attendance link [#52](https://github.com/phrdang/enoch-bot/pull/52)

**Under the Hood Changes**

* Stop writing to the class roster spreadsheet (this is a temporary "fix") due to issue [#41](https://github.com/phrdang/enoch-bot/issues/41)
* Add `is_administrator` check to manage sensitive class setup commands ([e0b23ca](https://github.com/phrdang/enoch-bot/commit/e0b23ca868148d442a43ad14cd8e734904256555))
* Bump `discord.py` to `1.7.3` ([49af283](https://github.com/phrdang/enoch-bot/commit/49af283458747568ef7c8c9e42ea3b574f660163))
* Add `name` attribute to the bot ([e27de8a](https://github.com/phrdang/enoch-bot/commit/e27de8a0328a25fc6da08183cc8311a73247096c))
* Update `README.md` ([47bb49d](https://github.com/phrdang/enoch-bot/commit/47bb49daf265768c67bf5067413bb1a4093a838f))
  * Specify that Enoch is deployed with AWS
  * Add Documentation and Installation sections
  * Update Contributing section with C4T Member application, developer qualifications, and updated contributor list

### [v2.1.0](https://github.com/phrdang/enoch-bot/tree/v2.1.0)

**New Commands**

* `setup ambassador` - Verifies a C4T ambassador, gives them the Ambassador role on the C4T Community server, and gives them pronoun roles (if any)
* `classup` - Creates private class text channels, course/level categories, and class roles
  * Can only be used by a user with administrator permissions

**Command Updates & Fixes**

* Update `setup` commands to notify users about how long it takes for the Google Sheets data to update on the bot
* Update `setup name` command
  * Update docstring
  * Remind users not to use brackets if they use them in this command (but still remove them automatically)
* Update `setup addproj` command
  * Add "ios app development", "ios app dev", "javascript", and "js" as valid project names
  * Add support for various shortened project names
  * Add "project" as a command alias
* Prevent `setup student` and `setup parent` commands from being used since student registration was still ongoing
* Activate the `setup teacher` command
* Send `help` messages in paragraphs if the entire message is longer than 1024 characters (the limit for an embed field's `value` attribute)
* Remove `is_member_server` check on the `folder` command
* Update `server` command docstring to reflect the removal of the `is_moderator` check in [v1.0.4](/changelog.md#v-1-0-4)

**Under the Hood Changes**

* Add support for C4T ambassador Google Sheet verification
* Update references to C4T Classes to C4T Community
* Check the guild ID instead of the guild name in the `on_member_join` function in `__init__.py`
* Add `PROJECT_ABBREVIATIONS` dictionary to `setup.py` to handle valid project names and valid project name abbreviations during setup commands
* [e8162b8](https://github.com/phrdang/enoch-bot/commit/e8162b886f97797fd3418695f1697609c0c384fb) Update Google Sheets write system to not write students and parents to classes that are already full (15 students written in the roster already)

### [v2.0.0](https://github.com/phrdang/enoch-bot/tree/v2.0.0)

**Command Updates & Fixes**

* The `directory` command now uses the shortlink ([code4tomorrow.org/directory](https://code4tomorrow.org/directory)) instead of the long super.so link
* The `classinfo` command can now be used by anyone with the C4T role (any C4T member), not just server administrators and those with the class role

**Under the Hood Changes**

* Use the new class sheet template to read/write class roster data
* Make `sheets.py` code more readable with docstrings and comments
* Improve Google Sheet reading/writing performance

## v1.0.x

### [v1.0.4](https://github.com/phrdang/enoch-bot/tree/v1.0.4)

**New Commands**

* `course` - Sends a link to one of C4T's courses on our website
* `courses` - Sends the link to the Courses page on C4T's website

**Removed Commands**

* `repository`
  * This command was merged with the `github` command
  * Using `+github` will send the C4T GitHub organization link, while using `+github [repo_name]` will send the link to that specific repository
* `thinkific`
  * Since C4T is no longer using Thinkific, the replacement command is `course`&#x20;
* `meet` was removed because C4T members no longer use Google Meet for team meetings

**Command Updates & Fixes**

* [01ea2ca](https://github.com/phrdang/enoch-bot/commit/01ea2ca6419560df764dcfd9b01a073efa23b8a7) Add more quotes to the `enoch` command
* [0c285e1](https://github.com/phrdang/enoch-bot/commit/0c285e1480edab0a5009c53128dc3a6e6f03d7d8) Update `setup` commands
  * `setup name`
    * Add examples of correct and incorrect cmd usage to docstring
    * Automatically remove <> and \[] characters from given display name
  * `setup student`
    * Specify that a `KeyError` occurs if the student can't be found
  * `setup teacher`
    * Update error message to make more sense for teachers
  * `setup parent`
    * Update error message to make more sense for parents
* [34b908c](https://github.com/phrdang/enoch-bot/commit/34b908c05917ddb25dfbd1c6bfa6d69277dc1b58) Update Links cog
  * Remove user mentions for link commands
  * Update `classinfo` error messages to be more specific and helpful
  * Add aliases to `bylaws` command
* Add user mentions for general error messages and setup command error messages
* Fix [#22](https://github.com/phrdang/enoch-bot/issues/22) by checking the user's `display_name` attribute rather than their `nick` attribute since `nick` defaults to the user's username
* Using `classinfo` and completing setup will now send the GitHub repository link and the course link (instead of just the Thinkific link)
* Command names are now case insensitive (e.g. `+github` and `+GITHUB` are equivalent)
* "contacts" was removed as a valid GitHub repository name for the `github` command
* Change setup so that COCO members no longer need to use `+setup addproj` since COCO doesn't have any projects
* Change name of valid COCO project from "tbd coco project" to "coco project" in the `setup addproj` command
* Fix bug in `setup done` command in which the C4T role would be added twice
* Remove "train" and "training" aliases of the `onboard` command since training

  articles are now located in the Team Wiki section of the C4T Notion, not on the onboarding site
* Add "onboarding" as an alias for the `onboard` command
* Add "community" and "ambassador" as valid server names

  in the `server` command
* Made `server` and `folder` command error messages more helpful by listing valid server and folder names
* Remove `is_member_server` check on the `directory` command

  since the directory is public on the C4T website now
* Add "discord" as an alias for the `guide` command
* Add "laws", "protocols", and "policies" as aliases for the `bylaws` command

**Under the Hood Changes**

* Catch `socket.timeout` exceptions
* Catch `BadUnionArgument` errors when processing commands
* Add misfire grace times to scheduled jobs (allows jobs to run slightly late rather than being missed completely)
* Refactor all references to the "C4T Classes" server to the "C4T Community" server
* Remove `is_moderator` check because it wasn't being used
* Guild checks now check if the current guild ID matches with another guild ID, rather than checking if the guild name matches
  * This is to avoid issues if a C4T server gets renamed

### [v1.0.3](https://github.com/phrdang/enoch-bot/tree/v1.0.3)

#### Command Updates & Fixes

* [#21](https://github.com/phrdang/enoch-bot/pull/21) `setup teacher` and `setup parent` now work without needing to enter codes&#x20;
  * Unlike the `setup student` command, the teacher and parent commands do not have the duplicate safety feature since there's no way currently to check if teachers/parents with the same name are actually different people
  * The commands still support adding codes, e.g. `+setup teacher 1111`.
* [aa743ca](https://github.com/phrdang/enoch-bot/commit/aa743cafcaecd7e9fd136fdc20d3f3c0592db703) Fix issue where `codes` is listed as a required argument for `setup student` , `setup teacher`, and `setup parent` commands

#### Under the Hood Changes

* [#21](https://github.com/phrdang/enoch-bot/pull/21) Fix issue where `\t` characters were found in spreadsheet cell values
* [877e9b3](https://github.com/phrdang/enoch-bot/commit/877e9b34b0d039130beffc6ea43014eb2196b1a8) Fix OAuth issue on AWS ec2 instance by copying `token.pickle` (this is probably not very secure, but it'll have to do for now)

### [v1.0.2](https://github.com/phrdang/enoch-bot/releases/tag/v1.0.2)

{% hint style="info" %}
Release: **Spring Classes 2021 Bot**
{% endhint %}

#### Removed Commands

* `course`

#### Command Updates & Fixes

* Update setup DM messages
* `repo` command now supports sending the ML and Tier Projects GitHub repositories
* Update `classinfo` command to work with Google Sheets functionality

#### Under the Hood Changes

* [#19](https://github.com/phrdang/enoch-bot/pull/19) , [#20](https://github.com/phrdang/enoch-bot/pull/20) Add Google Sheets functionality for student setup&#x20;
  * Add `StudTeachSheet` class to `cft.py` which represents data about the student-teacher matching Google Sheet
* Update meeting reminders to account for all team meetings and department meetings
* Add `Series` class to `cft.py` which represents data about the current class series (e.g. the Spring 2021 series)

### [v1.0.1](https://github.com/phrdang/enoch-bot/tree/v1.0.1)

#### New Commands

* `passwords` command sends the link to the passwords document
* `attendance` command sends the link to the attendance spreadsheet

#### Command Fixes & Updates

* Fix `onboard` command so it sends the correct link to [onboarding website](https://onboard.code4tomorrow.org)
* Add ML as a valid course name for user setup
* Update `thinkific` command
  * Add ML as a valid course name for the `thinkific` command
  * Fix bug where only the first word in the `course` argument was parsed
* `help` commands
  * Using `help` by itself now displays a list of cogs and their help commands
  * Using `help <cog_name>` now displays a list of commands in that cog
  * Using `help <cmd_name>` now displays a notice at the top explaining `< >` and `[ ]` should not be included when using the command
* `setup name` command no longer autocapitalizes and will change the nickname of the user to exactly what is passed as the `name` argument

#### Under the Hood Changes

* Add docstrings to cog classes (this is because by default the cog's description attribute is its docstring; the cog's description attribute is then used in the `help` command)
* Update Bot to work with C4T Classes Discord server (refactor references to C4T Teachers or C4T Students servers)
  * Refactor names of checks (e.g. `is_students_server()` is now `is_classes_server()`)
* Bump discord.py package version to `v1.6` and add all [Intents](https://discordpy.readthedocs.io/en/latest/api.html#discord.Intents) to the bot
* Change how Enoch handles unverified users
  * Instead of giving the Unverified role to all users upon joining the server, Enoch will not do anything
  * At 12 PM PST, Enoch will warn all users with only the @everyone role
  * At 12 AM PST, Enoch will kick all users with only the @everyone role
  * This is so that the C4T servers can take advantage of the new [rules screening feature](https://support.discord.com/hc/en-us/articles/1500000466882-Rules-Screening-FAQ) on Discord

## v0.1.x

### [v0.1.5](https://github.com/phrdang/enoch-bot/tree/v0.1.5)

#### Under the Hood Changes

* Update links, emails for Google Workspace

#### Command Changes

* folder
  * Add more aliases: shared\_drive, shareddrive, sdrive, google\_\_\_drive, googledrive, gdrive
  * Add "administrative" as a valid folder name
* setup addproj
  * HTML/CSS/JS is no longer a valid project name (renamed to Web Development)
  * Web Development now is called Website Design
  * This is to clarify the difference between the Web Dev curriculum development team and the C4T website team

#### New Commands

* emails - sends various C4T email addresses

### [v0.1.4](https://github.com/phrdang/enoch-bot/releases/tag/v0.1.4)

#### **Under the Hood Changes**

* [d7ec3b2](https://github.com/phrdang/enoch-bot/commit/d7ec3b23a86aad188b2a8efde08bfe6db784a196) Change server command to not send the deprecated C4T Teachers Discord invite link
* Bug fixes
  * [402e6d4](https://github.com/phrdang/enoch-bot/commit/402e6d43eea7ed8b3f7a3433cba82b65a3bec782) Fix server command to access links properly
  * [6b2a43c](https://github.com/phrdang/enoch-bot/commit/6b2a43ce92b1cccdf2545cabdb36b09014677102) Fix bug in setup done command where C4T role was not given upon setup completion
  * [b62f426](https://github.com/phrdang/enoch-bot/commit/b62f426aadf417059a2042704479df8fc0ca4563) Fix bug affecting adding project roles
  * [872b478](https://github.com/phrdang/enoch-bot/commit/872b478bad0ddd2c2b9c4c6119a851f2a46ceb48) Fix bug where COCO role couldn't be added

### [v0.1.3](https://github.com/phrdang/enoch-bot/releases/tag/v0.1.3)

#### Under the Hood Changes

* Update C4T knowledge base links

#### New Commands

* linkedin - sends the C4T LinkedIn link
* docs - sends the C4T Knowledge Base
* onboard - sends the C4T Onboarding site
* bylaws - sends the C4T Bylaws link
* edocs - sends the Enoch Bot documentation link

### [v0.1.2](https://github.com/phrdang/enoch-bot/releases/tag/v0.1.2)

* Add all team meeting reminders
* Fix setup for Volunteer Management

### [v0.1.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.1.1)

* Add setup done command

### [v0.1.0 ](https://github.com/phrdang/enoch-bot/releases/tag/v0.1.0)

{% hint style="info" %}
Release: **Fall Classes 2020 Bot**
{% endhint %}

Enoch Bot is now being used live on C4T servers! 🎉

#### New Commands

* [#13](https://github.com/phrdang/enoch-bot/pull/13)
  * `classinfo <code>` - sends information about a class (e.g. course, times, days, meeting links) if the user has that class role or is an administrator
  * `directory` - sends a link to the C4T directory
* [#15](https://github.com/phrdang/enoch-bot/pull/15)
  * `setup member <dept>` - sets up a C4T member on the Code 4 Tomorrow server by adding their primary department role
  * `setup addproj <project>` - adds a project role to a user

#### Major Under the Hood Changes

* Add GitBook docs under `./docs/`
* Hardcode class data
* [123394e](https://github.com/phrdang/enoch-bot/commit/123394e9a5254d206452e0a8b938758eaf547547) Add Enoch Dev Bot functionality to let developers run experimental Enoch commands while the original Enoch bot works
* [8755df7](https://github.com/phrdang/enoch-bot/commit/8755df750cd45f325adfdb7d2058c05dc4191f53) Update name of the Enoch test server to Enoch Developers
* [#14](https://github.com/phrdang/enoch-bot/pull/14) Merge `check_unverified` and `kick_unverified` into single, generalized `handle_unverified` function
* Rename references to "subteam" to "member" to accommodate new organizational model

#### Fixes

* [b45fea8](https://github.com/phrdang/enoch-bot/commit/b45fea88ffda7d68854f761f862cbe99cfb47eae) Fix error message when `setup teacher` used in the wrong server
* [e197177](https://github.com/phrdang/enoch-bot/commit/e19717729d72eb64de351b7c92730b7e4c17ba99) Fix unverified job times (accidentally switched 12 AM and 12 PM PT)
* [2b0306b](https://github.com/phrdang/enoch-bot/commit/2b0306b8d44fc9f7aa1ace97c231ec878366fb7a) Fix `setup name` capitalization bug where hyphenated names weren't capitalized properly

#### TODOs

* Google sheets verification (working on it - [phrdang/enoch-bot:sheets](https://github.com/phrdang/enoch-bot/tree/sheets))
* Update GitBook docs for v0.1.0

## v0.0.x

### [v0.0.11-beta.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.11-beta.1)

{% hint style="warning" %}
Pre-release: **Setup Subcommands**
{% endhint %}

#### Bot Updates

* Added checks to commands to restrict their access to trusted parties [#3](https://github.com/phrdang/enoch-bot/pull/3)
  * `slap` command was removed
* Added setup subcommands [#5](https://github.com/phrdang/enoch-bot/pull/5)
  * `diagnose` command works now and has expanded functionality
  * New `course` command for setting up teachers on C4T Teachers server
  * New `setup name` command for changing nickname during server setup
  * `help` command now shows subcommands

#### Under the Hood

* Update function/command docstrings
* Stopped using JSON files because of flake8 warnings when using \* import (see also: [#2](https://github.com/phrdang/enoch-bot/pull/2) )
* Hardcoded class/student/teacher/parent data because there wasn't enough time to learn the Google Sheets API before classes began [#4](https://github.com/phrdang/enoch-bot/pull/4)
* GitHub workflows now only trigger on pull requests because having PRs and push triggers is redundant [#5](https://github.com/phrdang/enoch-bot/pull/5)
* Fix multi-line string concatenation [#5](https://github.com/phrdang/enoch-bot/pull/5)

### [v0.0.10-beta.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.10-beta.1)

* Fix style
* Use black and flake8 workflows
* Add welcome instructions scheduler jobs
* Refactor C4T info variables
* Organize directory structure

### [v0.0.9-beta.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.9-beta.1)

{% hint style="warning" %}
Pre-release: **Enoch is \*actually\* (hopefully) working now**
{% endhint %}

#### Major feature changes

* Fixed `setup` command so that the bot doesn't need to be restarted/readded
  * `setup` command will now remove the **Unverified** role from the user if they completed 100% of the setup
  * `setup` command will now also send a user a "Setup Complete!" DM if they completed 100% of the setup (no errors)
  * `setup` command will now send a user a DM for each class they specified in the command, which contains class info (basically the attributes of each `Class` object)
* Added `on_member_join` event so that custom C4T welcome DM is sent to a user who just joined the server

#### Major under the hood changes

* Added `Class` class to make retrieving class info easier
* Started breaking up the `setup` function into helper functions to reduce complexity
* Started using `.json` files for links and class info instead of `.py` files
* Separated the `Default` cog into 2 cogs: `Links` and `Utility`

### [v0.0.8](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.8)

* Finish tutorial part 14 - custom help command, add basic C4T setup functionality

### [v0.0.8-beta.2](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.8-beta.2)

{% hint style="warning" %}
Pre-release: **Enoch bot is actually working now**
{% endhint %}

* Added an `enoch` (hidden) command to the Fun cog
* Added a "Playing Game" status for the bot to display the `help` command

### [v0.0.8-beta.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.8-beta.1)

{% hint style="warning" %}
Pre-release: **Enoch Bot Beta**
{% endhint %}

* Enoch bot is here! See features in [#1](https://github.com/phrdang/enoch-bot/pull/1).

### [v0.0.7](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.7)

* Finish tutorial Part 11 - command specific error handling

### [v0.0.6](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.6)

* Finish tutorial Part 10 - introduction to commands

### [v0.0.5](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.5)

* Finish tutorial Part 9 - introduction to cogs

### [v0.0.4](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.4)

* Finish tutorial Part 8 - scheduling tasks

### [v0.0.3](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.3)

* Finish tutorial Part 7 - handling errors

### [v0.0.2](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.2)

* Finish tutorial Part 6 - sending messages, embeds

### [v0.0.1](https://github.com/phrdang/enoch-bot/releases/tag/v0.0.1)

* Finish tutorial Part 5 - making the bot run


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://enoch.code4tomorrow.org/changelog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
