Celebrating 600 Stars
π§ Context Compaction Rebuild
- Compaction threshold = context window β reserved output β buffer; real
input_tokensfrom the provider drive the trigger (766ad346) - Provider-side 9-section LLM summary (
compactWithLLM) replaces on-device 4K summaries β cache-friendly append + frozen rebuild (8c2f60e6) - Open goal, plan checklist and edited files are re-attached after compaction; read-dedup resets (
57d70491) - Goal/plan/ask_user results protected from microcompact; 413 overflow routes through forced LLM compaction with a shorter-request retry (
7d1397f6) - Time-based microcompact at task start; oversized tool results persisted at emission (
1ad1c821,eab1bde7) max_tokensrecovery: escalate first, then continue; lowermax_tokenson "input + max_tokens exceed context limit" instead of pruning (0551063a,dc628bed)- Recoverable tool-result stubs now carry age + provenance β
ToolResultCachespills a.metasidecar (tool name, input, capture time);restore_tool_resultprepends a provenance header and a STALE warning when the file changed since capture; Tier 0 (LLM summary) and Tier 2 (prune) now spill block-array tool results too (aa4f377f) - Cap the chat-history block in the system prompt β recent-task log to 40K chars (tail kept), older-task lines to 500 chars; fixes multi-MB system prompts (3.8M tokens) that message compaction could never shrink (
0b4de3db)
π‘οΈ Edit Safety β Read-Before-Edit Gate
- Edits to files that were never read, or changed on disk since the last read, are refused (sha256 gate) (
ce84735f) - Refusal auto-reads the file so the very next call can be the edit; stronger prompt rule (
cfd921f0) - Gate applied to tab tasks as well (
5ddd408c) - Softer read-dedup: re-send content with a duplicate note instead of blocking (
1ead45f8)
π Security & Robustness
- Daemon-side
ShellSafetyServiceenforcement in AgentHelper + AgentUser β same rules as the client, defense-in-depth (f9d22410) XPCClientTrust: release builds reject un-teamed XPC clients (6f8ccb0e)- Fixed
Processpipe deadlocks (read stdout beforewaitUntilExit) at 10 sites β batch cmds, FileTools, git status, osascript, gh release, swiftc runner, Ollama health-check (52b8c71d,7a649a29) WebAutomationService:cleanExpiredCachenow takescacheLock(f61f31e4)- Fixed crash in async tab render: attachment cells built on main (
a36559a5) - Fixed
servicesmutated-after-capture in overflowCompactor (64d74150)
π Providers & Streaming
- Claude / OpenAI-compatible / Ollama streams surface mid-stream error events and honor cancellation per line (
65dbb751,80cb837c,cfe7bb1c) LLMRateLimiter.recordIfRateLimiteddedupes 429/529 Retry-After handling across all services (2d32f4c7)- Jittered exponential retry delay + Retry-After (
c45fff87) - Fixed 400 "text.content: Extra inputs are not permitted" β nudges no longer write
contentonto text blocks (55f91049) - Read-only tools start while the Claude response is still streaming (
92895814) - One-shot cache-warmth note once a β₯1M window passes 25% usage (
70474a3d) OpenAIToolCallParsingextracted fromOpenAICompatibleService; DSML non-string params parse JSON fragments (e708b6ec,1c3d1c45)
π Task Loop & Completion Gates
task_completeruns completion gates and clears goal state; premature completion on narrated done/task_complete fixed (b5320050,beed0d35)- Drop bare stop-phrase completion; treat tool_use-without-results as text-only (
487cb864) - Verify gate builds the open project related to the task's folder and recognizes every edit tool recorded in
commandsRun(7c4acb7f,c37aa2bc) XcodeService.buildProjectemitsBUILD SUCCEEDED/BUILD FAILEDmarkers the gates actually check (778a12cd)- Never orphan a
tool_use: blocks with unparsable name/input are dispatched; nudges appended ontotool_resultcontent (5283b9da,66fcec5a) - Completion-gate refusals capped at 3 per task; edit-cycle detector reset at task start; periodic goal-state reminder every 10 turns (
877be7fb,8f6a7d93,2749be08) - Sub-agent results delivered honestly; external file changes surfaced each turn as diff snippets (
8d39ba1e,06039927) - Input-aware shell concurrency classification; stop pre-validating paths inside free-form shell text (
4940a7e7,35cafad3)
π§° Tool Routing Fixes
file(action:"read_dir")routes to the read_dir handler;safari(action:"search")routes to in-browser search (8c4180f3,9ea6756f)accessibility(clipboard)reads the verb fromsub_action(c8ef8a8b)batch_tools/multisub-tasks route throughhandleFileToolsoread_fileworks (b5da6bb3)- Xcode tool gating walks up parent dirs; mkdir no longer switches the project folder into hidden dirs (
1b256268) - Read-only tool batches stay filled up to the concurrency limit instead of dispatching short batches (
d09a3dee)
π₯οΈ Activity Log & UI
- Large tab logs render off-main with a determinate 0β100% "Processing tab dataβ¦" overlay; progress now chunked so the bar moves from 0% instead of stalling (
1a41a107,6446531d,6a8c248a,d25a136d,e50bf353) - Activity log no longer truncates at 50K; render path is append-only; 500K restore-time trim removed (
d118c12e,22b67c62) - New "Activity Log Below HUD" option (
832a2bef) - Steps list: drag-to-resize height + "Auto-scroll Steps" preference that follows the newest step unless the mouse hovers (
6af19ee3) - Per-tab Steps list, HUD height and Steps expanded state persist across launches (
145a2b98,cd76f04f)
π READMEs
- Overhauled English README (218 lines, v1.1.x What's New) and synced DE/ES/FR/ZH (
c356ef28,5c4ffbe1) - AgentScript fully documented: compile/dlopen model,
script_main,AGENT_PROJECT_FOLDER/AGENT_SCRIPT_ARGScontract,<Name>_input/_output.jsonconvention, real shipped examples (f40c541c,17a92a91,8c210bed,817f1b52) - Headers renamed to "AgentiLoop Agent! for Mac" (
b9154741,fe1a2f5b)
π¦ Dependencies
- AgentiLoop packages updated to fixed releases β Access 2.10.13, Audit 1.3.3, ColorSyntax 1.2.4, D1F 1.0.8, EventBridges 1.1.3, LLM 1.0.4, MCP 1.6.4, Swift 1.1.5, TerminalNeo 1.37.5, Tools 2.53.9; AX success responses parsed as JSON instead of substring match (
bfab6952)
β Tests
- Full suite green β 273/273 (
deb72371,28c92161) - New coverage: LLM compaction (threshold formula, usage-driven measure, frozen rebuild, failure no-op, protected microcompact), edit gate, ToolErrorClassifier, FallbackChainService, provider parsers (Ollama tool-call extractors, CodexJWT, CodexPatchApplier, OpenAIToolCallParsing), Apple AI (Tier 1) vs non-Apple (Tier 0/2) compaction ladder (
8c4eaf88,f15abf7c,51e02cfd,1c3d1c45,e708b6ec,43142745) - System prompt now documents the read-before-edit gate (
d94b8271) - Thanks to @chiliec and @harshitethic for the test contributions (#40, #43)
π Repo
- Track
.claude/CLAUDE.mdβ record Agent! official birthday (April 1st) (9780eace) - New release at 600 stars (
8653bc8f)
Full Changelog: v1.1.9.205...v1.1.33.233