Synced from monorepo
Synced from monorepo Changes: - Release a shell session's resources in one drop - Make the tools blocking-wait cap client-configurable and self-describing - Recognize API "exceeds budget" errors as context overflow - Retry /btw on model overload - Carry running background tasks and subagents across compaction - Require round-trip time for SDK liveness checks - Background-subagent completion reminders with a selectable delivery surface - Make a PTY shell reap itself until it reaches the registry - Recover the OS error code from a TLS-phase connection reset - Consume the attached-client signal and report why idle is withheld - Treat `.grok/sandbox.toml` edits as protected so auto mode prompts before writing - Surface history/search in the Ctrl+. cheatsheet and keep it working in history view - Delete sessions from the dashboard and welcome list - Release a session's activity record when the session ends - Stop charging auth-retry budget for fail-closed 401s; reset it across suspends - Scope skills watches on project vendor roots - Make [stop] cancel in-flight compaction - Make the leader soak measure the leader, not its harness Source-Revision: 8d69c91f02bcacf01e98d5aebbf2f92547c45738
This commit is contained in:
parent
dd04f397b1
commit
a422116582
165 changed files with 15161 additions and 1969 deletions
|
|
@ -418,6 +418,25 @@ pub struct HookRunEntryDto {
|
|||
pub output: Option<String>,
|
||||
}
|
||||
|
||||
/// Why auto-compaction stopped before completing.
|
||||
#[derive(
|
||||
Debug,
|
||||
Clone,
|
||||
Copy,
|
||||
PartialEq,
|
||||
Eq,
|
||||
serde::Serialize,
|
||||
serde::Deserialize,
|
||||
strum::Display,
|
||||
strum::EnumString,
|
||||
strum::AsRefStr,
|
||||
)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
#[strum(serialize_all = "snake_case")]
|
||||
pub enum AutoCompactCancelReason {
|
||||
UserCancelled,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
|
||||
#[serde(rename_all = "snake_case", tag = "sessionUpdate")]
|
||||
pub enum SessionUpdate {
|
||||
|
|
@ -483,7 +502,7 @@ pub enum SessionUpdate {
|
|||
/// Auto-compact was cancelled (user pressed Ctrl+C)
|
||||
AutoCompactCancelled {
|
||||
/// Reason for cancellation
|
||||
reason: String,
|
||||
reason: AutoCompactCancelReason,
|
||||
},
|
||||
/// Auto-continue completed after compaction
|
||||
/// This signals the TUI to flush pending agent messages and end the turn
|
||||
|
|
@ -1704,6 +1723,16 @@ mod tests {
|
|||
let update: SessionUpdate = serde_json::from_str(json).unwrap();
|
||||
assert_eq!(update, SessionUpdate::MemoryFlushStarted);
|
||||
|
||||
// AutoCompactCancelled (strenum reason)
|
||||
let json = r#"{"sessionUpdate": "auto_compact_cancelled", "reason": "user_cancelled"}"#;
|
||||
let update: SessionUpdate = serde_json::from_str(json).unwrap();
|
||||
assert_eq!(
|
||||
update,
|
||||
SessionUpdate::AutoCompactCancelled {
|
||||
reason: AutoCompactCancelReason::UserCancelled,
|
||||
}
|
||||
);
|
||||
|
||||
// AutoCompactFailed (struct variant)
|
||||
let json = r#"{"sessionUpdate": "auto_compact_failed", "error": "oom"}"#;
|
||||
let update: SessionUpdate = serde_json::from_str(json).unwrap();
|
||||
|
|
|
|||
Loading…
Reference in a new issue