Let Complement runs set rust_state_res

RUST_STATE_RES=off|shadow|on in scripts-dev/complement.sh sets
experimental_features.rust_state_res in the shared homeserver config.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ULdieJyQoHNzeHq42H2M1p
This commit is contained in:
Erik JohnstonandClaude Opus 5.5 committed 2026-10-13 11:13:37 +00:00
1 parent 22bc7cdb38
commit a4b08444e8
2 files changed
+14 -1

No files matched your search

@@ -6,7 +6,7 @@ set -e
echo "Complement Synapse launcher"
echo " Args: $*"
echo " Env: SYNAPSE_COMPLEMENT_DATABASE=$SYNAPSE_COMPLEMENT_DATABASE SYNAPSE_COMPLEMENT_USE_WORKERS=$SYNAPSE_COMPLEMENT_USE_WORKERS SYNAPSE_COMPLEMENT_USE_ASYNCIO_REACTOR=$SYNAPSE_COMPLEMENT_USE_ASYNCIO_REACTOR SYNAPSE_USE_RUST_DRIVER=$SYNAPSE_USE_RUST_DRIVER"
echo " Env: SYNAPSE_COMPLEMENT_DATABASE=$SYNAPSE_COMPLEMENT_DATABASE SYNAPSE_COMPLEMENT_USE_WORKERS=$SYNAPSE_COMPLEMENT_USE_WORKERS SYNAPSE_COMPLEMENT_USE_ASYNCIO_REACTOR=$SYNAPSE_COMPLEMENT_USE_ASYNCIO_REACTOR SYNAPSE_USE_RUST_DRIVER=$SYNAPSE_USE_RUST_DRIVER SYNAPSE_RUST_STATE_RES=$SYNAPSE_RUST_STATE_RES"
function log {
d=$(printf '%(%Y-%m-%d %H:%M:%S)T,%.3s\n' ${EPOCHREALTIME/./ })
@@ -128,6 +128,13 @@ openssl x509 -req -in /conf/server.tls.csr \
export SYNAPSE_TLS_CERT=/conf/server.tls.crt
export SYNAPSE_TLS_KEY=/conf/server.tls.key
# Resolve state in Rust (`experimental_features.rust_state_res`). This goes into
# the shared config's `experimental_features`, as a config snippet with its own
# `experimental_features` would replace the shared one.
if [[ -n "$SYNAPSE_RUST_STATE_RES" ]]; then
sed -i "s/^experimental_features:$/experimental_features:\n rust_state_res: $SYNAPSE_RUST_STATE_RES/" /conf/shared.yaml.j2
fi
# Add a directory for tests to add config overrides if they want
mkdir --parents /conf/homeserver.d
export _SYNAPSE_COMPLEMENT_EXTRA_CONFIG_DIR=/conf/homeserver.d
+6
View File
@@ -364,6 +364,12 @@ main() {
export PASS_SYNAPSE_USE_RUST_DRIVER=true
fi
if [[ -n "$RUST_STATE_RES" ]]; then
# Set `experimental_features.rust_state_res` (off, shadow or on). The Rust
# state resolution needs RUST_DRIVER=1.
export PASS_SYNAPSE_RUST_STATE_RES="$RUST_STATE_RES"
fi
if [[ -n "$UNIX_SOCKETS" ]]; then
# Enable full on Unix socket mode for Synapse, Redis and Postgresql
export PASS_SYNAPSE_USE_UNIX_SOCKET=1