← All releases

PUBLISHED RELEASE

Ankita v2.5.0

2.5.0 ·

Release notes

Added

  • A live desktop companion. The top-edge island uses ANKITA's real threads, tools and approvals. Four teammate mascots fit in two columns; activity rolls upward without a history scrollbar, and additional teammates remain selectable in chat. Restoring/minimizing retains the same draft and companion window.
  • Animated file capture. The selected mascot opens its mouth for supported dropped files, swallows, chews while the reader works, and reacts to success or failure. Desktop and island use the existing document/image readers and keep attachments with their original teammate. Reduced motion skips the swallow.
  • Chrome/Edge webpage-capture helper. An MV3 extension captures readable page text when a teammate mascot is dropped onto an ordinary HTTP/HTTPS page. Pairing uses the desktop's authenticated loopback bridge and single-use drag tickets. Captures preserve existing drafts, wait in an inbox when attachment slots are full, and never send a model request automatically. The helper is included in the package and loaded unpacked separately; it is not store-published.
  • Project sections. Overview, Tasks and Context organize folders, assignments, rules, open/completed tasks and searchable note/decision records. Long records expand on demand; keyboard tab navigation and per-project draft retention make larger projects usable without one long page.
  • Release verification utilities. Real renderer, capture-extension and native Electron checks cover tool/approval flows, attachments, projects, settings, responsive widths, themes and failure recovery. Coucou-derived software carries an included MIT notice; its artwork and recordings are not bundled.
  • Keyless Composio sign-in — no API key, nothing to host. Connecting an app now runs a browser OAuth 2.1 + PKCE flow: discovery, dynamic client registration as a public client (no secret issued), a single-use http://127.0.0.1:<port>/callback loopback redirect, and a PKCE S256 code exchange. There is no public callback URL, domain, certificate or broker to stand up. The access token is written to the OS vault; the grant file holds only a grantId, endpoint, apps and timestamps — never the token, verifier or refresh token. Revoking deletes both in one step. COMPOSIO_API_KEY and COMPOSIO_BROKER_URL keep working until the deprecation window closes.
  • MCP approval tiers replace the trusted-server bypass. Tool calls now resolve a four-level gate — auto-allow, ask once, always ask, deny — instead of the old read-only-hint rule, and a connection's trusted flag no longer skips it. Composio meta-tools are classified by the worst action they enclose, so COMPOSIO_MULTI_EXECUTE_TOOL wrapping GMAIL_SEND_EMAIL always asks while read-only catalog discovery stays frictionless. Resolution order is blocklist → explicit tool rule → per-app rule → locked app defaults → heuristic (a heuristic can never deny). Overrides, a blocklist and allowed/asked/denied counters persist to mcp-tiers.json, and gmail ships locked to *always ask*.
  • `composio` tier controls. New tiers, allow, always and deny actions inspect and change the gate. They are refusal-guarded: a call that loosens protection can never run under auto-approve, so an unattended scheduled job cannot quietly grant itself a lower tier for every later session.
  • Real integration icons in Plugins. Every Composio app row renders the toolkit's real brand mark from its logo URL, with the curated mark or a monogram as the offline/unknown fallback.
  • Deprecation notice on `composio status` naming the exact variable to replace, derived from the version in package.json rather than hardcoded, and worded so it never promises a switch the build does not offer yet.

Changed

  • The main desktop now shares the companion's graphite style, mascot faces and system typography. A compact navigation rail, responsive teammate roster, separate project/scheduling/review strip and clearer composer replace the old shell. Graphite, Mono and Slate themes remain available.
  • Scheduled-task empty/detail views prioritize the next run, owner and readable task names. Background preferences show actual scheduled/enabled/running counts, open each task in its owner/delivery conversation, and expose startup capability and pause-all state. Model choice and optional limits use separate controls.
  • Completed Markdown replies are memoized instead of reparsed for every streaming token. Hidden mascots and idle activity tickers pause animation work.
  • README, contributor setup, configuration comments and release instructions now describe the current desktop, capture helper, real dependencies and CI gates.
  • Generated launch-film HTML is removed from tracking, with the local copy kept. Local verification logs, video project output, crash dumps and media are ignored.
  • Plugins Saved sign-ins is now a first-class browser-vault section instead of a stray disclosure: a section head with a live count and a framed card that states it is what the built-in browser and Chromium fill from. Each row shows the site, username, when it was last saved and a Remove action, with loading, empty and error states.
  • Scheduled-task surfaces are grouped by state (needs attention, running, upcoming, paused) with a summary line, count badge and stat tiles. Run receipts read as plain status labels with relative times, and the scheduler no longer uses the success color — state is carried by theme tokens and motion that honours prefers-reduced-motion.

Fixed

  • Long teammate names and scheduled jobs no longer distort the island avatar grid; the activity footer and approval actions remain visible in narrow windows.
  • A closed browser overlay no longer extends the document beyond the viewport.
  • Hard rectangular focus outlines around the composer, context editor, settings, plugins and island controls are removed; focused fields retain subdued borders.
  • Failed project-context saves keep the text; failed startup changes keep the confirmed value. Missing-owner tasks route to their delivery conversation, while tasks with no usable destination remain disabled.
  • Capture pairing persists across browser/service-worker restarts. Remembered-port conflicts fail visibly, and replayed, expired or cancelled tickets are rejected.
  • A scheduled task and its run result could appear in another teammate's conversation. The jobs panel and routine sheet are now scoped to the selected thread, matching the chat pane.
  • The OAuth flow sends the RFC 8707 resource indicator on both the authorization and token requests, which the MCP authorization spec requires and servers use to bind the token audience. The endpoint allowlist also accepts the sibling login.composio.dev host the live Composio metadata points at.

Release verification

  • Windows release workflow: 931 tests; 899 passed, 32 skipped, 0 failed. CI skips optional Chromium/Python/MCP/Scrapling availability checks and the POSIX permission check.
  • Local Windows serial suite: 931 tests; 930 passed, 1 POSIX skip, 0 failed. Desktop TypeScript and production renderer build passed.
  • Windows unpacked runtime: nine grouped native checks passed, including actual file tools and approvals, capture pairing/delivery, packaged helper resources, projects and settings.
  • Focus regression: all three themes passed with no rectangular outlines or brightened focus borders.
  • Installer, portable executable, blockmap and latest.yml were downloaded; all sizes and SHA256 hashes match GitHub. The updater manifest version, installer name, size and SHA512 match the downloaded installer.

Successful release workflow

Installation/in-app update execution, physical OS browser dragging, installed Google Chrome, OS login registration, hosted-provider workloads, mixed-DPI displays and macOS/Linux native windows remain outside this verification.

YOUR NEXT LITTLE COMPANION

Make some room
for Ankita.

Version 2.5.2 · Windows x64

Choose a provider during setup. Model availability and usage limits depend on your provider.

Release notes & other assets