Support remote agent message boards in multi-agent sessions (#49267)

## What changed

Add `features.multi_agent_v2.message_board_remote` with a board URL and a bearer token supplied directly or through an environment variable. When configured, use the remote board in preference to local or in-memory storage, including in ephemeral sessions, while preserving the existing board tools and session identity.

Ignore remote board settings in project-local configuration and use the runtime HTTP client and clock for remote requests.

## Testing

Add a mock-server integration test and snapshot covering an ephemeral session posting through the existing tool, with the expected bearer authentication, session identity, timestamp, and returned post.

GitOrigin-RevId: 263413d90a1ee4c0bdba8c1b08ba9f68bdd7a986
This commit is contained in:
jif
2026-09-29 13:52:04 +00:00
committed by copyberry
parent 5f7d5add2a
commit 68e1a421f5
14 changed files with 259 additions and 3 deletions
+7
View File
@@ -1157,6 +1157,13 @@ fn sanitize_project_config(
{
ignored_keys.push("features.shell_snapshot".to_string());
}
if let Some(multi_agent) = features
.get_mut("multi_agent_v2")
.and_then(TomlValue::as_table_mut)
&& multi_agent.remove("message_board_remote").is_some()
{
ignored_keys.push("features.multi_agent_v2.message_board_remote".to_string());
}
for key in ["respect_system_proxy", "system_proxy_fallback"] {
if features.remove(key).is_some() {
ignored_keys.push(format!("features.{key}"));