Upgrading Existing Robots
For v3, extension compatibility is a higher priority than configuration compatibility.
That means many older plugins and jobs can keep working, while robot configuration often needs deliberate migration.
Highest-priority migration items
- Move to
PrimaryProtocoland optionalSecondaryProtocols. - Put connector-local identity mapping inside each connector’s
ProtocolConfig. - Keep
UserRosteras the canonical global user directory. - Move provider-specific settings into
conf/brains/<provider>.yamlandconf/history/<provider>.yaml. - Expect
DefaultMessageFormatto beBasicMarkdownunless you set something else explicitly.
Identity changes to care about
- authorization is username-based
IgnoreUnlistedUsersis username-based- Slack
UserMapis connector-local - SSH user mapping belongs in
ProtocolConfig.UserKeys
Practical upgrade advice
The safest migration path is usually:
- scaffold a fresh v3-style robot
- compare it with your existing robot
- port your custom config and extensions into the new layout
- test locally before touching production
That approach usually goes faster than trying to rescue a heavily mutated old config tree in place.