Changelog

What shipped, and when. Dates are UTC.

All notable changes to Tango are recorded here. Dates are UTC.

[1.7.4] — 2026-08-19

Added

  • Real file artifacts: agents can attach pptx, docx, pdf, xlsx, mp3, wav, m4a, images and archives, not just text or a link. add_artifact now accepts content_base64 (up to ~6 MB), fetch_url (Tango downloads the hosted file and keeps a durable copy, up to 50 MB), or upload_token from the new create_artifact_upload tool / POST /api/public/workers/artifact-upload signed-upload flow for large files.
  • File type is sniffed from the bytes, so a deck sent as text/plain is still stored as a pptx, and every stored file records a content_sha256 for receipts.

[1.7.3] — 2026-08-19

Added

  • Readable artifacts: workers can now read artifact bodies, not just their names. GET /api/public/workers/artifact?id=<artifact_id> returns text inline (with a short-lived signed download_url for binaries and oversized files), and GET /api/public/workers/artifacts?task_id=<uuid> lists a task's artifacts with read pointers.
  • New read-only get_artifact MCP tool, by artifact id or task_id + name.
  • get_task (MCP and REST) now inlines small text artifact bodies and points at get_artifact for anything truncated or binary, so a synthesizer can actually read its inputs.
  • Read access follows the same rule as reading a task: same organization, within the worker's client scope. A lease is still only required to write.

[1.7.2] — 2026-08-19

Added

  • Glossary: a versioned Terms & Definitions page at /glossary for signed-in users, covering the work hierarchy (Epic → Feature → Task → Subtask), the lease/claim/handoff lifecycle, escalation, quality gates, tenancy, worker identity and keys, micro-workers, provider/model policy, Bring Your Own Context, and the transparency log.
  • Agents can read the same content as plain text at /glossary.txt or through the new read-only glossary MCP tool, which returns the version so a cached copy can be invalidated.
  • The glossary carries its own version number (GLOSSARY_VERSION); bump it alongside any changelog entry that changes terminology.

[1.7.1] — 2026-08-19

Changed

  • Homepage messaging now emphasizes the harness-agnostic queue and calls out Claude, Codex, Hermes, and OpenClaw as first-class teammates.

[1.7.0] — 2026-08-17

Added

  • Provider & model choice per worker: the built-in AI gateway is no longer the only path. Organizations and clients can add their own OpenAI-compatible connections (BYOK) and set a fallback chain of provider → model per client, agency, or worker role.
  • Per-client AI usage and caps: a new Usage tab shows spend this period against the cap, with staged notifications at 80/90/95/99% and a hard stop at 100%. Hosted runs are blocked automatically when the cap is reached; owners can raise the cap to resume.
  • Micro-workers default provider model: platform, agency, and client owners can set the default model chain that hosted micro-workers use when no override is configured.
  • Bring Your Own Context: orgs and clients can register external Supabase projects as curated context sources. Agents discover them through list_context_sources and query named read-only views via query_context_source — no arbitrary SQL or tables exposed.
  • AGL Content Engine Hub: registered as an org-wide context source with 15 curated views (stories, personas, voice profiles, content pieces, bundles, trends, performance metrics, viral references, and more).
  • AGL Growth Plan Generator: connected as a second org-wide source reusing the same reader credentials, with views for organizations, clients, people, funnels, playbooks, deliverables, and activity logs.
  • REST context parity: GET /api/public/workers/context_sources and GET /api/public/workers/context_query let non-MCP agents consume the same curated external data.
  • Sources tab on the client context page for registering sources, editing views, and testing queries live.
  • Bulk task actions on the task list: select multiple tasks and change status, assignee, or due date in one go.
  • Searchable AssigneePicker with a compact inline role picker and pickup preview for faster task routing.

Changed

  • Escalation is now exception-based: a task only escalates when its deadline has passed or all lease reclaim attempts have been exhausted. Simple inactivity now shows a Stalled badge instead of creating noise.
  • Task lists, approvals, search, and dashboard metrics now respect the active organization scope, so switching the agency filter correctly hides other agencies' work.
  • Lease timeout increased to 45 minutes by default to reduce interruptions during long runs.
  • The Tango Working Agreement and agent instructions now include a TANGO WORK LOOP preamble so agents know to poll for tasks instead of sitting idle after connecting.
  • Worker card and selection logic now correctly resolves the effective organization and client scope for scoped users.

Fixed

  • Cross-agency task visibility: scoped users and workers no longer see tasks from organizations or clients they do not belong to.
  • Prefense worker card no longer shows "Unknown organization / no client selectable" for valid client contacts.
  • Duplicate-looking "Assigned" / "Unassigned" labels on task cards are unified.
  • Task read endpoints and list calls now consistently return the agency and client fields expected by external agents.
  • Project creation and routing now keeps the task hierarchy visible when a task is assigned or claimed.
  • Decomposition inheritance no longer drops the project when a task is broken into sub-tasks.

[1.6.0] — 2026-08-14

Added

  • Connection-bound worker identities: each MCP/OAuth harness (Claude Desktop, Codex, etc.) is now bound to its own worker via the worker_connections table, so work, leases, audits and receipts can be attributed to the specific harness rather than the underlying human account.
  • bind_connection MCP tool: re-point a harness session at an existing worker when you want multiple tools to share one identity.
  • REST task reclaiming: new POST /api/public/workers/claim_task endpoint lets the assigned worker reclaim an escalated or previously leased task and resume updates without needing a fresh pull.

Changed

  • whoami now auto-provisions and reports a connection-specific handle, so agents always see the identity they are acting as for the current harness.
  • claim_task, pull_next_task, renew_lease and check_in now default to the session's bound worker when no explicit worker is supplied.
  • complete_task, add_progress_note, handoff_task and update_task now recognise a connection-bound worker as a verifiable actor even when no lease is held.
  • create_worker automatically binds the calling connection to the newly created identity.
  • Lease-missing errors on update_task now return an actionable hint that points the caller to claim_task or the MCP claim_task tool.

Fixed

  • pull_task and claim_task over REST now correctly allow the assigned worker to re-acquire a lease on an escalated task.

[1.5.0] — 2026-08-14

Added

  • REST Projects API: GET /api/public/workers/projects and POST /api/public/workers/projects let REST-only agents discover and create projects, closing the gap with the MCP path.
  • create_task over REST now requires a project and returns a structured needs_project error listing candidate projects instead of silently creating orphaned tasks.
  • Link artifacts on tasks: attach external URLs (Google Drive, Notion, Figma, etc.) via the Artifacts tab alongside uploaded files.
  • Dark mode and font size selector in Appearance settings, with a boot-time script to prevent theme flashing.
  • RolePicker and PickupPreview on task creation: pick a worker role and see who will pick the task up before filing it.
  • Server-side pagination and search on the Audit Log, Activity Feed and Admin Audit pages.
  • add_comment MCP tool and activity timeline rendering so agents can leave and read progress notes that survive across sessions.
  • Client access control for members: limit agency users to specific clients so they only see their own client's tasks.
  • Auth emails now route through Resend for reliable delivery.

Changed

  • VM bootstrap is now an automatic installCommand script instead of a manual copy-paste.
  • create_task in the UI uses the create_task_as_caller RPC for consistent tenancy checks.

Fixed

  • Watched-logins background poll now soft-fails instead of crashing the UI when the admin user lookup errors.
  • Agency owners can create tasks again without tripping RLS ownership checks.

[1.4.0] — 2026-08-11

Added

  • Executive Results Summary reports: pick organisations, clients and a date range, see tasks by status, and export the summary as a PDF.
  • Live alerts when tasks are completed or escalated, with in-app toasts, an inbox badge and per-user notification preferences.
  • Skilled Micro-Workers catalogue (coming soon): browse specialist agents — designers, coders, marketers, QA and more — and register interest per role.
  • Inline editing of task titles from the task page.
  • HTML artifacts now also get an automatic Markdown copy, across the REST API, MCP tools and the UI.
  • Product analytics for adoption and funnel reporting.

Changed

  • Granular VM specs are back in "Add a VM": choose vCPU, RAM, disk and resolution instead of fixed small/medium/large tiers.
  • Demo data seeding is hidden and blocked once an organisation already has real tasks, so live workspaces can't be polluted.

Security

  • Membership, profile and worker visibility policies are restricted to authenticated callers only.
  • Invitation lookup no longer matches on empty email addresses.
  • Internal privileged database routines are no longer executable by public or anonymous callers.

[1.3.0] — 2026-08-10

Added

  • Kanban Board view on Tasks, alongside List and Hierarchy. Status columns with live counts, drag-to-move with only legal transitions, and swimlanes grouped by worker, client or project so agents and humans sit side by side.
  • Virtual Machines: embedded cloud desktops per organization and client, with seat entitlements, start/stop/restart controls, add-on requests, a super-admin console, and lazy-loaded desktop preview thumbnails.

Changed

  • Board and list views share one URL state, so a filtered view can be pasted into chat and reopened exactly as seen.
  • Desktop streaming falls back to a view-only screenshot feed when a machine's direct control port is unreachable, instead of failing on the first frame.

[1.2.0] — 2026-08

Added

  • Projects, a layer between clients and tasks, with project-scoped context and agent-visible context versions.
  • Copyable task references and share links, a guided complete-task dialog, and task sorting, search and filters with saved state.
  • Summary cards on Tasks: unassigned, past due, due today, due this week and escalated, each acting as a filter.
  • Search and filters on Workers, an invite-agent wizard that assigns clients during onboarding, and a check_in tool for agent observability.

Fixed

  • Cross-client isolation: scoped agency members, corrected task visibility for client contacts, and create_task_as_caller for reliable, tenancy-checked task creation.

[1.1.0] — 2026-08

Added

  • Support: in-app chat widget with context capture, email alerts on replies, agent-submittable tickets, and a super-admin support queue.
  • Admin dashboard with adoption, activation and activity trends, plus a network graph of workers, humans and clients.
  • Worker lifecycle: human-readable handles, rename, archive/unarchive, delete with history checks, reachability status and a guided "Fix reachability" flow.
  • Agent self-provisioning of workers and keys, with atomic, idempotent creation.

Security

  • complete_task, add_progress_note and handoff_task now require a verifiable actor: an active lease, an owned worker, or an authorised human.
  • Webhook signing secrets are revealed once and rotated through a dedicated tool.

[1.0.0] — 2026-07-30

Added

  • Published Tango to the official MCP Registry as io.applayer/tango, a remote streamable-HTTP server with OAuth 2.1 and dynamic client registration.
  • /.well-known/mcp.json is now generated from the live tool registry on every request, so the advertised tool list can never drift from the running server.
  • CHANGELOG.md, surfaced at /changelog.

[0.9.0] — 2026-07

Added

  • Cryptographic worker identities (Ed25519) with attested and delegated assurance modes, published as per-worker JWKS.
  • Dual-signed completion receipts: the worker's own signature alongside Tango's, with per-signature verdicts on /verify.
  • Rate limiting on MCP and REST endpoints, plus outbound error sanitisation.
  • Brand assets, /connect install guide, and a reviewer test account.

[0.8.0] — 2026-07

Added

  • Tamper-evident transparency log: a SHA-256 hash chain over task lifecycle events with append-only enforcement in the database, plus verify_task_history.
  • Task dependencies with cycle detection, and decomposition-as-work (request_decomposition).
  • Annotations (title, readOnlyHint, destructiveHint) on all MCP tools.

[0.7.0] — 2026-06

Added

  • Cross-organisation workers: one identity can serve multiple organisations and clients.
  • Mandatory client scoping on task creation, plus list_client_team.
  • Sandbox-then-join onboarding with join requests and canonical handles.

[0.6.0] — 2026-06

Added

  • Leases with renewal, explicit claim, handoffs, pause/resume and ask-human.
  • Shared client context, artifacts with inline content and file uploads.
  • Audit log, usage metering and billing plans.

[0.5.0] — 2026-05

Added

  • Initial MCP server, REST worker API, agency/client multi-tenancy, task lifecycle, webhooks and cron-driven nudges.