Commit Graph
7809 Commits
Author SHA1 Message Date
Quentin Gliech cd2ef4cbd7 Merge main into quenting/react-captcha 2026-09-08 12:38:14 +02:00
Quentin Gliech 065ff2fe55 CI: move to pnpm/setup for installing node, pnpm and installing frontend dependencies (#5965) 2026-09-08 12:18:46 +02:00
Olivier 'reivilibre 8a755e3217 Format log timestamps in the local timezone (#5932) 2026-09-08 10:27:46 +01:00
Quentin Gliech 60c0fdf438 Return M_APPSERVICE_LOGIN_UNSUPPORTED for m.login.application_service (#5961) 2026-09-07 18:01:32 +02:00
Quentin Gliech 1826034167 Replace pnpm/action-setup and actions/setup-node with pnpm/setup
One pinned step now installs pnpm, Node.js and the dependencies. `require-lockfile: true` keeps the `--frozen-lockfile` semantics, `cache: true` keeps the pnpm store cache.
2026-09-07 16:04:48 +02:00
Quentin Gliech dbbb93915e Declare the Node.js version in devEngines.runtime
`pnpm/setup` reads the runtime version from `package.json` and ignores `.node-version`. With `onFail: download`, pnpm records Node 24.15.0 in the lockfile and downloads it on every install unless `--no-runtime` is passed. The Dockerfile and the docs build pass it, since they already run a pinned Node. `.node-version` stays for the Cloudflare Pages build, which reads it to pick the Node that bootstraps corepack.
2026-09-07 16:04:48 +02:00
Olivier 'reivilibre 21d01ec192 build(deps): bump http-body-util from 0.1.3 to 0.1.5 (#5948) 2026-09-07 13:37:35 +01:00
Olivier 'reivilibre bebc7731dd Implement hard shutdown and exit for task timeout (#5930) 2026-09-04 13:52:54 +01:00
Olivier 'reivilibre a55b25ef6b Add unittest for database connection via pgpass (#5926) 2026-09-04 13:51:29 +01:00
dependabot[bot] 21aaa65b34 build(deps): bump http-body-util from 0.1.3 to 0.1.5
Bumps [http-body-util](https://github.com/hyperium/http-body) from 0.1.3 to 0.1.5.
- [Release notes](https://github.com/hyperium/http-body/releases)
- [Commits](https://github.com/hyperium/http-body/compare/http-body-util-v0.1.3...http-body-util-v0.1.5)

---
updated-dependencies:
- dependency-name: http-body-util
  dependency-version: 0.1.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-04 12:48:24 +00:00
Olivier 'reivilibre 437570d4da Use a frozen clock in the mas-oidc-client integration tests (#5963) 2026-09-04 13:45:42 +01:00
Quentin Gliech 196cce170c Merge branch 'main' into fix-flaky-oidc-client-clock 2026-09-03 19:55:11 +02:00
Quentin Gliech 9d3f3df4e6 Merge branch 'main' into fix-missing-appservice-login-unsupported 2026-09-03 19:55:07 +02:00
Quentin Gliech 9075c96551 Stop wrapping comments in rustfmt, drop redundant options (#5956) 2026-09-03 19:54:40 +02:00
Quentin Gliech 9c56e7f4ee Stop wrapping comments in rustfmt, drop redundant options
`comment_width = 80` counts the whole line, indentation included, which
wraps far more aggressively than intended; the latest nightly rustfmt
(rust-lang/rustfmt#6802) started enforcing it on comments it previously
left alone. Turn `wrap_comments` off rather than reformat everything.

`max_width = 100`, `comment_width = 80` and `use_small_heuristics =
"Default"` are rustfmt's defaults, so drop them too; only the two
nightly-only import options remain.
2026-09-03 19:17:18 +02:00
Paul Chobert db25101de4 Fix flaky fail_verify_id_token_wrong_auth_time test
The oidc-client integration tests read the real system clock through a
`now()` helper. The ID token builder generates a fresh RSA key before
stamping `iat`, while each test captured its own `now` earlier for
verification. Under coverage instrumentation on a loaded CI runner, the
two key generations in `fail_verify_id_token_wrong_auth_time` took more
than the 5 minute `iat` leeway, so verification failed on `iat` before
ever reaching the `auth_time` check the test asserts on.

Make the helper return a frozen `MockClock` timestamp instead. Every
token and verification in the binary now shares one instant, so setup
duration can no longer affect the outcome, and the clippy opt-out for
`Utc::now()` goes away.
2026-09-03 16:09:44 +02:00
Paul Chobert aa8b6b9a27 Merge branch 'main' into fix-missing-appservice-login-unsupported 2026-09-03 15:28:01 +02:00
Paul ChobertandQuentin Gliech 9e1d3b94b1 Update crates/handlers/src/compat/login.rs
Co-authored-by: Quentin Gliech <quenting@element.io>
2026-09-03 12:05:30 +02:00
Paul Chobert 765fa97ffe Return M_APPSERVICE_LOGIN_UNSUPPORTED for m.login.application_service
Matrix 1.17 requires servers that don't support the legacy
authentication API to reject `m.login.application_service` on
`/login` with a 400 and the `M_APPSERVICE_LOGIN_UNSUPPORTED` error
code. Previously this login type fell through the generic unsupported
credentials path and returned `M_UNKNOWN`, which appservices written
against Matrix 1.17 can't distinguish from an unrelated failure.
2026-09-03 11:10:26 +02:00
Eric Eastwood 81d8e4bfe3 Automatic merge back to main (#5960) 2026-09-02 18:04:01 -05:00
Eric Eastwood d4b15acbec Merge branch 'main' into ref-merge/c7c13a2137f03abcff2e7619f4a10611c0cd5f9a 2026-09-02 17:17:09 -05:00
github-actions[bot] c7c13a2137 1.24.0 v1.24.0 2026-09-02 21:44:13 +00:00
Eric Eastwood dd2b6494eb Translations updates for v1.24 (#5958) 2026-09-02 16:42:49 -05:00
github-actions[bot] b0c53acf07 Translations updates 2026-09-02 21:24:07 +00:00
Quentin Gliech 46b558dfd1 Ignore RUSTSEC-2026-0269 in cargo-deny as MAS isn't affected by it (#5955) 2026-09-02 16:58:26 +02:00
Quentin Gliech f1e46bd675 Ignore RUSTSEC-2026-0269 in cargo-deny as MAS isn't affected by it 2026-09-02 16:26:31 +02:00
Quentin Gliech 8bef2570c0 Pin the Rust toolchain for CI build jobs and let dependabot update it (#5938) 2026-09-02 14:44:02 +02:00
Paul Chobert 2f160c03ee Add test asserting M_APPSERVICE_LOGIN_UNSUPPORTED on appservice login
Matrix 1.17 requires servers that don't support the legacy
authentication API to reject `m.login.application_service` on
`/login` with a 400 and the `M_APPSERVICE_LOGIN_UNSUPPORTED` error
code. The test fails until the errcode is implemented.
2026-09-02 12:44:36 +02:00
Olivier 'reivilibre e94477d1b3 docs: Merge error description for the same status code (#5911) 2026-08-27 14:57:32 +01:00
Olivier 'reivilibre ad5b50b509 Fix rendering of policy violations with an empty code field (#5921) 2026-08-27 14:44:52 +01:00
Olivier 'reivilibre e5885b5b9d Fix back_to_client template error when no state param given (#5922) 2026-08-27 14:43:40 +01:00
matrixbot 34879373fe Automatic merge back to main (#5937) 2026-08-26 12:17:38 +02:00
Quentin Gliech cb2a6f2df1 Let dependabot bump the Rust toolchain
The `rust-toolchain` ecosystem updates the `channel` in `rust-toolchain.toml`, which is now the only place the Rust version is written down. Weekly with the usual 14-day cooldown, so the `.1` point release has usually landed by the time the PR opens.
2026-08-26 12:01:36 +02:00
Quentin Gliech 507d498294 Install the Rust toolchain in the Dockerfile from rust-toolchain.toml
The builder stage starts from `buildpack-deps` (what the `rust:` image is built on anyway), installs a pinned `rustup-init` with `--default-toolchain none`, copies only `rust-toolchain.toml` and lets rustup install the toolchain it names. The Rust version is now written in exactly one place, shared with CI, so a toolchain bump needs no Dockerfile edit.

The toolchain layer is cached on the content of `rust-toolchain.toml` and the base image, and it is the same bytes we pulled as `rust:` image layers before, so build times are unchanged.

The registry cache mount also moves to `/usr/local/cargo/registry`: the `rust:` image already set `CARGO_HOME=/usr/local/cargo`, so the previous `/root/.cargo/registry` mount never held anything.
2026-08-26 12:01:35 +02:00
Quentin Gliech 66e73f9910 Pin the Rust toolchain with a rust-toolchain.toml
Until now only the clippy CI job and the Dockerfile named a Rust version (kept in sync by hand), while every other CI job, the release binaries and the docs build ran on whatever `stable` happened to be that day. Rust 1.98.0 landing on 2026-08-20 broke `build-binaries` overnight because of that (#5935).

`rust-toolchain.toml` pins 1.96.0 with the `minimal` profile plus clippy, and every `rustup toolchain install stable ...` in CI becomes a bare `rustup toolchain install`, which reads the file. Starting at 1.96.0 (the version clippy is already clean against) keeps this change free of lint churn; catching up to 1.98.0 is a follow-up.

rustfmt stays on nightly because `.rustfmt.toml` uses nightly-only options, so that job now invokes `cargo +nightly fmt` explicitly instead of setting a rustup directory override, which would silently take precedence over the toolchain file.

The file does not list the linux cross-compilation targets on purpose: that would make every developer and CI job download `rust-std` they never use. The two consumers that cross-compile add the targets themselves.
2026-08-26 12:01:34 +02:00
github-actions[bot] f000510f2f 1.24.0-rc.1 v1.24.0-rc.1 2026-08-26 09:03:53 +00:00
Quentin Gliech c48ee16e5a Translations updates for v1.24 (#5936) 2026-08-26 10:57:40 +02:00
github-actions[bot] 39220b7ae7 Translations updates 2026-08-26 08:30:00 +00:00
Quentin Gliech 802b770b97 Update taiki-e/install-action so it knows about newer cargo-zigbuild with fix for --fix-cortex-a53-843419 (#5935) 2026-08-26 09:52:22 +02:00
Eric Eastwood 0fed77c818 Update taiki-e/install-action so it knows about newer cargo-zigbuild 2026-08-25 16:59:29 -05:00
matrixbot cc0d7e1e8c Automatic merge back to main (#5934) 2026-08-25 21:51:45 +02:00
github-actions[bot] d0e299918f 1.24.0-rc.0 v1.24.0-rc.0 2026-08-25 19:35:11 +00:00
matrixbot e5b2416d1c Translations updates for main (#5933) 2026-08-25 21:28:27 +02:00
Eric Eastwood 04f92810ee Remove outdated translations
See https://github.com/element-hq/matrix-authentication-service/pull/5933#discussion_r3856142806

Removed as that is what https://github.com/element-hq/matrix-authentication-service/pull/5602
did for other languages.
2026-08-25 14:11:43 -05:00
github-actions[bot] 507893cdc4 Translations updates 2026-08-25 16:49:23 +00:00
Dominik Röttsches 1a086b543d Format log timestamps in the local timezone
Replace the UTC-only SystemTime timer in EventFormatter with chrono's
ChronoLocal, which resolves the zone from TZ, then /etc/localtime, then
/usr/share/zoneinfo, and falls back to UTC when none are available. The
published image is distroless and ships none of them, so the default
output is unchanged and operators opt in by mounting a zone file; the
only difference for existing deployments is the offset suffix, Z ->
+00:00.
2026-08-21 23:14:37 +03:00
adis veletanlic 76bc2647c1 Merge branch 'main' into feat/lifecycle-task-hard-timeout 2026-08-19 14:33:53 +02:00
defaultdino 35be69bf15 implement hard shutdown and exit for task timeout 2026-08-19 14:30:51 +02:00
Hugh Nimmo-Smith ef020a3ebc Merge branch 'main' into hughns/no-state-param 2026-08-19 10:39:08 +01:00
Hugh Nimmo-Smith 705147eafe Merge branch 'main' into hughns/violations-without-code 2026-08-19 10:38:55 +01:00