Synced from monorepo

Synced from monorepo

Changes:
- Report invalid MCP server config instead of failing startup
- Keep completed terminal output when the gateway connection is lost
- Show a duration-only detail view for single-task task output
- Don't let a stale registry turn counter hide local sessions
- Raise the file-descriptor soft limit on Linux and log effective limits at startup
- Stop aborting when HTTP client construction fails
- Make session thread and runtime spawn failures recoverable
- Fix main-prompt paste parity in the question freeform input
- Fire SessionEnd hooks on /exit and headless quit
- Embed the deployment-config signing public key
- Repaint paste-chip background on inline panel inputs
- Security: prevent acceptEdits from auto-approving agent writes into the always-trusted global hook root
- Fix stacked "Worked for" markers so parks render as status and turns close with exactly one marker
- Parse hooks from config files
- Add a remote kill-switch for managed-config signature verification
- Security: fix workspace file-reference resolution bypassing workspace filesystem confinement

Source-Revision: d02693a856a54f1030695b36b91d276e96b30b23
This commit is contained in:
grokkybara[bot] 2026-07-25 18:44:42 +00:00
commit 47348d13ec
138 changed files with 7283 additions and 5796 deletions

View file

@ -81,13 +81,23 @@ async fn campaign_leader_mode_remote_dismiss_on_model_pick() {
let mut recorded = false;
'attempts: for attempt in 0..3 {
let mut h = spawn();
h.wait_for_text(WELCOME_SCREEN_SENTINEL, LEADER_TIMEOUT)
.unwrap_or_else(|_| {
panic!(
"leader-mode welcome never rendered (attempt {attempt})\nscreen:\n{}",
h.screen_contents()
)
});
// Cold leader bring-up (leader election plus an unoptimized-binary
// boot) can miss the welcome paint within LEADER_TIMEOUT under
// remote-runner load. The leader outlives this client, so a fresh spawn
// attaches to the now-live leader and paints promptly: retry like a
// missed campaign rather than hard-failing on the first loaded cold
// start, and only panic once all attempts are exhausted.
if h.wait_for_text(WELCOME_SCREEN_SENTINEL, LEADER_TIMEOUT)
.is_err()
{
let screen = h.screen_contents();
h.quit().expect("clean quit");
assert!(
attempt < 2,
"leader-mode welcome never rendered after 3 attempts\nscreen:\n{screen}"
);
continue;
}
if !wait_for_model_via_new_sessions(&mut h, CAMPAIGN_MODEL, Duration::from_secs(60)) {
// Campaign never applied on this spawn; try a fresh TUI.
h.quit().expect("clean quit");