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.