Synced from monorepo
Synced from monorepo Changes: - Temporarily disable session share link creation in the TUI - Do not approve plan on empty Enter from the revise prompt - Expose chat product Skills via ACP available_commands_update - Return immediately from a blocking wait on an already-completed ACP task - Split headless pager module for clearer structure - Stop git worktree prune from removing user registrations on resume - Use compaction sampler tokenizer for item token counts - Opt-in extra root CAs via GROK_EXTRA_CA_BUNDLE - Cancel all session subagents when the user stops - Let the session persistence actor exit when its session ends - Make fullscreen terminal resize much cheaper on long sessions - Report honestly from kill_task when an ACP task does not exist - Hide /usage for external-auth deployments - Forward the history-load trailer’s computer_reason to the client - Remove ineffective no-op tool reminder - Declare slash-command screen-mode support in one place - Keep settings enum picker on the committed value until Enter - Reap a PTY’s full process tree - Stream tool calls from headless mode over ACP - Bridge gateway task lifecycle to ACP for chat session background tasks - Don’t warn about truncated history on a suppressed replay - Fit full-replace summarizer input and recover on context-length errors - Stop dropping agents over an unrecognized frontmatter color - Add /undo as a slash alias for /rewind - Harden sleep/wake token-refresh paths against forced re-login - Add session/list ACP method - Give each sampling backend its own conversion module - Treat an unenrolled child process as a lint error - Suppress the cancelled marker on send-now wake turns - Stop tearing down Roslyn on every edit, and read C# diagnostics Source-Revision: 2a28b4a86cfc4a4c133c35b7fc2a6a9964387c39
This commit is contained in:
parent
500129c714
commit
dd04f397b1
367 changed files with 29489 additions and 10051 deletions
|
|
@ -169,7 +169,7 @@ async fn notify_session_title(agent: &MvpAgent, session_id: acp::SessionId, titl
|
|||
use crate::extensions::notification::{SessionNotification, SessionUpdate};
|
||||
|
||||
let notification = SessionNotification {
|
||||
session_id,
|
||||
session_id: session_id.clone(),
|
||||
update: SessionUpdate::SessionSummaryGenerated {
|
||||
session_summary: title.to_owned(),
|
||||
},
|
||||
|
|
@ -180,6 +180,8 @@ async fn notify_session_title(agent: &MvpAgent, session_id: acp::SessionId, titl
|
|||
acp::ExtNotification::new("x.ai/session_notification", params.into());
|
||||
let _ = agent.gateway.ext_notification(ext_notification).await;
|
||||
}
|
||||
|
||||
agent.notify_session_info_update(&session_id, title);
|
||||
}
|
||||
|
||||
async fn rename_chat_conversation(
|
||||
|
|
@ -651,6 +653,29 @@ async fn handle_plugins_reload(agent: &MvpAgent) -> ExtResult {
|
|||
async fn handle_commands_list(agent: &MvpAgent, args: &acp::ExtRequest) -> ExtResult {
|
||||
let req: crate::session::slash_commands::ListCommandsRequest = parse_params(args)?;
|
||||
|
||||
let availability = agent.command_availability();
|
||||
let skills_config = agent.cfg.borrow().skills.clone();
|
||||
let compat = agent.cfg.borrow().compat_resolved;
|
||||
|
||||
// Chat product catalog never uses cwd plugin discovery / folder-trust.
|
||||
// Prefer kind=chat even when sessionId is set so the pull matches ACU.
|
||||
if req.kind.as_deref() == Some("chat") {
|
||||
let response = crate::session::slash_commands::list_commands(
|
||||
None,
|
||||
&skills_config,
|
||||
None,
|
||||
availability,
|
||||
compat,
|
||||
false,
|
||||
Some("chat"),
|
||||
Some(agent.auth_manager.clone()),
|
||||
)
|
||||
.await?;
|
||||
return Ok(acp::ExtResponse::new(Arc::from(
|
||||
serde_json::value::to_raw_value(&response)?,
|
||||
)));
|
||||
}
|
||||
|
||||
if let Some(session_id) = req.session_id.as_ref() {
|
||||
let Some(handle) = agent.session_handle_waiting_for_load(session_id).await else {
|
||||
return Err(
|
||||
|
|
@ -663,10 +688,6 @@ async fn handle_commands_list(agent: &MvpAgent, args: &acp::ExtRequest) -> ExtRe
|
|||
)));
|
||||
}
|
||||
|
||||
let skills_config = agent.cfg.borrow().skills.clone();
|
||||
let compat = agent.cfg.borrow().compat_resolved;
|
||||
let availability = agent.command_availability();
|
||||
|
||||
// For a given cwd, compute the plugin registry the same way a session would
|
||||
// at spawn time (via build_for_cwd) and the same way reload_plugins_impl does
|
||||
// (ancestor project config walk + vendor compat merge). This is required so
|
||||
|
|
@ -713,8 +734,10 @@ async fn handle_commands_list(agent: &MvpAgent, args: &acp::ExtRequest) -> ExtRe
|
|||
availability,
|
||||
compat,
|
||||
false,
|
||||
req.kind.as_deref(),
|
||||
Some(agent.auth_manager.clone()),
|
||||
)
|
||||
.await;
|
||||
.await?;
|
||||
Ok(acp::ExtResponse::new(Arc::from(
|
||||
serde_json::value::to_raw_value(&response)?,
|
||||
)))
|
||||
|
|
|
|||
Loading…
Reference in a new issue