## About

A matrix bot that tracks visions and goals.

Add the bot to your Matrix room, and start telling it your goals. Then add tasks, and organize your goals by vision.

Works well with, and is included in [Cadbury, the many purpose Matrix bot](https://codeberg.org/EdTheDev/matrix-cadbury).

## Usage

Configure the necessary environment variables, and run with `make serve`.

Invite the bot to a Matrix channel, and it will accept automatically, if it can.

Use `!goal help`, to get started.

> Tip: Additional setup is required to add a Matrix bot to an encrypted channel.

```
    Prefix: !goal

    Synax:
        !goal COMMAND ARGS

    Commands:
      help - show this help
      add - add a goal
      add-task ID - add a task under the goal specified by ID
      add-vision - add a new vision (collection of goals)
      close-goal ID - mark goal done by ID
      close-vision ID - mark vision as complete by ID
      done ID - mark task done by ID
      list - list incomplete goals
      ... etc ...
```

This bot can also be invoked from the commande line with `invoke`.

    ```sh
    git clone https://codeberg.org/EdTheDev/matrix-goal-bot.git
    cd matrix-goal-bot
    make .venv
    source .venv/bin/activate
    invoke --list
    ```

## TODO List

- [x] fix error wrapper in chores and goals must print rather than return (38)
- [x] update goal bot to allow closing multiple tasks in one command (51)
- [x] add command to list goals with no vision (53)
- [x] update __str for a goal to display [DONE - YYYY.MM] if completed (54)
- [ ] update goal bot to be able to run multiple databases under different prefixes so that !someday could be a separate database file (55)
- [ ] assuming 55 above, update Cadbuary to include a separate `!someday` command as an example
- [ ] update goal bot to prefer last mentioned goal when adding tasks (see shop bot source code) (36)

## Support

As of the last update to this README, the expected End-of-Life date of this product is October 2028.

End-of-Life was decided upon based on these dependencies:

    - Python 3.12 (October 2028)
