Releases: AgentiLoop/Agent
Releases · AgentiLoop/Agent
Release list
Agent! 1.1.7 (build 203)
Highlights
🏷️ AgentiLoop Rebrand — New Home
- Everything moved from macOS26 → AgentiLoop: app menu links, SPM package URLs, update checker, script repos, docs, and the built-in help book (
055777d5,678e9baf) - Website menu now points to https://AgentiLoop.ai (
833280e3) - READMEs updated across all 5 translations (EN/ES/FR/ZH/DE) (
9e5704a5) - Cleared the SwiftPM "conflicting identity for agentaudit" warnings — AgentAccess 2.10.11 and AgentD1F 1.0.7 now declare the AgentiLoop AgentAudit URL, and the app pins those versions (
f1cbd124)
🛠️ Reliability Fixes
- Fixed API 400 "tool_use ids without tool_result blocks" — new
repairOrphanToolUsepass at the request boundary (a2f719c1) - Fixed silent drop of parallel read-only tool batches that aren't shell-parallelizable (
a6a820b1) - Fixed missing "✅ Completed" in the activity log when the log is at its 50K cap (
7e388046)
♿ Accessibility
- Added
check_permission/request_permissionto the accessibility dispatcher (b28a490f) - Bumped AgentAccess to 2.10.10 with the
getChildrendepth fix (5d98de6a)
🧹 Project Hygiene
- Removed stray "Agent! copy-Info.plist" Xcode target-duplication artifact and its dangling pbxproj references (
cdef3091)
🔢 Versioning
- Bumped version 1.1.4 (build 200) → 1.1.7 (build 203)
Full Changelog: v1.1.4.200...v1.1.7.203
Agent! 1.1.4 (build 200)
Highlights
🌐 Website & GitHub — One Click Away
- New Website (globe icon) and GitHub (chevrons icon) items in the Agent! app menu, right below Check for Updates…
- Website → https://agent.macos26.app · GitHub → https://github.com/macOS26/Agent
- Check for Updates… got its own icon too (🔄
arrow.triangle.2.circlepath) so the whole menu block aligns like a proper Mac app
✅ CI — Every Pull Request Now Builds & Tests
- New CI — Build & Test workflow runs
xcodebuild teston every PR intomain(and every push) — ad-hoc signed, no secrets needed, works for fork PRs (204ba2b8) - Fixed two stale tests that failed (and crashed the test host) on every run, and skipped the environment-dependent suites that can't run on a clean runner (
147d4cfd) - Result: 200 tests in 13 suites, green — locally and on the runner
📝 Documentation
- New Troubleshooting (Build from Source) section in the README — the five snags first-time
./build.shbuilders hit, each verified against the script (#41, closes #32 — thanks @chiliec 🎉) - README thank-you note updated across all 5 translations (EN/ES/FR/ZH/DE): "Mac desktop computers" → "Mac studio computers" (
0c13a39a)
🔢 Versioning
- Bumped version 1.1.2 (build 196) → 1.1.4 (build 200)
What's Changed
New Contributors
Full Changelog: v1.1.2.196...v1.1.4.200
Agent! 1.1.1 (build 195)
Highlights
🗜️ Compaction — Lossless, Bounded & Everywhere
Closes out the remaining compaction gaps behind #37:
- Tier 2 pruning is no longer lossy —
pruneMessagesnow spills every tool result to the recovery cache before collapsing it, and each summary line carries the exactrestore_tool_result(tool_use_id:"...")recipe. Nothing compaction touches is unrecoverable anymore - Spill cache bounded at 50MB —
.agent/toolcacheevicts oldest-first after each spill instead of growing forever - Per-project spills for ALL providers — LM Studio/Ollama/vLLM/OpenAI-compatible services now point the spill cache at the project folder like Claude always did (previously their spills landed in a temp dir)
- Per-iteration threshold refresh — the async context-window fetch (LM Studio
/api/v0/models, Ollama/api/show, vLLM/v1/models) can land after a task starts; all three loops (main, tab, sub-agent) now pick up the real threshold on the next turn instead of running the whole task on the 32K→17,600 fallback - Circuit breaker recovers — after 3 failed compaction attempts, compaction retries once the transcript grows ~25% past the last attempt instead of never compacting again
- Screenshot tool results now compact — block-array
tool_resultcontent (image returns) is finally token-counted (nested text + per-image cost) and microcompacted: text spilled, images dropped, recoverable stub left behind. Vision-heavy sessions were previously invisible to the compactor - Sub-agents compact too — long research agents ran without any compaction and grew until the provider rejected the transcript; they now run the same tiered compaction as the main loop
- Sharper trigger for code — the cheap chars/4 pre-estimate is inflated 25% (dense code ≈ 3.3 chars/token) so the precise on-device token count isn't skipped when it matters; scaled
keepRecentnow applies to Tier 2 as well (6–24 messages by context budget) - Bounded summary cache — the in-memory Apple AI summary cache caps at 512 entries
🔢 Versioning
- Bumped version 1.1.0 (build 194) → 1.1.1 (build 195)
Full Changelog: v1.1.0.194...v1.1.1.195
Agent! 1.0.99 (build 193)
Highlights
🗜️ Compaction — No More Read-File Loops
- Self-describing stubs instead of
[cleared]— when microcompact clears an old tool result, it now writes a stub with a 2-line head preview (enough to identify which file/command it was) plus explicit recovery instructions: callrestore_tool_result(tool_use_id:"...")instead of re-reading. Small local models now see exactly what was cleared and how to get it back keepRecentscales with context budget — compaction now keepsmax(3, min(24, threshold / 6000))recent tool results instead of always just 3. A 131K Qwen (threshold ~72K) keeps 12 recent reads intact; Claude-class windows keep up to 24; tiny models keep the old floor of 3- Idempotent passes — already-stubbed results (
[clearedprefix) are skipped on later compaction passes so stubs aren't re-spilled or double-shrunk - Together with the v1.0.98 real-context-window fix, this addresses issue #37 from both ends: compaction fires ~4× later, and when it does fire it preserves more reads and makes the rest recoverable
🔢 Versioning
- Bumped version 1.0.98 (build 192) → 1.0.99 (build 193)
Full Changelog: v1.0.98.192...v1.0.99.193
Agent! 1.0.95.189
✨ Live Streaming HUD
- Thinking deltas and tool-call announcements now stream to the LLM Output HUD in real time — no more silent stalls while the model reasons (Claude, OpenAI-compatible, Ollama, and Codex providers).
- Inline 🧠 / ⚙️ stream markers render compactly (
🧠🧠🧠⚙️tool) with blank lines collapsed for a clean, dense stream. - New Show HUD toggle in HUD options; the viewfinder icon turns green when the HUD is on, gray when off.
- New Smooth Streaming toggle (typewriter drip effect) — turn it off and LLM output appears instantly.
⚡️ Performance & Responsiveness
- Drip renderer rewritten with adaptive chunked appending — eliminates O(n²) index walks on long outputs.
- Drip renderer now indexes by Unicode scalars, so emoji grapheme merges can't skip or eat characters.
- Claude system prompt split into stable + dynamic cache blocks for prompt-cache hits on the first turn.
- Rate-limit backoff is now logged before LLM requests instead of stalling silently.
- Hook execution is non-blocking with a 30-second timeout.
🛠 Refactoring & Code Health
CodexService.swift(948 lines) split intoCodexAuth.swift,CodexPatchApplier.swift, andCodexService.swift.KeychainServicerefactored: 38 named accessors collapsed into enum-keyed get/set (keys preserved).- 7 per-provider model fetchers collapsed into one generic keypath-driven
fetchProviderModels. withFolderPrefixdeduped across Ollama/OpenAI-compatible services into sharedLLMMessagePrefix.- Removed 4 empty placeholder JSONs (send_message/send_image) from the repo, bundle resources, and project file.
🔒 Reliability & Auditing
- New
ShellSafetyServicetest suite — 26 tests covering all shell guardrail rules. - Console audit trail completed: every tool call and every helper command is now logged.
🎨 UI Polish
- Header toolbar reordered by usage frequency.
Full Changelog: v1.0.93.187...v1.0.94.189
Agent! 1.0.93.187
What's New
- Complete the Console audit trail: every tool call and every helper command
- Derive XPC client requirement from own signature instead of hardcoding team
- Require same-team code signing on both XPC listeners
- Cache-stable state blocks, stale-goal expiry, image-aware token counts
Full Changelog: v1.0.92.186...v1.0.93.187
Agent! 1.0.89.183
Agent! 1.0.89 (Build 183)
Autonomous macOS agent with a privileged Launch Daemon for root-level command execution via XPC.
What's New
- Requesty LLM provider — Requesty added as a selectable LLM provider alongside Claude, Ollama, OpenAI-compatible endpoints and Apple Intelligence (Foundation Models). Thanks to @Thibaultjaigu (#25).
- Tailscale support — App Transport Security settings updated so Agent! can reach LLM endpoints served over a Tailscale tailnet (self-hosted Ollama / OpenAI-compatible servers on your private network).
- Version bump to 1.0.89 / build 183.
Install
- Download
Agent_1.0.89.dmgbelow. - Open the DMG and drag Agent! into the Applications shortcut.
- Launch Agent! and approve the privileged helper daemon once when prompted (System Settings → General → Login Items & Extensions).
Requirements
- macOS 26.0 or later
- Apple Silicon or Intel Mac
Full Changelog: v1.0.88.182...v1.0.89.183
Agent! 1.0.88.182
🤖 Agent! 1.0.88.182 Release Notes
🔧 DeepSeek Re-Fix
- Fixed DeepSeek provider integration issues that regressed in 1.0.87
- Re-tuned tool consolidation for DeepSeek models to prevent malformed tool calls
- Improved error handling for DeepSeek API responses
- Fixed streaming mode compatibility with DeepSeek v3 models
📦 Install
- Download Agent_1.0.88.181.dmg
- Drag Agent! to /Applications
- Launch and approve the privileged daemon when prompted
Agent! 1.0.80.170
🌐 New Provider: OpenRouter
- OpenRouter as a first-class LLM provider — access hundreds of models through a single API key
- Protocol toggle — switch between OpenAI-compatible and Anthropic-compatible endpoints per model
- Smart model catalog — fetches and filters OpenRouter's /models to only show tool-capable models with real context windows (strips embedding, image-only, and preview entries)
- ClaudeService integration — Anthropic-compatible OpenRouter models route through ClaudeService with proper Bearer auth (
sk-or-key detection) and tool forwarding - Full UI support — settings panel, model picker, fallback chain, and tab configuration all wired up
🛡️ Error Handling & Reliability
- Stop infinite-loop on misdetected context overflow — narrowed detection to require "exceed/too long/too many" alongside keywords; plain
max_tokensin unrelated parameter errors no longer triggers aggressive pruning - Short-circuit OpenRouter free-tier 429s — detects shared free-tier rate limits and bails immediately instead of churning through futile retries
- Prune loop cap — if pruning messages doesn't actually shrink history, stops retrying (max 3 consecutive prune attempts)
✏️ Code Editing Guardrails
- Duplicate edit rejection — code-level detection blocks the exact same
(file, old_string)pair on consecutive turns, preventing stuck loops - Edit cycle detection — tracks files edited across recent turns and nudges when the same 2–3 files keep alternating without progress
- Stuck threshold lowered — nudge at 2 failures (was 3), give-up at 4–6 failures (was 6)
- Edit size safety — refuses edits with
old_stringover 50 lines; requires minimum 10 chars forreplace_all - Source verification for diff_apply — validates that the provided
sourceparameter matches actual file content at the specified lines, preventing silent corruption from stale line numbers - Truncation warning on write_file — warns when new content is less than 50% of the original file size
- Post-edit diagnostic gating —
swiftc -parsechecks only run after 2+ consecutive edit failures, avoiding noisy false positives
📝 System Prompt Improvements
- Commitment Rule — new hard contract: claiming "I found the problem" MUST be followed by an edit tool call, not another read. Repeated certainty claims without shipping edits are flagged as a failure mode
- Anti-hallucination reinforcement — stronger guidance against fabricating findings from incomplete reads
🔧 Other
- AgentTools bumped to v2.52.0
- Version bumped to 1.0.80 (build 170)
Agent! 1.0.69.158
What's New in v1.0.69.158
🧠 Project Index & Memory
- Project Index tool — portable JSONL index per file (lines, doc block, top-level symbols)
- Memory tool — persistent
/memoriesfilesystem withglobalandprojectscopes - Consolidated per-project hidden dirs under
.agent/{index,memory,worktrees,plans} - Prompt version now derived from marketing + build number (no more hardcoded revision)
✏️ Editing & Diff
- diff_apply fix — splice source into file instead of replacing entire content
- Fix diff_apply truncation and diff-formatted input handling
- Edit reliability: drop truncation guard, add cache invalidation + no-op detect
- Stuck-edit nudge: lower threshold to 3, make actionable
🍎 Apple Intelligence
- Apple AI: persist accessibility agent session across turns
- Apple AI: use Apple AI itself to classify follow-up prompts
- Apple AI: add
run_agenttool for launching agents via FoundationModels - Apple AI: disable shell and applescript tools — accessibility only
- Fix Apple AI misrouting non-agent tool names to run_agent
- Fix Apple Intelligence
isEnableddefaulting to false
🎨 UI Polish
- Long Cmd+V pastes captured as removable chips with first+last char preview
- LLM output: stop last-word flickering with cursor
- LLM output: don't snap to bottom on mouse-exit when not streaming
- Tab labels: main tab shows current model, LLM tabs preserve raw model case
- ToolStepsView: persist expanded state across Cmd+B and new steps
- Multi-line log messages drop onto their own line below timestamp
🔧 Fixes & Cleanup
- Fix LLM tab provider/model clobber + per-tab usage breakdown
- Fix tool output formatting: newline prefix and
:0:0warning cleanup - Replace force-unwrap with if-let in diff_and_apply
- Pin AgentTools 2.50.10 — adds PROJECT INDEX prompt section
- Efficient-action system prompt rules to curb redundant file re-reads
- Anti-confabulation: dedup tool names, prune aliases, harden read guard
- Summarize comments across all major Swift files
- Wrap long lines with SwiftFormat across the project
📦 Dependencies
- AgentTools 2.50.10
- AgentAccess 2.9.5 (screenshots no longer block main thread)
DMG to follow.