baibot no longer has an image_generation.style setting for its OpenAI provider (it ignores it),
so matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_style
is removed (and reported if still set).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
baibot now releases as CalVer tags (vYYYY.MM.DD.N); v2026.11.02.1 supports OpenAI's Realtime models for text-to-speech.
OpenAI shuts down tts-1, tts-1-hd and gpt-4o-mini-tts on 2027-01-06,
so the OpenAI agent now defaults to gpt-realtime-2.1-mini with the cedar voice (Realtime has no onyx).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-sonnet-4-5 retires on 2026-11-30. baibot now uses Anthropic API
version 2026-10-21, which rejects a temperature on every model, so
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_temperature
is removed (and reported if still set). The default max response tokens
go from 8192 to 16384, since thinking tokens count against them.
Needs the baibot release that moves to API version 2026-10-21.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
llama3-70b-8192 was shut down by Groq on 2025-08-30. Also point the
model list link at console.groq.com.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Containers are created with `--rm`, so Docker removes them asynchronously after they stop.
The pre-start `docker rm` returns immediately while that removal is still in progress
(its error is suppressed), and the following `docker create --name` can fail with
"The container name ... is already in use".
This is easy to hit since systemd_service_manager switched its default restart mode to `all-at-once`:
many containers stop and start at the same time and Docker falls behind on removals.
The playbook then fails at "Restart systemd services needing restart at once",
even though the services recover on their own (`Restart=always`) a little later.
The external roles (MASH, devture) were hardened against this in 2026-03
(see mother-of-all-self-hosting/ansible-role-valkey@0ba79c0), but the roles in `roles/custom` never were.
This ports the same bounded cleanup loop to them: stop, force-remove,
and wait until Docker releases the name, failing explicitly after a timeout.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
It read "The API key is intentionally not required. Some OpenAI-compatible APIs
do not require a key", while validate_config.yml fails when the key is empty and
the provider is enabled. Enabling the provider against a keyless endpoint stopped
with "You need to define a required configuration setting".
baibot is the authority here, and it agrees with the validation rather than the
comment: `openai::Config` takes `api_key: String`, whereas the provider whose key
really is optional is a different one, `openai_compat`, with
`api_key: Option<String>`. So the comment described a real baibot feature, just
not this provider's.
The validation stays as it is; the comment now says what the code does, and
points at the provider the keyless case belongs to.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SEH3vxYSQ5SV4N5z61eyGT
Replaces `community.docker.docker_image` with the modern
`docker_image_pull` and `docker_image_build` split modules. Drops the
`ansible_version` compatibility ladder and the now-redundant
`_container_image_force_pull` variable (the new pull module handles
registry refresh natively via `pull: always`). Also registers
`_container_image_build_result` so that a self-build rebuild correctly
triggers a service restart.
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/5191.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
For each of the 34 roles (3 clients, 9 bots, 22 bridges), this commit:
- Adds `_restart_necessary: false` default variable
- Adds `register:` directives to config/image/systemd tasks
- Computes `_restart_necessary` via set_fact (OR of all .changed results)
- Wires `(_restart_necessary | bool)` in group_vars/matrix_servers
This allows the systemd service manager to skip unnecessary restarts
when running install-* tags and nothing actually changed.
Service roles and complex multi-service roles will follow separately.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>