All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Introduced a new
WatchedPolicyRooms
abstraction by factoring outPolicyRoomRevision
issuer managemenent fromPolicyRoomsConfig
. This now replacesPolicyRoomsConfig
and theissuerManager
property in the protected rooms set. -
Expose a way to get the
time
aRevision
was created.
revisionID
is now exported onStateRevision
.
findCompatibleCapabilityProviders
function.
- Improved descriptions of all standard capability providers.
- Generic item batching is now available for protections to use by
using the
StandardBatcher
.
-
Task
has been improved to be more liberal in the closures it accepts. AndTask
now has more options for logging how tasks have failed. -
The
Protection
callbackhandleExternalInvite
has been renamed tohandleExternalMembership
.
- An issue where adding rooms to the protected rooms set more than once could sometimes cause duplicate events to be propagated.
StandardRoomStateRevisionIssuer
now accepts theRoomStateGetter
capability rather than a callback for fetching room state.
RoomStateManager['getRoomState']
has been removed and the same functionality is now provided by by theRoomStateGetter
capability
RoomStateGetter
capability to fetch room state from a room.
- Fix SchemedMatrixData putting the wrong version number into data. Sadly a complication of the-draupnir-project/Draupnir#560.
- An issue with the
SetRoomMembershipRevisionIssuer
that would allow duplicate listeners to be added to rooms that were already in the set. This would cause lots of issues with downstream revision listeners. We've hardened code downstream, e.g. with theMembershipPolicyRevisionIssuer
, in case this happens again.
RoomInviter
toClientPlatform
.
-
StandardProtectionsConfig
now uses the providedSchemedDataManager
to persist the config while disabling protections. This was a bug, it was always supposed to use theSchemedDataManager
to persist the version number alongside the serialized data. Fixes the-draupnir-project/Draupnir#560. -
The
SynapseAdminReport['name']
property is now appropriately unioned withnull
.
-
The
user_id
field is now present on theSynapseAdminReport
schema. -
Access to unique member count of
SetMembership
viaSetMembership['uniqueMemberCount']
.
SchemaMigration
now provides the schema version number to use rather than relying on deltas to hand type the number and mess up.
-
Interface of
ServerConsequences['consequenceForServersInRoom']
has changed so that it is possible to determine if any changes/effects have been made after calling. Changed to support the-draupnir-project/Draupnir#450. -
The
ServerACLEvent
Schema wrongly describedcontent
as optional.
-
There was a bug where unwatching a list would cause only the list you wanted to unwatch to become watched. the-draupnir-project/Draupnir#647.
-
Getting the name of the capability wrong for capability context glue will now result in an error.
-
SetMembershipRevision
for calculating whether a Matrix user is the member of any room in a set of rooms. -
MembershipPolicyRevision
for easily finding policy rules that match users within aSetMembershipRevision
. This revision stops protections or capabilities from needing to calculate matches themselves.
DirectPolicyListRevisionIssuer
now emits the'revision'
event when policy rooms are watched and unwatched.
UserConsequences
now accepts an argument forTargetMember[]
rather than aPolicyListRevision
, so that it can be used in conjunction with the newMembershipPolicyRevision
.
- A bug where
ConfigMirror['setValue']
would try encode a value that was already encoded.
- Added a method to protections manager for changing a capability in a protection's capability set.
- Made capability provider set config actually persist by giving it a PersistentConfigBackend.
ProtectionsManager
depends on three different kinds of config. Config for capability providers, protection settings, and enabled protections.
ProtectionSettings
are gone.
JoinRulesEvent
andJoinRulesEventContent
are now available to use.
ConfigParseError
andConfigPropertyError
now reference the relevantConfigDescription
.
- Having valid but unjoinable rooms in
ProtectedRoomsConfig
is now a recoverable error.
- Fixed a bug where the
MjolnirPolicyRoomsConfig
would showundefined
in the description ofConfigPropertyErrors
.
PersistentConfigData
helper for dynamically editing schemed config files, and recovering from parse errors.
MjolnirProtectedRoomsConfig
,MjolnirWatchedListsConfig
,MjolnirEnanbledProtections
have all been migrated to usePersistentConfigData
with recovery options.
- Allow
RoomJoiner
to skip calling/join
.
- Upgraded
@gnuxie/typescript-result
. - Made
ActionException['toString']
clearer. - Made it more clear which room is causing issues for the
ProtectedRoomsManager
as it is created.
DeclareRoomState
and associated helpers are now exported.- This includes the
describeProtectedRoomsSet
utility which easily allows you to fake a protected rooms set.
- The
RoomMessageSender
capability is now available onClientPlatform
.
-
The
Permalink
TypeBox Schema has been renamed toPermalinkSchema
. -
I guess we're doing semver properly now? since weh.
-
Depend upon
@the-draupnir-project/matrix-basic-types
to provideStringUserID
,MatrixRoomReference
,MatrixGlob
, and associated types. -
Depend upon
@gnuxie/typescript-result
to provideActionResult
.