> For the complete documentation index, see [llms.txt](https://enoch.code4tomorrow.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://enoch.code4tomorrow.org/1.0.3/changelog.md).

# Changelog

Updates to the bot as the versions progress

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

## v1.0.x

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

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

#### 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, googl&#x65;*\_*&#x64;rive, 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](https://phrdang.gitbook.io/enoch-bot) 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
