Skip to content

Releases: AgentiLoop/Agent

Agent! 1.1.7 (build 203)

Choose a tag to compare

@AgentiLoop AgentiLoop released this 31 Aug 17:50

Highlights

🏷️ AgentiLoop Rebrand — New Home

  • Everything moved from macOS26AgentiLoop: 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 repairOrphanToolUse pass 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_permission to the accessibility dispatcher (b28a490f)
  • Bumped AgentAccess to 2.10.10 with the getChildren depth 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)

Choose a tag to compare

@AgentiLoop AgentiLoop released this 30 Aug 22:00
image

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 test on every PR into main (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.sh builders 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

  • docs(readme): add build-from-source Troubleshooting section (closes #32) by @chiliec in #41

New Contributors

Full Changelog: v1.1.2.196...v1.1.4.200

Agent! 1.1.1 (build 195)

Choose a tag to compare

@AgentiLoop AgentiLoop released this 30 Aug 04:43
image

Highlights

🗜️ Compaction — Lossless, Bounded & Everywhere

Closes out the remaining compaction gaps behind #37:

  • Tier 2 pruning is no longer lossypruneMessages now spills every tool result to the recovery cache before collapsing it, and each summary line carries the exact restore_tool_result(tool_use_id:"...") recipe. Nothing compaction touches is unrecoverable anymore
  • Spill cache bounded at 50MB.agent/toolcache evicts 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_result content (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 keepRecent now 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)

Choose a tag to compare

@AgentiLoop AgentiLoop released this 29 Aug 23:52

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: call restore_tool_result(tool_use_id:"...") instead of re-reading. Small local models now see exactly what was cleared and how to get it back
  • keepRecent scales with context budget — compaction now keeps max(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 ([cleared prefix) 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

Choose a tag to compare

@AgentiLoop AgentiLoop released this 29 Aug 03:50
b8adfd4
image

✨ 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 into CodexAuth.swift, CodexPatchApplier.swift, and CodexService.swift.
  • KeychainService refactored: 38 named accessors collapsed into enum-keyed get/set (keys preserved).
  • 7 per-provider model fetchers collapsed into one generic keypath-driven fetchProviderModels.
  • withFolderPrefix deduped across Ollama/OpenAI-compatible services into shared LLMMessagePrefix.
  • Removed 4 empty placeholder JSONs (send_message/send_image) from the repo, bundle resources, and project file.

🔒 Reliability & Auditing

  • New ShellSafetyService test 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

Choose a tag to compare

@AgentiLoop AgentiLoop released this 24 Aug 00:34
074e79d
Screenshot 2026-08-23 at 7 34 10 PM

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

Choose a tag to compare

@AgentiLoop AgentiLoop released this 26 Jul 18:40

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

  1. Download Agent_1.0.89.dmg below.
  2. Open the DMG and drag Agent! into the Applications shortcut.
  3. 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

Choose a tag to compare

@AgentiLoop AgentiLoop released this 03 Jun 03:17

🤖 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

Choose a tag to compare

@AgentiLoop AgentiLoop released this 25 Apr 22:35
image

🌐 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_tokens in 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_string over 50 lines; requires minimum 10 chars for replace_all
  • Source verification for diff_apply — validates that the provided source parameter 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 gatingswiftc -parse checks 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

Choose a tag to compare

@AgentiLoop AgentiLoop released this 15 Apr 23:12

What's New in v1.0.69.158

image

🧠 Project Index & Memory

  • Project Index tool — portable JSONL index per file (lines, doc block, top-level symbols)
  • Memory tool — persistent /memories filesystem with global and project scopes
  • 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_agent tool 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 isEnabled defaulting 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:0 warning 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.