Synced from monorepo

Changes:
- Persist submitter identity for /feedback
- Let custom models use rotating tokens from named auth providers
- Template stale tool/param name literals in server-native descriptions
- Minimal mode commits thinking in full, lookups as one-liners
- Tighten durable append internals
- Nudge model to end turn on no-op bash commands
- Per-fetch signing nonce in the managed-config envelope, with a server-side replay probe
- Include working tree in startup status
This commit is contained in:
grokkybara[bot] 2026-07-20 18:06:59 +01:00
commit a881e6703f
140 changed files with 6746 additions and 2377 deletions

View file

@ -45,16 +45,16 @@ fn invalid_arguments_round_trips_message_and_details() {
fn not_found_maps_to_tool_not_found() {
let err = ToolError::not_found(tid("missing"), "tool 'missing' not registered");
let wire: ToolErrorWire = err.into();
assert!(matches!(wire, ToolErrorWire::ToolNotFound { tool_id } if tool_id == tid("missing")));
assert!(matches!(wire, ToolErrorWire::ToolNotFound { tool_id }
if tool_id == tid("missing")));
}
#[test]
fn permission_denied_round_trips_reason() {
let err = ToolError::permission_denied("not authorised for write");
let wire: ToolErrorWire = err.into();
assert!(
matches!(wire, ToolErrorWire::PermissionDenied { reason } if reason == "not authorised for write")
);
assert!(matches!(wire, ToolErrorWire::PermissionDenied { reason }
if reason == "not authorised for write"));
}
#[test]
@ -93,7 +93,8 @@ fn timeout_with_details() {
fn cancelled_round_trips_tool_id() {
let err = ToolError::cancelled(tid("paused"), "user cancelled");
let wire: ToolErrorWire = err.into();
assert!(matches!(wire, ToolErrorWire::Cancelled { tool_id } if tool_id == tid("paused")));
assert!(matches!(wire, ToolErrorWire::Cancelled { tool_id }
if tool_id == tid("paused")));
}
#[test]