Commit Graph

1004 Commits

Author SHA1 Message Date
Aminda Suomalainen d18ebd52fe .prettierrc.yaml: add proseWrap: always 2024-10-08 16:25:27 +03:00
Gnuxie 2f9f05256c Improve recovery status message spacing (#603)
* Improve safe mode status rendering.

Feedback from @jimmackenzie.

* Update interface-manager.
2024-10-07 19:25:45 +01:00
Gnuxie 3f103cc8fa Make recovery UX clearer. (#601)
First, we make it clear how to use the recovery options in the safe mode status command:

![Screenshot_20241007_100220](https://github.com/user-attachments/assets/07f49233-6bb1-4320-80c5-ac3aa22c1ef9)


Then a recovery option is used, we show the status of the persistent config again to reinforce to the moderator that the recovery option changed something and fixed it:

![Screenshot_20241007_102045](https://github.com/user-attachments/assets/58156a56-fe17-49e1-a93a-2591dd80aaef)

https://github.com/the-draupnir-project/planning/issues/29


* Tell people how to use recovery options in safe mode status.

* Display persistent config status when a recovery option is used.
2024-10-07 10:30:53 +01:00
Aminda Suomalainen ⚧ 7e27b057fc Fix pre-commit run --all-files, add check for executables and shebangs (#599)
* pre-commit autoupdate

* pre-commit: check executables have shebangs and shebang files are executable

* .pre-commit-config.yaml: also add check for illegal windows names

* {package.json,.pre-commit-config.yaml}: fix yarn-lint

* prettier --write for yarn-lint pre-commit hook to pass

* package.json: unquiet eslint
2024-10-06 13:22:14 +01:00
Catalan Lover 311beff587 Fix Entrypoint Perms. (#596) 2024-10-04 21:00:08 +02:00
Catalan Lover 9cc64074e1 Rename to Draupnir in Appropriate Places (#591)
* Rename to Draupnir in Appropriate Places

* Integrate Code review feedback on CHANGELOG.md
2024-10-04 20:32:10 +02:00
Gnuxie 39eb2984c5 Display persistent configs in safe mode (#592)
* Initial attempt at this, but I don't like it.

We've managed to cnofuse rendering/command layer again just because
we started with the rendering rather than the command lol.

* Remove side effects from config renderers.

* Improve rendering of persistent configs in safe mode.

We should really also expand by default, and array properties in
details instead. Otherwise a new user might not expand by default and
might not know what's wrong.

* Remove <details> from configs themselves.

* Color blind indicators for config status.

* When config are bodged just render their reasons on the same line.

* Hide stack trace behind details.

* Update for MPS 1.6.0.
2024-10-04 17:30:05 +01:00
gnuxie cb88aa52a1 v2.0.0-beta.7 v2.0.0-beta.7 2024-10-02 19:43:32 +01:00
Gnuxie 56627a417e Make sure config recovery handles vaild but unjoinable rooms. (#590)
* Make sure config recovery handles valid but unjoinable rooms.

Pretty sure that we missed this.

* Update to MPS 1.5.2 for more recovery options.
2024-10-02 19:12:26 +01:00
Gnuxie 890f004d3b Merge pull request #588 from the-draupnir-project/gnuxie/config-editor safe mode recovery
Safe Mode account data config recovery.
2024-10-02 17:30:39 +01:00
gnuxie d817810be9 Add more detail about safe mode to the config file. 2024-10-02 17:23:34 +01:00
gnuxie 98c1822013 Give some flexibility for when to enter safe mode. 2024-10-02 11:32:04 +01:00
gnuxie bd6c3c4455 WebAPIs.stop/start method was accidentally and implicitly async, fixed.
This was leading to integration test failures on CI, when the webserver
hadn't been stopped before it was started again in tests.
2024-10-02 11:32:04 +01:00
gnuxie ba6ec9bb9a Enter safe mode by default.
However, we still need to consider whether all errors should enter
safe mode or only errors that we know are recoverable.
2024-10-02 11:32:04 +01:00
gnuxie 88bf45b404 Update to MPS 1.5.0 for PersistentConfigData features. 2024-10-02 11:32:04 +01:00
gnuxie 05f662214c Add WatchedLists and EnabledProtections to config recovery test. 2024-10-01 13:12:37 +01:00
gnuxie 756d9c8491 Update DraupnirProtectedRoomsSet for more recoverable configs.
Added policy list config and protection settings.
2024-10-01 11:54:28 +01:00
gnuxie 72020e8ad6 Integration tests for recoring from protected rooms failure. 2024-09-30 12:14:00 +01:00
gnuxie 6b0e252e2a Make StandardDraupnirManager boot into safe mode too.
Appservice bots won't boot into safe mode otherwise.
2024-09-30 12:14:00 +01:00
gnuxie 2c8c2892ba Allow safe mode to be configured in appservice mode. 2024-09-30 12:14:00 +01:00
gnuxie 3c1cb07aa6 Create a fresh safe mode instance when restarting Draupnir.
Specifically, when restart Draupnir fails, and safe mode is already
running, we will want to create a fresh safe mode instance that
contains the relevant recovery options, from the new cause of failure.
2024-09-30 12:14:00 +01:00
gnuxie b9c05fbb6b Update interface-manager for better infrence on arbritrary renderers. 2024-09-30 12:14:00 +01:00
gnuxie 9ff0f54ff8 Automatically complete prompts from partial commands.
Fixes https://github.com/the-draupnir-project/Draupnir/issues/585.
2024-09-30 12:14:00 +01:00
gnuxie 8c74023374 Allow DraupnirSafeMode to respond to prompts. 2024-09-30 12:14:00 +01:00
gnuxie d4598d9c02 Add recover prompts to the safe mode status info. 2024-09-27 16:31:49 +01:00
gnuxie f9ff3ffdb3 Allow recover options to be used.
Now we just need to anotate the status information/command with
a partial command that calls the recover command.
2024-09-27 14:51:49 +01:00
gnuxie c556b21ac5 Display recovery options in safe mode status information. 2024-09-27 12:25:33 +01:00
Gnuxie 56cdc480f1 Update the README now that we're moving. (#575)
* Update the README now that we're moving.

* Elaborate on refactoring.
2024-09-20 20:14:48 +01:00
gnuxie fbdd146106 Harden MentionLimitProtection after Mjolnir's introduction of the protection.
From https://github.com/matrix-org/mjolnir/pull/524.

Co-authored-by: Half-Shot <will@half-shot.uk>
2024-09-20 16:09:31 +01:00
Gnuxie 6a6e24a7b6 Verify that commands have renderers and renderers have commands (#571)
* Upgrade to interface-manager@2.4.0.

* Verify that commands have renderers and renderers have commands.

https://github.com/the-draupnir-project/Draupnir/issues/566

* Fix appservice bot's missing renderers.
2024-09-20 12:55:16 +01:00
Marcel 4658ba2e60 Add a welcome flow to Draupnir4All (#568)
* Add a welcome flow to Draupnir4All

* Fix english

Co-authored-by: Gnuxie <50846879+Gnuxie@users.noreply.github.com>

* Use invitations instead of invites

---------

Co-authored-by: Gnuxie <50846879+Gnuxie@users.noreply.github.com>
2024-09-20 09:45:26 +02:00
Marcel ee1fad567c Start draupnir bots in batches when running in appservice mode (#569)
* Start draupnir bots in batches when running in appservice mode

* Simplify and add clarity.

---------

Co-authored-by: gnuxie <Gnuxie@protonmail.com>
2024-09-20 09:44:44 +02:00
Gnuxie 5ab32f9467 Merge pull request #567 from the-draupnir-project/gnuxie/safe-mode-appservice-integration-test
appservice provisioned draupnir safe mode test

https://github.com/the-draupnir-project/planning/issues/26
2024-09-19 20:18:39 +01:00
gnuxie 4c0e093c77 Fix draupnir manager for safe mode. 2024-09-19 20:12:07 +01:00
gnuxie 8f95c987ad Create a test for turning provisioned Draupnir to safe mode and back
Currently failing because the appservice draupnir manager is broken.
2024-09-19 17:52:53 +01:00
gnuxie f1f1440316 Add ProvisionTestHelper for testing appservice draupnir commands. 2024-09-19 15:26:35 +01:00
Gnuxie 4c5221237f Merge pull request #565 from the-draupnir-project/gnuxie/safe-mode-part-1
Initial safe mode (without editor or recovery options)

https://github.com/the-draupnir-project/planning/issues/26
2024-09-19 15:00:55 +01:00
gnuxie f1a6c8cfbf Change Draupnir['start'] to be synchronous. 2024-09-19 12:46:57 +01:00
gnuxie b52948b353 Forgot to start Draupnir listening in appservice.
We need to look at Draupnir's .start method and make it `void`.
The report poller should just throw if it fails without being
caught by `Task`.

We also need to test the `toggle` in appservice in integration
tests.
2024-09-19 12:27:39 +01:00
gnuxie 334aaa7233 Give safe mode config option a better name. 2024-09-18 19:53:58 +01:00
gnuxie 0895c58882 Allow manual launch script to use safe mode. 2024-09-18 18:47:13 +01:00
gnuxie 35ccf94794 Make integration test harness use the BotModeToggle. 2024-09-18 18:29:49 +01:00
gnuxie a92c95a0dd Make src/index.ts use the BotModeToggle to manage the bot.
Now we need to change the integration test's makeMjolnir do the same.
2024-09-18 18:08:36 +01:00
gnuxie d82a0b0731 Print status information when booting from and to safe mode. 2024-09-18 16:19:47 +01:00
gnuxie 4db7ce3872 Find a way to print draupnir status on startup from the toggle.
without disrupting e2ee.
2024-09-18 16:04:49 +01:00
gnuxie bd209848a3 Fix integration test fixtures now safe mode toggle controls draupnir. 2024-09-18 15:37:45 +01:00
gnuxie de6e4d7416 Add restart command to safe mode.
Currently integration tests will be broken because we took control
over "who starts Draupnir?" away and gave it to the `SafeModeToggle`.

So we need to fix that.
2024-09-18 15:28:05 +01:00
gnuxie 4f1b789501 Add a status command to safe mode. 2024-09-18 12:45:52 +01:00
gnuxie ed7b976404 Allow safe mode bot to respond to commands. 2024-09-17 19:15:39 +01:00
gnuxie 28718ca89b Remember to start the safe mode bot. 2024-09-17 19:13:34 +01:00