1347 Commits

Author SHA1 Message Date
Catalan Lover 2a39b21d62 Prefer the initialManager option in default.yaml over managementRoom (#1122)
Docker Hub - Develop / docker-latest (push) Failing after 26s
GHCR - Development Branches / ghcr-publish (push) Failing after 25s
Tests / Build & Lint (push) Failing after 2m34s
Tests / Unit tests (push) Successful in 3m9s
Tests / Integration tests (push) Failing after 15s
Tests / Application Service Integration tests (push) Failing after 11s
* Move to use initial manager as default

* Add Changeset Entry

* Move mangement room options up in the default config

They are more important than the other bullshit

* Improve clarity of management room options in default.yaml

---------

Co-authored-by: gnuxie <Gnuxie@protonmail.com>
2026-05-07 14:56:13 +01:00
gnuxie 3bbca89bf0 v3.1.0 v3.1.0 2026-05-07 14:01:00 +01:00
Gnuxie c0822ec957 update package info to reflect Apache-2.0 licensing (#1123) 2026-05-07 12:19:34 +01:00
Catalan Lover e8e4696517 Update Configuration file wording for protected rooms and symbol prefix. (#1121)
Today i got reminded about that our config still thinks various wrong things like that the management room is excluded from protect all rooms when the management room is always protected.

So this PR fixes a few of these config errors.

* Update Configuration file wording.

* Add Changeset Entry
2026-05-07 11:09:16 +01:00
Catalan Lover 781d55db8b Zero Touch Provisioning Support Stage 1 (#1070)
Tests / Build & Lint (push) Failing after 2m41s
Tests / Unit tests (push) Successful in 2m58s
Tests / Integration tests (push) Failing after 21s
Tests / Application Service Integration tests (push) Failing after 11s
GHCR - Development Branches / ghcr-publish (push) Failing after 12m54s
Docker Hub - Develop / docker-latest (push) Failing after 13m51s
Starts us down the path of fixing https://github.com/the-draupnir-project/Draupnir/issues/1023

This PR gets us Zero Touch Provisioning support for AS mode and Bot mode. If your env can take usr and pswd and turn it into access tokens or however you want to do that then well we dont need to do PSWD Auth at all.

If you dont PSWD auth is useful for this and is probably what i will resort to in mdad for Zero Touch Provisioning.

Draft as this PR is very much not even mx-tested because mx-tester decided to say nope cat.

* Zero Touch Provisioning Support

* Update Account data keys to Gnuxie Suggested Values

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

* Refine ZTD

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

* Refine Config validation

* Run Prettier

* Fix Test Linting

* Refine ZTD Branch by removing leftover config values.

* Remove fallback management room value as it breaks ZTP

* Fix config validation having Truthy problems

* Fix dangling import.

* Fix config validation error.

* Revert "Fix config validation error."

This reverts commit c313dcbb52.

* Remove fake cast on config.initialManager

* note only available in develop while we fix shit

* Stop tests from accessing config.managementRoom directly.

---------

Co-authored-by: Gnuxie <50846879+Gnuxie@users.noreply.github.com>
Co-authored-by: Gnuxie <Gnuxie@users.noreply.github.com>
Co-authored-by: gnuxie <Gnuxie@protonmail.com>
2026-05-05 11:51:50 +01:00
Catalan Lover 4f41f0000c Relicense all AFL-3.0 to Apache-2.0 (#1117) 2026-05-05 12:31:43 +02:00
Catalan Lover 3c021e1f01 Fix Policy Notification Protection only inviting joined users (#1114)
Docker Hub - Develop / docker-latest (push) Failing after 26s
GHCR - Development Branches / ghcr-publish (push) Failing after 24s
Tests / Build & Lint (push) Failing after 2m31s
Tests / Unit tests (push) Successful in 3m3s
Tests / Integration tests (push) Failing after 15s
Tests / Application Service Integration tests (push) Failing after 14s
2026-05-04 12:50:27 +02:00
Catalan Lover f3e29fb3be Add Avatar Customisation Commands (#1108)
Tests / Build & Lint (push) Failing after 2m30s
Tests / Unit tests (push) Successful in 2m58s
Tests / Integration tests (push) Failing after 14s
Tests / Application Service Integration tests (push) Failing after 16s
GHCR - Development Branches / ghcr-publish (push) Failing after 13m10s
Docker Hub - Develop / docker-latest (push) Failing after 14m5s
* Add Avatar Command to bot mode and AS mode

* Add changesets

* Move MXC URI validation to matrix basic types

* Fix MediaID being mixed case when its exempt from usual case rules.

* Update changeset

* Integrate Gnuxie Review Feedback

* Fix linting errors

* Fix having forgotten to run prettier.

* Integrate Gnuxie review feedback.

* Fix version.txt.tmp files
2026-05-01 16:40:10 +01:00
Gnuxie 60eeb86415 Tighten ActionException wrapping to only accept Error. (#1111)
Docker Hub - Develop / docker-latest (push) Failing after 31s
Tests / Build & Lint (push) Failing after 2m39s
Tests / Unit tests (push) Successful in 2m52s
Tests / Integration tests (push) Failing after 16s
Tests / Application Service Integration tests (push) Failing after 16s
GHCR - Development Branches / ghcr-publish (push) Failing after 12m26s
* Tighten ActionException wrapping to only accept Error.

For months we had a bug where the "exception kind" enum was being
provided as the error instead of the wrapped error in bot sdk wrapper
code. This exception kind enum was optional in the factory method
being used for the MatrixException type and so this resulted in
draupnir reporting simply `undefined` when there were errors.  Which
was a major issue because not only did it make it difficult to track
problems down, but it made the software look like shit. Remarkably we
were still able to remotely diagnose problems essentially blind here.
But it was caused by the ActionException accepting `unknown` for Error
in order to tolerate a number of causes. We figure that this is
unacceptable because it allows for these kinds of bugs and also that
it delays finding out where we are calling broken apis.

Closes https://github.com/the-draupnir-project/Draupnir/issues/759.
Closes https://github.com/the-draupnir-project/planning/issues/137.

* Flakey test idk.
2026-04-30 19:14:15 +01:00
Catalan Lover ad4ce0706f Add command to set display name for main bot in AS mode (#1103)
Docker Hub - Develop / docker-latest (push) Failing after 22s
GHCR - Development Branches / ghcr-publish (push) Failing after 23s
Tests / Build & Lint (push) Failing after 2m24s
Tests / Unit tests (push) Successful in 3m1s
Tests / Integration tests (push) Failing after 13s
Tests / Application Service Integration tests (push) Failing after 15s
2026-04-28 13:51:04 +02:00
Gnuxie 56c904880f Split semantic type into two steps, describe and verify. (#1106)
Docker Hub - Develop / docker-latest (push) Failing after 26s
GHCR - Development Branches / ghcr-publish (push) Failing after 23s
Tests / Build & Lint (push) Failing after 2m26s
Tests / Unit tests (push) Successful in 3m2s
Tests / Integration tests (push) Failing after 13s
Tests / Application Service Integration tests (push) Failing after 11s
It is a pain in the ass to write the checks but the information itself
is still valuable when refactoring. So I'd rather we still encourage
people to write this shit down even if they don't write the checks.

Closes https://github.com/the-draupnir-project/planning/issues/132
2026-04-27 12:19:26 +01:00
Gnuxie a4c4158443 Make ProjectionNode reduction single-step (#1100)
GHCR - Development Branches / ghcr-publish (push) Failing after 32s
Docker Hub - Develop / docker-latest (push) Failing after 33s
Tests / Build & Lint (push) Failing after 4m29s
Tests / Integration tests (push) Failing after 26s
Tests / Application Service Integration tests (push) Failing after 20s
Tests / Unit tests (push) Successful in 5m47s
We figured out while working on https://github.com/the-draupnir-project/Draupnir/pull/1099 that actually in both cases if delta reducers are incorrect and get fixed, then downstream nodes have to use `reduceRebuild`.

The single-step projection nodes are much simpler though and don't leak internal state into the diff.

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

* Allow projections to pass node state in the delta.

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

The existing projections have been changed to the new API, but they
probably could be optimised now that we have this feature.

* Make the node state delta authoritative in existing projections.

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

* Make projections single step

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

* Make Projection responsible for producing the diff.

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

* Changeset.
2026-04-20 16:50:44 +01:00
Gnuxie ecfcc1c2c3 Split PowerLevelsMirror into PowerLevelsEventMirror (#1098)
Docker Hub - Develop / docker-latest (push) Failing after 33s
GHCR - Development Branches / ghcr-publish (push) Failing after 38s
Tests / Build & Lint (push) Failing after 6m54s
Tests / Integration tests (push) Failing after 23s
Tests / Application Service Integration tests (push) Failing after 15s
Tests / Unit tests (push) Successful in 7m44s
This is to accept the createEvent in the PowerLevelsMirror and makes it harder to forget privileged creators.
Closes https://github.com/the-draupnir-project/planning/issues/122.
2026-04-17 18:09:14 +01:00
Gnuxie be4fc0871b Add Open Collective information. (#1097)
Closes https://github.com/the-draupnir-project/planning/issues/131.
2026-04-17 17:41:55 +01:00
Gnuxie 93adaf9e6d Remove filesystem news. (#1096)
Closes https://github.com/the-draupnir-project/planning/issues/130.
Closes https://github.com/the-draupnir-project/Draupnir/issues/1095.
2026-04-17 17:31:09 +01:00
Catalan Lover caa9938147 Make Appservice register and setup basic profile information. (#1086)
Docker Hub - Develop / docker-latest (push) Failing after 37s
GHCR - Development Branches / ghcr-publish (push) Failing after 34s
Tests / Build & Lint (push) Failing after 5m33s
Tests / Integration tests (push) Failing after 26s
Tests / Application Service Integration tests (push) Failing after 17s
Tests / Unit tests (push) Successful in 6m53s
* Make Appservice register and setup basic profile information.

Basic Profile information being setting a display name if none exists.

* Add changeset information

* Relocate Profile logic to after initialisation.

* Clean up Appservice Bot Reg and Profile Set code

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

* Workaround bug with ensureRegistered in matrix-appservice-bridge.

https://github.com/matrix-org/matrix-appservice-bridge/issues/525

* Clarify that this is mostly dead code

---------

Co-authored-by: Gnuxie <Gnuxie@users.noreply.github.com>
2026-04-16 18:59:29 +01:00
Catalan Lover 02d410982d Add Caching to CI (#1088)
This makes it so we use caching across the CI for all our unit tests / integration tests. Supposedly mx-tester was already doing this but now we are also doing it for npm packages.
2026-04-16 14:52:57 +02:00
Gnuxie 8976b04c49 Be more precise about licensing. (#1073)
Docker Hub - Develop / docker-latest (push) Failing after 36s
GHCR - Development Branches / ghcr-publish (push) Failing after 35s
Tests / Application Service Integration tests (push) Failing after 12s
Tests / Integration tests (push) Failing after 15s
Tests / Unit tests (push) Failing after 14m57s
Tests / Build & Lint (push) Failing after 15m0s
* Be more precise about licensing.

I've added a root LICENSE file describing the use of multiple licenses
in the repository, especially given that it is now monorepo.

This does not change any licensing terms or introduce new requirements
It makes the existing setup more explicit and easier to understand for
users and downstream distributors. And reflects the existing REUSE
compliant setup.

* Be more comprehensive in our description.
2026-04-10 12:15:49 +01:00
gnuxie 1cb4c59c02 v3.0.0
Docker Hub - Develop / docker-latest (push) Failing after 39s
GHCR - Development Branches / ghcr-publish (push) Failing after 34s
Tests / Build & Lint (push) Failing after 5m56s
Tests / Integration tests (push) Failing after 22s
Tests / Application Service Integration tests (push) Failing after 12s
Tests / Unit tests (push) Successful in 6m55s
v3.0.0
2026-04-02 19:23:01 +01:00
Gnuxie a8d2ea3d6d Bootstrap packages onto npm now we're monorepo. (#1069)
Preperation for 3.0.0

Part of https://github.com/the-draupnir-project/planning/issues/102.

For some dumb reason the CHANGELOG from mps was never added but ok.
2026-04-02 18:44:00 +01:00
Gnuxie f951a48419 Broaden prettier to run on all files. (#1068)
Closes https://github.com/the-draupnir-project/planning/issues/109.
2026-04-02 13:29:36 +01:00
Gnuxie e761a198aa Fix eslint patterns. (#1067)
Docker Hub - Develop / docker-latest (push) Failing after 35s
GHCR - Development Branches / ghcr-publish (push) Failing after 35s
Tests / Build & Lint (push) Failing after 5m57s
Tests / Integration tests (push) Failing after 24s
Tests / Application Service Integration tests (push) Failing after 13s
Tests / Unit tests (push) Successful in 7m9s
Closes https://github.com/the-draupnir-project/planning/issues/110
2026-04-02 13:16:20 +01:00
Catalan Lover 30611aaf26 Appservice Improvements Fixed (#1061)
* Add Version command to AS mode admin room

This replicates the status command output giving version string data in a convenient format to AS Admins.

* Add Provision Limit and Force Provision Command

* Add SelfServiceProvisioning Config Flag that defaults to False

This defaults to false due to the currently known problem where Self Service Provisioning ACLs are broken.

So this config exists to allow that codepath to be disabled while we work on fixing it.

* Add Copyright Headers

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Split Version Command integration test out into new file.

* Fix Self Service Provision Message

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

* FIx AS.TS

* Clean up Cat's tests

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Gnuxie <50846879+Gnuxie@users.noreply.github.com>
Co-authored-by: gnuxie <Gnuxie@protonmail.com>
2026-04-02 11:33:09 +01:00
Gnuxie 5e1563752b Add sourcemaps to entrypoint and normalise paths in the script (#1065)
Docker Hub - Develop / docker-latest (push) Failing after 29s
GHCR - Development Branches / ghcr-publish (push) Failing after 30s
Tests / Build & Lint (push) Failing after 4m59s
Tests / Unit tests (push) Successful in 5m59s
Tests / Application Service Integration tests (push) Failing after 14m50s
Tests / Integration tests (push) Failing after 14m56s
* Add sourcemaps to entrypoint

* Make entrypoint run Draupnir relative to the script.

This is important for running draupnir from source either directly in
the directory, from ExecStart in systemd, or from inside the docker
image.

And we're making this change so that we can have better control over
the arguments we start Draupnir with in the different environments
without having to make disruptive changes.

Co-authored-by: Bea <20361868+enbea@users.noreply.github.com>

* Add changeset for source installs.

We're gonna write up a proper change log but this is just so we don't forger.

Co-authored-by: Bea <20361868+enbea@users.noreply.github.com>
2026-03-31 15:24:42 +01:00
Gnuxie 082118bea0 Update the default config for the new draupnir news location. (#1064)
Docker Hub - Develop / docker-latest (push) Failing after 37s
GHCR - Development Branches / ghcr-publish (push) Failing after 35s
Tests / Build & Lint (push) Failing after 5m9s
Tests / Integration tests (push) Failing after 23s
Tests / Application Service Integration tests (push) Failing after 14s
Tests / Unit tests (push) Successful in 6m13s
We had to move it but it has virtually no effect downstream as we
distribute the news on the filesystem too.

If something critical happens we can just put a shim on the repo in
the old spot.

Closes https://github.com/the-draupnir-project/planning/issues/111
2026-03-30 15:37:59 +01:00
Gnuxie 7bb9d51980 Crash if Draupnir doesn't have the power level for state_default in the management room. (#1063)
Looks like this:

```
TypeError: Could not create Draupnir
caused by: @mjolnir:localhost:9999 doesn't have the power level required to send state events in the management room. Please make the Draupnir user an administrator
    at ResultError.toExpectError (/home/user/experiments/Draupnir/node_modules/@gnuxie/typescript-result/src/Result.ts:200:12)
    at ExpectError (/home/user/experiments/Draupnir/node_modules/@gnuxie/typescript-result/src/Result.ts:128:24)
    at Object.expect (/home/user/experiments/Draupnir/node_modules/@gnuxie/typescript-result/src/Result.ts:137:10)
    at makeBotModeToggle (/home/user/experiments/Draupnir/apps/draupnir/test/integration/mjolnirSetupUtils.ts:194:5)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async /home/user/experiments/Draupnir/apps/draupnir/test/integration/manualLaunchScript.ts:23:18
```


Fixes https://github.com/the-draupnir-project/Draupnir/issues/1025
Closes https://github.com/the-draupnir-project/planning/issues/108

* Fix test:manual deleting the prior management room

The old behaviour of leaving any stale management
room active was intentional, to be able to inspect
failed tests and restart the bot quickly to check
changes.

* Check Draupnir can send state to the management room at startup.

Fixes https://github.com/the-draupnir-project/Draupnir/issues/1025
Part of https://github.com/the-draupnir-project/planning/issues/108

* Fix small bug in PowerLevelsMirror.

It was checking the wrong entries for regular events.
Discovered as part of https://github.com/the-draupnir-project/planning/issues/108

* Fix typos in privileged creator APIs

Fixed during https://github.com/the-draupnir-project/planning/issues/108

* Notify management room of lack of state_default permission.
2026-03-30 14:25:39 +01:00
Gnuxie 5870c02933 Stop MemberBanSynchronisation banning for all recommendations. (#1062)
Tests / Unit tests (push) Successful in 7m9s
Tests / Build & Lint (push) Failing after 7m21s
Tests / Application Service Integration tests (push) Failing after 22s
GHCR - Development Branches / ghcr-publish (push) Failing after 33s
Tests / Integration tests (push) Failing after 11m48s
Docker Hub - Develop / docker-latest (push) Failing after 31s
Originally contributed in https://github.com/Gnuxie/matrix-protection-suite/pull/102.

Co-authored-by: nexy7574 <git@nexy7574.co.uk>
2026-03-29 16:30:55 +01:00
Catalan Lover b4d105f915 Implement Branch in Status Command (#1057)
GHCR - Development Branches / ghcr-publish (push) Failing after 32s
Docker Hub - Develop / docker-latest (push) Failing after 34s
Tests / Application Service Integration tests (push) Failing after 13m52s
Tests / Integration tests (push) Failing after 13m54s
Tests / Unit tests (push) Failing after 13m57s
Tests / Build & Lint (push) Failing after 13m59s
* Implement Branch in Status Command

So now that we have dev branch containers and Cat checked Gnuxies Bot ye Huston we have a problem ala #1056.
2026-03-25 20:49:01 +00:00
Catalan Lover 9902993b6c Implement Caching for the CI (#1055)
GHCR - Development Branches / ghcr-publish (push) Failing after 39s
Docker Hub - Develop / docker-latest (push) Failing after 40s
Tests / Application Service Integration tests (push) Failing after 13m52s
Tests / Integration tests (push) Failing after 13m54s
Tests / Unit tests (push) Failing after 13m57s
Tests / Build & Lint (push) Failing after 13m59s
* Update Dockerignore

Updates dockerignore to protect against cache contamination so we can more effectively utilise the full potential of our Cache system.

* Implement Caching strategy support in dockerfile

* Implement Caching for CI to massively speed up warm builds

* Fix Wildcard funkyness breaking docker builds.

* Fix FROM AS style guideline violations

There's a style guideline that says you shouldn't mix the case of FROM and AS in a FROM AS statement. So we fix this violation in this commit.

You can also force it all to lowercase but considering all our other keywords are uppercase why not go uppercase only for consistency.
2026-03-25 16:18:18 +00:00
Gnuxie dcb2659ba8 Throw if --draupnir-config option not provided. (#1054)
Docker Hub - Develop / docker-latest (push) Failing after 33s
GHCR - Development Branches / ghcr-publish (push) Failing after 33s
Tests / Build & Lint (push) Failing after 6m5s
Tests / Integration tests (push) Failing after 24s
Tests / Application Service Integration tests (push) Failing after 12s
Tests / Unit tests (push) Successful in 7m15s
We still support --mjolnir-config.

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

This functionality was deprecated in
https://github.com/the-draupnir-project/Draupnir/releases/tag/v2.0.0-beta.8.

https://github.com/the-draupnir-project/planning/issues/105
2026-03-20 16:30:57 +00:00
Gnuxie 82fe093ef3 Upgrade matrix-apservice-bridge base stack to node24. (#1052)
https://github.com/the-draupnir-project/planning/issues/104

I don't know what the fuck they are doing with the typings in the
vector bot-sdk repository but whatever.

https://github.com/the-draupnir-project/Draupnir/issues/1053
2026-03-20 15:54:21 +00:00
Gnuxie 1fa5a1ed97 Add changesets to manage changes. (#1051)
Tests / Build & Lint (push) Failing after 5m44s
GHCR - Development Branches / ghcr-publish (push) Failing after 1m2s
Tests / Integration tests (push) Failing after 20s
Tests / Application Service Integration tests (push) Failing after 13s
Tests / Unit tests (push) Successful in 6m48s
Docker Hub - Develop / docker-latest (push) Failing after 1m4s
We're going to try using https://github.com/changesets/changesets to manage our apps/packages changelogs. This won't effect the CHANGELOG.md in the project root, which we will probably still write manually.

The main reason we want this is because it becomes a pain in the ass tracking what sorts of changes have been made over time between package releases. And as package releases will no longer happen for changes to merge onto main (like they had to before), unreleased changes are going to be a lot more common.
2026-03-19 17:44:20 +00:00
Gnuxie 879e822332 Monoreponir (#1046)
* Move src to apps/draupnir/src

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

* Move package.json

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

* Add matrix-basic-types to monorepo.

Get everything working including linting and prettier :3

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

* Add interface-manager to monorepo.

This was a bitch because apparently we forgot to delete node_modules
before creating the workspace package.json. So it had linked a bunch
of local stuff like was in node_modules for Draupnir...

Anyways i think we're still on track.

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

* idk why there are prettier changes in apps but there are.

* Add matrix-protection-suite to monorepo.

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

* Add matrix-protection-suite-for-matrix-bot-sdk

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

We will need to add the real upstreams and versions and remove the
file links as we publish the packages.

* Move mps-interface-adaptor into monorepo

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

Wohoo, i think only draupnir is left now?

* Move Draupnir test files to draupnir directory smh smh smh.

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

* Fix typescript config for tests and eslint.

Now we get proper linting and type checking of tests.

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

* WIP Integrating draupnir into monorepo tooling...

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

We need to stop aliasing bot-sdk but we should first check that
upstream is using a consistent name too.

* Remove matrix-bot-sdk alias for vector fork.

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

* Add top command description type and weave through API.

A more recent version of typescript meant that the exectutor's
contravariance got checked which destroyed the API so we had to make a
top type for command descriptions and parametrise some of the API.

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

* Fix typescript errors related to class property initialisation changes.

https://www.typescriptlang.org/tsconfig/#useDefineForClassFields

Seems like they were using defineProperty before which meant
properites were initialised after the constructor ran.

Honestly i like that more but we're going to stick with what they
intend to be the default.

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

* Fix tests lacking fixtures context.

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

* Fix typescript errors related to error destructuring in tests.

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

* Pin postgres package to workaround upstream issue

https://github.com/porsager/postgres/issues/1150
Documented in DEPENDENCIES.md

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

* Fix contravariance issue in hash store helper.

Part of the TS 5.9 upgrade fallout.
https://github.com/the-draupnir-project/planning/issues/100

* Fix minor typescript 5.9 migration issuess

All typescript errors finished, yay.

* Fix REUSE missing headers.

* Fix assets script in draupnir app.

* Add Draupnir to eslint scope

* Remove the appservice web API.

There are too many eslint errors here to do with unsafe parsing of
properties from the body etc. And there's actually no consumers to
this API. It's also a widget API, and all it does is provision the bot
and nothing more.

* Fix eslint config for DeadDocumentJSX.

It wasn't working well with the jsx templates.
We should probably delete the tsconfig.eslint.json shite now.

* Update src/utils.ts for eslint.

This shit is legacy i hate it.

* Fix eslint errors in config.

Really this is paint over rot since the config doesn't have a schema,
and we can't really make one either.

* Fix eslint issues in ReportManager.

This code is diabolical. It hasn't really been fixed that will take
refactoring and making sure people don't write this sorts of bad code
ever again. Which thankfully we have process in place for.

* Fix clientHelper eslint issues.

* Fix eslint for ImportCommand.

* Grinding eslint fml.

* Fix miscellaneous eslint issues.

* allow no-deprecate for logMessage.

shit's being annoying.

* Fix remaining eslint issues...

We also deleted one of the scripts used to evaluate the performance of
various endpoints, which we were not using.

* Give bot toggle asyncDispose for code consistency.

* Fix package.json access issues.

* Adjust Docker and CI for new app location in monorepo.

* Fix broken integration tests.

* Remove prepare script from matrix-protection-suite package.

Isn't needed anymore


* Fix build:all script missing base files.

* Remove test script from matrix-protection-suite-for-matrix-bot-sdk

It doesn't have any tests :/

* Order of setup is wrong in integration test workflows.

* Fix mps interface adaptor doesn't have any tests.

* Fix appservice registration for test harness.

* Fix matrix-basic-types jest configuration

* Fix no build step in mjolnir.yaml

* Transfer common dev dependencies to the workspace root.


They were just wrong.
2026-03-19 16:13:14 +00:00
renovate[bot] 1372c17db9 Update docker/setup-qemu-action action to v4 (#1038)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-14 12:34:04 +01:00
Catalan Lover f88a3ad504 Update CI Depenency Versions (#1035)
* Update actions/checkout action to v6

* Update actions/github-script action to v8

* Update actions/setup-node action to v6

* Update docker/build-push-action action to v7

* Update docker/login-action action to v4

* Update docker/metadata-action action to v6

* Update docker/setup-buildx-action action to v4

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-14 12:28:14 +01:00
Catalan Lover 470e00b178 Update Precommit hooks. (#1034)
* Update pre-commit hook editorconfig-checker/editorconfig-checker.python to v3.6.1

* Update pre-commit hook python-jsonschema/check-jsonschema to v0.37.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-14 12:28:00 +01:00
Catalan Lover fc09fb2904 Finish Attested Docker Images Ambitions (#1029) 2026-03-13 20:38:05 +01:00
Catalan Lover 4344be93e8 Upgrade CI to publish to ghcr.io and Dockerhub (#901)
* GHCR Separate Workflows

* GHCR Standalone Publishing Refinements

* Docker Hub Publishing Refinements

* Add Development Build Artefact Generation and Publishing

This only runs against non Excluded branches as to be practical.

* Fix GHCR Deployment due to Uppercase Names and Main Branch Exclusion

* Fix Github ignoring Branch filters for Develop Workflow

* Harmonise Development Artifact Workflows

* Improve Docker Hub Development Artefact Metadata
2026-03-13 15:25:21 +01:00
gnuxie 7ef871d3c7 v2.9.0 v2.9.0 2025-12-18 12:57:34 +00:00
Gnuxie 1221eb2eed Enable the capability set provider migration for ServerBanSync (#1016) 2025-12-16 13:00:12 +00:00
Gnuxie e39642a19d Use the capability name and not the interface name in capability provider set. (#1015)
The keys on the capability provider set are arbritrary property names
set by the protection, not the interface names as there can be
multiple capabilities that share the same interface.
2025-12-12 14:14:25 +00:00
Gnuxie 785f4df264 Improve ServerBanSyrnchronisationProtection (#1014)
* Update ServerBanSynchronisationCapabilityRenderer.

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

* Add migration for old server ban sync capabilities.

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

* Test migration of serverConsequences capability provider set.

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

* Update MPS for new ServerBanSychrnosation protection.

- Only render results of changes when the ACL capability when the `m.room.server_acl` failed to send.
- Only apply ACL once every 15seconds
- Migrate `serverConsequences` from MPS to server ban synchronisation specific capability provider.
2025-12-12 13:21:17 +00:00
gnuxie 81301f2188 v2.8.0 v2.8.0 2025-11-23 12:45:44 +00:00
Gnuxie 5b134493a8 Add preview to watch command. (#1007)
https://github.com/the-draupnir-project/planning/issues/2
2025-11-22 21:52:16 +00:00
renovate[bot] e64c43698d Update dependency js-yaml to v4.1.1 [SECURITY] (#1005)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-15 17:50:20 +00:00
Gnuxie 492f6816ed Add value proposition to readme. (#996)
https://docs.oscollective.org/resources/resources/companies-and-trust
2025-11-13 13:29:20 +00:00
Gnuxie 8def00c2ed fix spurious error log line regarding room takedowns when the room ha… (#995)
* fix spurious error log line regarding room takedowns when the room has already been taken down.

This is normal, and while generally the bot shouldn't attempt to take down the same rooms which succeeded in the past, there's no way of knowing that the room hasn't
been unblocked by the synapse admin API while draupnir was offline.
Because there's no endpoint to get only the blocked rooms, we have to attempt to block them all again, but what we can do is lower that from critical severity to debug, since it's not actually a fatal error at all.

* prettier

---------

Co-authored-by: esoteric_programmer <nomail@no.email>
2025-11-07 12:28:28 +00:00
Gnuxie 0c448ab85e Announce the first cycle review and second cycle selection. (#984)
What the notice looks like:

<img width="760" height="228" alt="image" src="https://github.com/user-attachments/assets/3c1df304-24f4-40cc-9109-4d3398d58fc3" />

Element web was used to send the message

raw markdown:

```
#### 📰 Draupnir Assembly: Call for Participation

The Longhouse Assembly is discussing the next direction of the project.

If you value what the Draupnir project does for your community, then we really want to hear from you:

- ➡️ [Read about the current longhouse cycle](https://the-draupnir-project.github.io/draupnir-documentation/governance/reports/2510A-cycle-review)
- ➡️ [Read about the pathways going forward](https://the-draupnir-project.github.io/draupnir-documentation/governance/reports/2510A-selection)
- ➡️ [Cast your vote](https://cryptpad.fr/form/#/2/form/view/ewtgdO-YIwCjLhfJpwsj87m7RU7v6hJKHbu3BWqa1kg/)
- ➡️ [Join the Assembly Discussion](https://matrix.to/#/!UMROhYUQcvtGuoIIka:matrix.org/%247C2Sv-B-6HJ7fVMlCRd3R9jlZqe2rUxlPliEaB-M4yE?via=matrix.org&via=feline.support&via=asgard.chat)
```
2025-10-28 14:36:37 +00:00
Gnuxie 9ceab2a2fc Merge pull request #988 from the-draupnir-project/gnuxie/tests-being-weird
Fix test failures on main innit

Closes https://github.com/the-draupnir-project/Draupnir/issues/985.
We're solving this problem structurally by introducing a `Lifetime` primitive for resource management. https://github.com/the-draupnir-project/planning/issues/79.
2025-10-28 13:16:10 +00:00
gnuxie 3945cf8b51 Fix ancient racey code in shutdown command test. 2025-10-28 13:09:49 +00:00