* Multiroom feature
* Run multiroom visibility expiration conditionally
Remove SQLite and go 1.18 for tests matrixes
* Remove sqlite from unit tests
* Fix linter errors
* Do not build with go1.18
* Do not run upgrade tests
* Fix dendrite workflow
* Add forgotten content and timestamp fields to multiroom in sync response
* Fix syncapi multiroom unit tests
* Review adjustments in queries and naming
* Remove no longer maintained linters from golangci-lint configuration
* Document sqlc code generation
This makes the following changes:
- get state deltas without the user supplied filter, so we can actually
"calculate" state transitions
- closes `stmt` when using SQLite
- Adds presence for users who newly joined a room, even if the syncing
user already knows about the presence status (should fix
https://github.com/matrix-org/complement/pull/516)
Improves the control flow of `GetStateDeltas` for clarity and possibly
also fixes a bug where duplicate state delta entries could be inserted
with different memberships instead of being correctly overridden by
`join`.
This now uses a transaction per stream, so that errors in one stream
don't propagate to another, and we therefore no longer need to do hacks
to reopen a new transaction after aborting a failed one.
This should transactional snapshot isolation for `/sync` etc requests.
For now we don't use repeatable read due to some odd test failures with
invites.