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

@ -2020,10 +2020,12 @@ description: Minimal agent
assert_eq!(v, McpServerRef::Named("slack".to_string()));
let v: McpServerRef =
serde_json::from_value(serde_json::json!({ "s" : { "type" : "stdio" } })).unwrap();
assert!(matches!(v, McpServerRef::Inline { ref name, .. } if name == "s"));
assert!(matches!(v, McpServerRef::Inline { ref name, .. }
if name == "s"));
let v: McpServerRef =
serde_json::from_value(serde_json::json!({ "name" : "s", "type" : "stdio" })).unwrap();
assert!(matches!(v, McpServerRef::Inline { ref name, .. } if name == "s"));
assert!(matches!(v, McpServerRef::Inline { ref name, .. }
if name == "s"));
assert!(
serde_json::from_value::<McpServerRef>(serde_json::json!({ "type" :
"stdio" }))

View file

@ -35,7 +35,7 @@ pub const GIT_STATUS_CHARACTER_LIMIT: usize = 10_000;
/// and no empty code fence is emitted), otherwise the status capped at
/// [`GIT_STATUS_CHARACTER_LIMIT`] -- snapped back to the last newline -- with
/// the `... (git status truncated)` marker appended.
fn normalize_git_status(status: &str) -> Option<String> {
pub fn normalize_git_status(status: &str) -> Option<String> {
let status = status.trim();
if status.is_empty() {
return None;