Product Updates & Releases

What’s new in Anvil

New features, engine improvements, model rollouts, and fixes shipped directly to the Anvil platform and CLI ecosystem.

Current Version

v1.32.0

Last Updated

October 27, 2026

Total Releases

65 Updates

System Status

Operational

1 month ago
v1.19.4PATCH
Platform Update
Fixed
  • Updated the document editor's underlying libraries to pick up their latest security fixes.
1 month ago
v1.19.3PATCH
Platform Update
Changed
  • The skill-creator-pro skill now holds skills to Anthropic's published skill-authoring best practices. Its review checks the name and description limits (a description of at most 1,024 characters, written in the third person), reference files linked directly from SKILL.md with a contents list on long ones, validate-and-fix loops, script hygiene, and consistent wording with concrete examples. Before agreeing to build a skill it asks what the agent got wrong without one. Its design brief now includes three test scenarios, and after building it offers to run them with a fresh agent and fix what fails.
  • The skill-audit and prompt-audit skills now finish instead of turning up new issues on every run. An issue is reported only when the audit can name a realistic situation and what goes wrong in it, so style preferences and hypotheticals are left out, and scores follow the findings. Every critical and high finding gets a ready-to-paste fix in one round (previously at most three per audit), with medium findings as an optional extra. A re-audit in the same conversation checks that the earlier findings were fixed, looks only at the text that changed, and says when there is nothing material left to fix. skill-audit also checks skill packages against Anthropic's published skill-authoring best practices: the name and description limits the platform enforces are reported as high, and guidance such as the 500-line body, directly linked reference files and contents lists on long ones as medium, with a new Conciseness & Packaging rating.
1 month ago
v1.19.2PATCH
Platform Update
Changed
  • Account security is tighter. A session now ends 30 days after you sign in, however recently you used it. Changing your password signs out every other device and revokes all of your API keys. Managing API keys, sessions and your password now needs a browser sign-in: an API key can't do it. Password changes are rate-limited, and only failed sign-in attempts count toward the per-account sign-in limit, so a correct password is never locked out by earlier successes. New accounts are never made admins automatically. Requests to the API from other sites are refused, and profile, API-key and sign-up fields are checked for length and format.
  • The CLI add-on now unlocks every active skill in the Prompter registry, the same as the Private and Team plans. Skills that have no catalog entry stay hidden and can't be downloaded until an admin publishes them, unless they are on the default free list. A request with an invalid API key now gets a clear "unauthorized" error instead of being treated as anonymous. Revoking a user's CLI add-on also deletes their API keys, unless their plan already includes the CLI.
  • Chat uploads are capped at 500 MB per account. Deleting attachments frees that space. Generated images don't count toward it.
  • Chat replies no longer load images from outside sites. A Markdown image in a reply shows as a link to that image instead.
Fixed
  • Payments now always settle exactly once. If a payment confirmation from Midtrans fails partway, Midtrans retries it and nothing is applied twice, and the plan, credits, skill or CLI access is granted together with the payment being marked paid. The plan endpoint can only move you to a lower self-serve plan, so a plan upgrade always goes through payment.
  • AI credit charges are now correct in every tool. A refund only ever returns what that request charged, and usage beyond your balance is capped at what you have left. A chat turn your balance clearly can't cover is refused up front. Pressing Stop in chat ends the agent immediately, so no further tool calls or model rounds start, and Stop in the UI Generator no longer charges for output that never arrived. Oversized prompts, unknown models and unknown personas are rejected before anything is charged. The UI planner checks your balance before it runs.
  • Admin changes are safer. A credit edit is refused if someone else changed the balance since you loaded it, and the console reloads the current value. The last remaining admin can't be demoted. Every role, plan, credit and entitlement change is recorded in an audit log. The users list is paginated, and run filters apply before the row cap, so filtered views no longer miss results.
  • Chat lists, the UI Generator grid, shared-chat links and admin analytics load faster on large accounts. Deleting a long chat no longer times out, and old rate-limit and auth-attempt records are cleaned up automatically.
  • Error messages from the API no longer expose internal details.
  • Updated Next.js to pick up its latest security fixes.
1 month ago
v1.19.1PATCH
Platform Update
Changed
  • The review-planner skill now produces reports you can trust without re-reading the code. Every report opens with a plain-language summary and a one-line headline before any table; every critical and warning finding is handed to a fresh, read-only sub-agent whose job is to refute it, and only what survives is roadmapped; leads that hinge on something outside the repo (a provider's retry behaviour, a dashboard setting) are recorded separately as "needs validation" instead of being inflated into findings or dropped. Severity now follows demonstrated impact — a missing test is an assurance gap, never a critical. Security reviews walk an absent-controls checklist (tenant isolation, rate limits, CSRF, webhook replay, critical-path tests) plus framework-specific checks for Convex, Supabase, Next.js, Express-family, Laravel, Django/FastAPI and Go, and every exported handler is enumerated rather than sampled. review-planner run records the project's failing tests once and gates each fix increment on regressions against that baseline instead of demanding a green board, resumes a finished increment at its gates instead of re-implementing it, and "Start fixing" now hands the scaffolded proposal to /apply. The skill no longer competes with deploy-audit or security-review for "audit" requests.
  • The stress-test skill now answers "how many concurrent users can my app handle, and what do I do about it". Its report opens with a plain-language summary and a four-line capacity headline — the user count it handles (at the think time you gave), what limits it, what to do to handle more, and how that stands against your target — before any tables. Runs measure each endpoint separately, narrow the breaking point, re-run each endpoint alone to tell the culprit from the victims, and name the saturated resource; the mitigation plan that follows is chosen from that evidence (caching, query & indexing, queue, load shedding, config, vertical or horizontal scaling, or "investigate"), cheapest first, each action paired with the re-run that verifies it. Load can be stated in concurrent users or requests per second, apps that only accept a session cookie are signed in once up front from a pool of test accounts, and 429s from your own rate limiter are counted separately. Against a remote host every run now carries a hard ceiling the script itself refuses to exceed, aborts on its own when most requests fail, excludes writes unless it's staging, and asks before load reaches anything billed per call. The report can hand off to one fix proposal or to a fix roadmap that review-planner run drives.
  • The deploy-audit skill now asks about your operations history — whether the app has ever been rolled back, whether a backup has actually been restored, and whether point-in-time recovery is on for a managed database — and records your answers as evidence in a new operational-readiness section of the audit (error tracking, alerting on the paths that lose money, rollback rehearsal, backups, secret rotation, log and disk headroom), with post-deploy follow-ups listed separately. After the report it asks how to proceed when blockers were found (fix the in-repo ones first, generate anyway with the blockers carried into the runbook, or stop) instead of silently generating on top of them. The generated runbook is now executable by an agent that runs each command in a fresh shell: discovered values (the Caddy container, proxy network and Caddyfile path) become placeholders rather than shell variables, the existing Caddy is found by its real container name and reloaded through it, the shared Caddyfile is snapshotted and restored if the new site block fails validation, .env is never overwritten on a re-run, and the prerequisites now verify passwordless sudo, give the deploying user Docker access, open the firewall with SSH allowed first, install git and dig, and add a read-only deploy key for private repositories. The committed compose file no longer needs editing on the server (the proxy network name comes from .env), every service carries bounded logging and a memory limit, the fresh-VPS Caddy setup has guarded commands, and the pre-migration backup runs inside the database container so it no longer aborts the deploy script.
Fixed
  • feature-planner run and project-orchestrator run no longer stop on tests that were already failing before the run started. Each run records the project's failing tests once and gates every increment on regressions against that baseline (the baseline is never re-recorded, so a regression that stopped a run cannot slip into it on re-run); a red typecheck or build at baseline stops the run before any scaffolding. Re-running after a stop at the manual-checks or checkpoint pause now goes straight back to the gates instead of spawning another implementer and another reviewer on finished work, and the fix agent spawned by --review now records its fixes as tasks so the verify gate can see them. An increment is now marked archived only when its own dated archive folder exists, not when any archive folder merely contains its name, so a later increment's archive can no longer unblock an earlier one that hasn't shipped. In feature-planner, companion work in a bound repo now resumes where it stopped instead of being re-scaffolded, keeps its own test baseline in that repo, always gets a roadmap so the origin feature can gate on it, and "Start building" is withheld while a companion still blocks Increment 1; run --yolo now says up front that it will run planned companions in bound repos without asking. The feature-planner and project-orchestrator descriptions are shorter so the tool router actually sees when to use them. Running project-orchestrator with no arguments on a project that already has a roadmap now offers to resume it or re-plan (archiving the old files first) instead of silently starting the interview over and overwriting the roadmap; its interview questions are always rendered as interactive choices. A multi-phase project roadmap is now saved even when the proposal skill is not installed, records each phase's one-line scope so later phases are scaffolded from what was agreed rather than a milestone name, and completed roadmaps archive into dated folders so a second project in the same repo can complete too. Across all three orchestrators, the test baseline is now recorded before any implementation runs, even when a run resumes mid-phase.
  • project-wiki migrate now empties the project sections of AGENTS.md/CLAUDE.md properly. It classifies each line by what it is about rather than how it is phrased, so project rules written as commands ("never write another module's tables") move to the wiki's Decisions section instead of being kept as agent instructions, claims it cannot check against code move there too with an [unverified] tag instead of staying behind, and a heading test at the end confirms nothing about the project survives — only how the agent should work. Re-running on a file an earlier pass left half-trimmed finishes the job.