Skip to content

Agent! 1.1.41.241-pre

Pre-release
Pre-release

Choose a tag to compare

@AgentiLoop AgentiLoop released this 16 Sep 01:59
· 21 commits to main since this release

⚠️ Pre-release — 1.1.41 (build 241) Golden Gate Update

image

This is a pre-release from main at d48c2355, tagged v1.1.41.241. It includes the changes since v1.1.40.240: Stop now really stops — every shell, daemon, agent-script and AppleScript execution path is wired to Swift Task cancellation and kills the whole process tree, and the daemons clean up after a crashed or quit app. Also: Project.xcconfig becomes the single place to set your bundle ID and Development Team. The .zip / .dmg attachments are built, notarized, and stapled by the Release workflow. Please report regressions against the v1.1.33.233 stable release.

🛑 Stop / Cancellation — process-tree kill everywhere

  • New shared Shared/ProcessTree.swift: walks sysctl KERN_PROC_ALL to find every descendant of a spawned shell, SIGTERMs the tree (leaves first), then SIGKILLs any survivor after a 2s grace period. Process.terminate() alone only signalled the direct child — its children reparented to launchd and kept running (as root, in the helper's case) (1b1c21c7).
  • DaemonCore.cancel / duplicate-instance replacement now use killTree instead of terminate(); new DaemonCore.cancelAll(instanceIDs:) (1b1c21c7, aa27348e).
  • Launch Daemon + Launch Agent (AgentHelper/main.swift, AgentUser/main.swift): each XPC connection tracks its in-flight instance IDs; invalidationHandler / interruptionHandler cancel all of them, so an app crash, quit, or client-side timeout never leaves a shell running detached (aa27348e).
  • HelperService / UserService: one instance ID per call (was per service) so concurrent tabs can no longer clobber each other's commands; executeViaXPC is wrapped in withTaskCancellationHandler so stop() / stopTabTask() sends an explicit XPC cancel; start/finish timeouts now cancel the remote process too; cancel() becomes cancelAllInFlight() (aa27348e, e524a4e9).
  • In-process TCC shells (ShellTools.swift): new ProcessBox + runCancellable bridge Task cancellation to a process-tree kill, including the race where cancel arrives before run() registers the process (ff058d6e).
  • Agent-script runner (ScriptService+Execution.swift): both the tab's cancel flag and Task cancellation now kill the runner and everything it spawned (07d0bcae).
  • run_applescript (main task + tab handler) is routed through osascript as a child of Agent.app instead of in-process NSAppleScript — TCC is inherited via responsible-process attribution and Stop can kill it via the tree kill. List results are now returned as text instead of "(no output)" (7505b757).
  • RunStop.stop() comment clarified: userService is not cancelled wholesale; the main task's own commands are cancelled via runningTask?.cancel() (e524a4e9).

🧩 Project identity — Project.xcconfig

  • BundleID.xcconfig renamed to Project.xcconfig; it now carries DEVELOPMENT_TEAM as well as APP_BUNDLE_ID. The project file no longer sets DEVELOPMENT_TEAM anywhere, so switching to your own Team ID is a one-line edit (83b6c3ef, d084277c, 9635c31e).
  • Agent.help/Contents/Info.plist bundle ID is now $(APP_BUNDLE_ID).help instead of a hardcoded string (f038bbff).
  • Display name corrected to Agent! (was "Agent Ada") (19f4b596).

🖥️ UI & Attachments

  • App-menu items use .labelStyle(.titleAndIcon) so their icons show again (db4a7a3f).
  • Screenshot / paste attachments taken while a tab is selected now log "📎 Attached…" into that tab instead of the main log (fa81cea9).
  • [weak self] captures in speech-recognition and activity-log render callbacks; ThinkingIndicatorView imports Combine (94102ed7).

🏗️ Build & CI

  • AppleIntelligenceMediator: GenerationOptions(sampling:) vs samplingMode: selected via #if compiler(>=6.4) so the Xcode 27 SDK and the CI's Xcode 26 both compile (707bf116).
  • Fixed an Xcode 26.6 "failed to produce diagnostic" compiler crash in Logging.swift (tab local shadowing tab(for:)) that broke CI (0e4f7e68).
  • SwiftPM minimum versions raised to the resolved package versions (1f82207f).

🔢 Version

  • Version/build updated to 1.1.41 (build 241) (d48c2355).

Full Changelog: v1.1.40.240...v1.1.41.241