Files
surma c728429d04 sdk, agent: review fixes (T18R)
- The serve loop ends the process after EOF or exit_after_response,
  also with background tasks or listeners.
- One schema generator per direction for the whole document, so types
  with the same name get distinct names.
- The agent gives the complete error (code, message, data) to the
  model, writes SKIP only after a successful request, caps tool output
  at 64 KiB, writes each history line in one write, and skips a damaged
  line.
- Endpoints skip blank and non-RPC lines. client_rs does not panic.
- #[must_use] on builders and the lock guard; #[schemars] attributes
  and duplicate hooks are compile errors; raw identifiers; -32000 for
  local SDK errors; x-sausage-params only for methods with params.
2026-10-23 02:38:35 +01:00

14 lines
617 B
Rust

//! A provider may add its first optional named parameter.
use serde_json::json;
#[test]
fn first_optional_param_is_compatible() {
let consumer =
json!({"methods":[{"name":"status","params":[],"result":{"schema":{"type":"string"}}}]});
let mut provider = consumer.clone();
provider["methods"][0]["params"] =
json!([{"name":"detail","required":false,"schema":{"type":"boolean"}}]);
provider["methods"][0]["x-sausage-params"] =
json!({"type":"object","properties":{"detail":{"type":"boolean"}}});
assert!(sausage_interface::compat::check(&consumer, &provider).is_empty());
}