Releases: loopedautomation/agent-framework
Releases · loopedautomation/agent-framework
Release list
v0.11.1
Patch release.
- fix(gemini): strip JSON Schema keywords Gemini rejects from tool parameters — v0.11.0's
geminiprovider sent tool schemas verbatim, and Gemini hard-rejects standard JSON Schema keywords like$schemaandadditionalPropertieswith a 400. The adapter now sanitizes tool parameters down to the OpenAPI-style subset Gemini accepts. Any agent usingprovider: geminiwith tools needs this release.
v0.11.0
Highlights since v0.10.0:
- feat(providers): native
geminiprovider — the Gemini API'sgenerateContentdialect.provider: geminiwithid: gemini-3.6-flashand aGEMINI_API_KEYis all it takes;base_urlpoints at Gemini-compatible proxies. Thinking tokens count toward output usage, and hermetic deployments allowlistgenerativelanguage.googleapis.comautomatically. - New example:
tty-bot— the tty trigger paired with the gemini provider: a bearer-authed WebSocket terminal with no permissions block, so the terminal is the agent's whole surface. - Docs — a Gemini provider page and the providers overview updated to four dialects.
No API changes.
v0.10.0
Highlights
- Voice: agents reply with a voice note or text on demand — lead a reply with
__VOICE__or__TEXT__. - TTY cancel frame:
{type:"cancel"}aborts the in-flight run over the protocol (barge-in without dropping the socket). - TTY hello frame: now carries the agent's self-chosen name and description, so clients can label an agent by name.
- TTY images: input frames can carry images.
- Fix: shell redirections (
2>&1and friends) are no longer misread as commands inpermissions.run.
What's Changed
- release: v0.10.0 by @RatulMaharaj in #158
Full Changelog: v0...v0.10.0
v0.9.1
Fixes
- tty trigger in docker: hermetic mode now derives the tty listener's host grant; agents with a
ttytrigger no longer crash at startup in containers.
Additions
/healthalias for/healthzon the status surface.- Releases now publish floating GitHub Action tags (
v0.9,v0) alongside the immutablev0.9.1.
🤖 Generated with Claude Code
v0.9.0
What's Changed
- docs(action): rewrite the GitHub Actions page in the house voice by @RatulMaharaj in #138
- feat(permissions): validate and startup warn on run grants that defeat the allowlist by @RatulMaharaj in #139
- Diplay a loader during compact by @HappyDevs1 in #143
- Notify af users about newer CLI versions by @HappyDevs1 in #141
- feat(triggers): tty trigger — the REPL as a WebSocket surface by @RatulMaharaj in #144
- feat(voice): allow base_url override on openai stt/tts engines by @RatulMaharaj in #145
- feat(triggers): inbound-HTTP transports for chat triggers (Telegram webhook, Slack Events API) by @RatulMaharaj in #147
Full Changelog: v0.8.0...v0.9.0
v0.8.0
Highlights
- GitHub Action — run an agent for exactly one turn in CI:
uses: loopedautomation/agent-framework@v0.8.0pipes a prompt in and hands the reply back as a step output. See GitHub Actions. - One-shot
af run— piped stdin now drives the plain repl, soecho "prompt" | af runanswers once and exits. This is the release that makes the action work against the default image. - The release process is now documented in RELEASING.md.
What's Changed
- GitHub Action: run an agent one-shot in CI by @RatulMaharaj in #137
- docs: RELEASING.md — the release process, written for an agent to follow by @RatulMaharaj in #136
Full Changelog: v0.7.1...v0.8.0
v0.7.1
Highlights
- Voice agents — talk to an agent live in a Discord voice channel; agents also hear voice notes and speak the reply back
- Vision — agents can see the images people send them
- GitHub trigger — a first-class trigger for webhook events
- Permissions & security — hermetic mode enforces net at the Deno layer, wildcard hosts compile into
--allow-net, a bare*escape hatch for net/run, symlinks are resolved before authorizing a path, and scoped secrets are redacted from tool output, traces, logs and persistence /stop— aborts the run in progress
Breaking change
tools.customhas been removed — MCP is the extension point for custom tools
Note: v0.7.0 was published to JSR with a stale internal version constant and is superseded by this release. Use 0.7.1.
Full Changelog: v0.7.0...v0.7.1
v0.7.0
VERSION = "0.6.0" in packages/core/mod.ts), so the binaries and Docker image workflows failed and the JSR 0.7.0 packages self-report 0.6.0. Use v0.7.1 instead.
v0.6.0
What's Changed
- Plans 7-13: email, multi-agent, evals, slash commands, footprint, channels, concurrency by @RatulMaharaj in #64
- Expand gh-issues skill and pin gh CLI version in example image by @RatulMaharaj in #65
- Fix run-allowlist bypass via background
&; add permission security suite by @RatulMaharaj in #66 - Add codex provider: run agents on a ChatGPT subscription by @RatulMaharaj in #67
- docs: rewrite README in the Looped voice, add alpha-software note by @RatulMaharaj in #76
- feat(cli): add --version/-v flag to af by @yashay16s-oss in #75
- Allow the CLI to run deno by @HappyDevs1 in #81
- docs: add a contributing guide by @HappyDevs1 in #82
- docs: align framework description with marketing site one-liner by @yashay16s-oss in #78
- feat(config): allow uppercase characters in handle by @yashay16s-oss in #83
- feat: distribute af via Homebrew — compiled binaries, version cmd, docs by @gtchax in #79
- feat: email triggers — Resend, IMAP, Gmail and Outlook transports (plan 7) by @RatulMaharaj in #71
- Plan 9 phase 1: the eval harness (af test) by @RatulMaharaj in #72
- feat(cli): interactive TUI for af run by @RatulMaharaj in #110
- fix(providers): reconstruct codex output when response.completed is empty by @HappyDevs1 in #85
- feat: slash commands — built-ins, config-defined commands, native channel registration (plan 10) by @RatulMaharaj in #111
- Plan 13 phase 1: per-conversation ordering and bounded concurrency by @RatulMaharaj in #74
- feat: /compact, auto-compaction and /new — history maintenance built-ins by @RatulMaharaj in #112
- docs(telegram): options table, matching the Discord page by @RatulMaharaj in #114
- feat: agent-created schedules — reminders and recurring runs via native tools by @RatulMaharaj in #115
New Contributors
- @yashay16s-oss made their first contribution in #75
- @HappyDevs1 made their first contribution in #81
- @gtchax made their first contribution in #79
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
- docs(discord): add an options table to the trigger page by @RatulMaharaj in #54
- feat(loop): wrap up capped runs with a model-written summary by @RatulMaharaj in #56
- fix(tools): make run_bash permission parsing quote-aware by @RatulMaharaj in #58
Full Changelog: v0.4.0...v0.5.0