For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /changelog-web.md.

Web Changelog

2026-10-09

Weekly update

New features

  • Project setup status: The project overview page now shows a setup card covering GitHub access, your tessl.json manifest, configured Loops, and schedule health, with a concrete next step when something needs attention.
  • Per-environment Linear access: Workspace environments now have a Linear access setting (none, read, or write), so a launch run's Linear access is scoped to its environment instead of a person's own token.

Improvements

  • Activity actor filter: The workspace Activity page now has a Who filter for eval and review runs, so you can narrow the feed to your own runs, a specific org member, or API keys.
  • Project search and grouping: The organization Projects list is now searchable by project name, repository, or path, shows a relative last-updated time per project, and groups projects under their repository so a repository's projects no longer split across pages.
  • Clearer project creation: Creating a project now gives specific guidance when no repository is connected, when you lack access, when a search returns nothing, or when loading fails, and lists every repository connection your workspace can see.
  • Context filters in one place: The workspace Context page shows all its filters as a single row of pills instead of hiding most of them behind a "More filters" control.
  • Usage page on every plan: The organization Usage page is now available to admins on every plan, not just Business and Enterprise.
  • Higher automation concurrency: The per-project limit on concurrent automation runs has doubled, from 50 to 100.
  • New accounts get a starter workspace: Signing up now creates a starter workspace automatically, rather than requiring you to create one during onboarding.
  • Eval scenario guidance: The skill and plugin score page now explains how many more eval scenarios are needed for a full score, when fewer than 3 have run.

Bug fixes

  • Fixed CLI device-code sign-in saving credentials for an organization your Tessl instance doesn't serve, which made every later CLI command fail; the sign-in page and onboarding guidance also point EU accounts at the correct region and login command.
  • Fixed breadcrumb navigation links occasionally flickering or misbehaving when a breadcrumb segment was added or removed.
  • Fixed long reasoning text in a skill review scorecard overflowing its table cell instead of wrapping.
  • Fixed adding some remote MCP servers, including GitBook, as a connection: Tessl's redirect URI included a query string that those servers' authorization flow rejects.
  • Fixed inconsistent quality scoring on some skills.
  • Fixed an issue where semantic search wasn't finding some private skills.

2026-10-03

New features

  • The publish_plugin, validate_plugin_for_publish, list_plugin_files, and get_plugin_file tools on the remote MCP server now support incremental plugin publishing: agents can apply ordered put, edit, and delete changes to an existing plugin version without re-uploading every file.
  • The archive_plugin and delete_plugin tools are now available on the remote MCP, allowing publishers to archive or permanently delete plugins without leaving their coding environment.
  • Projects have been moved to the Org level.
  • Workspace settings no longer shows a separate Source control section; Linear and other workspace integrations now appear together under a single Integrations section alongside MCP servers.
  • The sidebar navigation is reorganized into three labeled groups: Work, Manage, and Resources. The workspace selector is removed from the sidebar; a Workspaces entry under Manage links to a list page, the Activity page gains a workspace selector, and workspace Settings is accessible from each workspace card.
  • Org admins now have a setting to enable or disable automatic quality reviews dispatched during inventory scans using the automaticQualityReviewsEnabled field. Security scans and indexing continue regardless of this setting.

Bug fixes

  • Code Review via the GitHub App now correctly reads pull-request links. The link-selection model is included in every App-managed run key, and documentation pages up to 2 MB are fetched and converted to text rather than being refused for size.
  • The Last changed timestamp on the managed-requirements policy editor now correctly updates when a newer policy is saved.
  • Workspace publishers can now archive, unarchive, deprecate, and undeprecate plugins from the plugin page. Previously only managers could perform these actions.
  • The Automations entry is no longer shown in the workspace sidebar; existing Automations routes remain accessible via direct links.
  • Skill activations now include file reads of installed SKILL.md files via the Read tool, cat, head, and sed, so eval activation counts accurately reflect all skill usage.

2026-09-28

New features

  • Organizations can now run up to 1,000 eval scenarios per day, up from 300.
  • Workspace managers can now mark a plugin as deprecated with an optional reason and replacement. Users viewing a deprecated plugin see a warning banner on its registry page.
  • The findings panel now detects and reports SKILL.md files that exceed 500 lines, explaining what to move to supporting files and providing remediation guidance.
  • Users can now manually trigger a schedule sync for a project from the project Schedules tab. The sync re-reads and validates the tessl.json on the default branch and reconciles schedules, with progress polling and status feedback in the UI.
  • Credit usage is now broken down by platform charges and AI token costs.
  • GPT-6 Luna (gpt-6-luna) and GPT-6 Sol (gpt-6-sol) are now available as model selections for LLM key issuance and agent workflows.
  • Automation trigger conditions now support recursive not, any, and none operator objects and a wildcard path projection for list members, enabling trigger rules that match or exclude events based on nested data.
  • Eval run pages now show a redesigned layout with responsive result and metric cards, scenario comparisons and detail drawers, setup data, persisted run selection via URL, and an Activation section showing per-variant and per-scenario breakdowns of how often agents loaded each skill. The updated view is available in the workspace eval run view, public run links, and plugin eval tabs.

Improvements

  • Linear webhook deliveries are now processed exclusively through the factory trigger intake. The legacy Linear task-delegation path is removed: existing workflows built on it no longer function and must be rebuilt using factory triggers via POST /experimental/webhooks/linear. The PATCH /integrations/:integrationId and GET /integrations/:integrationId/linear/metadata endpoints reflect the updated integration shape.
  • The deprecated gpt-5-codex and gpt-5.2-codex model IDs are no longer accepted for eval runs or agent workflows.
  • The default eval model is now DeepSeek V4.1 Flash (deepseek-v4.1-flash), replacing DeepSeek V4 Flash, and the default review model is now GLM 5.3 (glm-5.3), replacing GLM 5.2. Several other deprecated model routes are removed from the catalogue.
  • Workspaces can now create up to 100 active schedules by default, up from the previous limit of 20.
  • When a schedule sync fails, the notifications are sent to the user who edited the schedule last, rather than routing to the workspace administrators
  • Repo-defined scheduled runs now correctly reconcile the declaring manifest before installing and running the target skill.
  • Launch runs can now be filtered by exact label via GET /experimental/launch-runs, enabling more reliable deduplication of run creation attempts.
  • Skill quality and security scores are now correctly preserved across synchronizations when a skill is unchanged, preventing score regressions.
  • Switching workspaces from the sidebar now keeps users on the same screen when the destination workspace supports it, carrying over stable view state.
  • Users can now delete projects from the project overview page.
  • Quality skill reviews no longer generate duplicate review runs when the SKILL.md content differs only in line endings or boundary blank lines, reducing redundant credit consumption.
  • Organizations that spent their Free credit allowance and then upgraded to Team now correctly receive their full Team credit allowance.

Bug fixes

  • Disabling a skill review quality score policy (setting it to OFF) now correctly saves and displays as disabled rather than being silently converted to a score of 0.
  • Visitors see a loading spinner and an accessible status message while login navigation is in progress, and the return destination is preserved correctly if the current page changes before login resolves.

2026-09-21

Breaking changes

  • The snapshot field is removed from repo-defined schedule entries in tessl.json. Schedules that declare snapshot are now rejected by schema validation. The field had no effect on schedule execution.

New features

  • Azure DevOps integration (Microsoft Entra ID) is now generally available to all entitled organizations. Connect an Azure DevOps organization to discover repositories, scan skills, rescan on demand, and manage scan policy from org integration settings.
  • The login page now shows a region selector that navigates users to the correct regional login and remembers their choice in local storage.
  • A new dryRun: true setting in tessl.json puts trigger automation in observation mode: conditions are traced, action fields are resolved, and each trigger logs whether it would have fired, without claiming deliveries or starting runs.
  • Tessl Code Review credit usage per completed round has changed in both regions. See https://tessl.io/pricing/ for current details.
  • Org and workspace publish policies support an optional minimum skill quality score. When set, publishing a plugin version is blocked until every skill meets the configured threshold.
  • The MCP server detail page shows a live 'Available tools' panel with per-tool descriptions, manual refresh, re-authorization prompts, and distinct error states for unavailability and protocol errors.
  • Context improvement proposals can now target any Markdown file in the repository instead of only AGENTS.md and CLAUDE.md. Proposals go through an editor review step before being published, improving accuracy and placement. Repositories blocked by an unfinished proposal run are automatically released on the next dispatch.
  • Eval run tables now show a skill activation column at the variant, scenario, and repeat levels: which skills were activated, the activation rate, and each activated skill's name in the expanded view.
  • Eval runs using Codex CLI now capture per-turn tool call and token data, enabling turn-level analysis previously only available for Claude runs.
  • Org admins can enable a 'Global install only' toggle in the managed dependencies policy editor to install managed plugins once per machine without per-project declarations.
  • When Code Review fails because the organization has no credits, a comment is automatically posted on the pull request explaining the situation and linking to the pricing page.

Improvements

  • 'Enable reviews' on a repository row immediately saves the repository and opens settings pre-configured, without a second toggle inside the drawer.
  • Scheduled runs are more reliable: duplicate fires are rejected, and a schedule targeting a deleted or archived workspace records a durable configuration failure instead of retrying indefinitely.
  • file: skill references in nested tessl.json manifests now resolve relative to the manifest's own directory rather than the repository root, so multi-manifest repositories can use short relative paths without breakage.
  • The integration scan history list on org settings shows 10 scans per page with a 'Load more scans' button, replacing the previous flat list.
  • Quality scores and review results now reflect the selected context version: a version with no completed review returns null scores rather than stale scores from another version.
  • Untracked findings now require complete first-party reference evidence before being reported; incomplete or indeterminate archive evidence is treated as unknown.
  • Skill context occurrences now persist display name and description correctly on both fresh indexing and re-observation of unchanged file versions.

Bug fixes

  • Launch run resumes now expire seven days after the workspace was saved; attempts after the window receive HTTP 410. Launch runs retain their original run ID after sandbox recovery.
  • The schedule detail page shows a human-readable description (e.g. 'Every Friday at 9:00 AM') instead of the raw cron expression; the raw string is still accessible on hover.
  • Repo-defined schedules missing project links are automatically repaired after the next manifest sync. Schedules created from trigger-fired runs no longer inherit the original trigger event data.
  • The Schedules breadcrumb on a launch run detail page now links to the owning project's Schedules tab. GET /experimental/launch-runs/{id} includes scheduledRunId.
  • Multi-manifest repositories isolate each project's verifiers and context to the exact tessl.json that defines them.
  • GitHub App accounts can request Code Review approval for pull requests they authored, restoring the address-then-approve workflow.
  • Repository indexing and review dispatch follow source identity through renames and transfers.
  • Authenticated users visiting private registry detail pages are no longer incorrectly redirected before authentication resolves.
  • When creating an environment with conflicting GitHub access settings, the error message uses plain language and explains what to change.
  • Eval runs uploading a local directory no longer fail with a fingerprint mismatch during staging.
  • Launch sandboxes use a pinned, protected image, preventing run failures caused by the image being replaced during execution.
  • Failed-scan alerts on the Home page link directly to the affected SCM provider's integration page and open retryable rows on arrival. Scan history appears inline in integration settings without requiring manager permissions.

2026-09-14

New features

  • Projects are now available at the organization level. Browse projects across your organization, filter them by their backing workspace, and open a project to view its Context, Findings, Evals, and Schedules.
  • New GET /v1/orgs/{orgId}/users and GET /v1/orgs/{orgId}/users/{userIdOrName} list and look up the members of an organization you belong to, with the same response shapes as the user routes they replace. GET /v1/users and GET /v1/users/{userIdOrName} are deprecated in favor of them and remain fully supported. GET /v1/workspaces/{workspaceIdOrName} now includes orgId for callers who can view the workspace.

2026-09-03

Breaking changes

  • GET /experimental/tasks renames its link filters from filter[link.type] and filter[link.value] to filter[linkType] and filter[linkValue]. The dotted names are removed with no alias. The old spellings worked only because this route read those two query keys by hand; the shared filter parser matches field names with word characters only, so a dotted key never reaches a route that relies on the parser. The rename aligns these filters with that parser's vocabulary, so filter field names are camelCase throughout.

2026-09-02

Breaking changes

  • GET /experimental/tasks/by-link is removed. GET /experimental/tasks now accepts filter[link.type] and filter[link.value], which return every task carrying the reference, newest first, with the same paging as any other task list. Each filter narrows on its own and the two compose.
  • tessl task by-link is removed. Use tessl task list --link-type and --link-value.

Features

  • Several tasks can now link the same external reference. Previously a given pull request URL or Linear issue belonged to exactly one task per workspace, so when a later task reported the same reference it was silently dropped and never showed up in a lookup. A pull request worked on across several review rounds now lists every task that touched it.

2026-08-26

New features

  • Organizations now have their own Home, Context, and Findings pages that roll up every workspace in the org, so you can see context health, quality bands, and security findings across the whole organization in one place. Signed-in users now land on org Home by default, and the sidebar logo navigates there. Inventories owned directly by the org, with no workspace, now appear on these pages too.
  • The organization Insights page shows organization-wide activity: active users, plugin install counts sourced from a nightly snapshot (total, daily series, and top plugins), and per-window timeframe labels on each activity graph. The GET /experimental/orgs/{orgId}/insights response carries an installs object and window.installsThrough.
  • New scheduled runs get a plain-English schedule builder (every N hours, daily, weekly on chosen days, or monthly) with a time-of-day and a Timezone dropdown, keeping raw cron entry behind a toggle for expressions the builder cannot model. The Skill, Repository, and Environment fields become searchable comboboxes, the Agent and Model controls populate from the supported-agents endpoint, and the form links out to environment setup.
  • The scheduled-run detail page shows the schedule author, a linked and summarized Skill, and each run's output as a pull request link or summary. The scheduled-runs table shows a plain-English schedule with its timezone, a Name and Description, and the last run's outcome. Scheduled runs accept an optional description on POST and PATCH /experimental/scheduled-runs.
  • Launch runs can be cancelled through the new POST /experimental/launch-runs/{id}/cancel endpoint. Cancellation is idempotent, tears down the sandbox, and marks the run with a distinct cancelled status. Launch-run reads gain a derived outcome (succeeded, no-action, or failed with a reason) so an agent-reported failure is distinguishable from a completed run, plus a live progress_phase, progress_message, and liveness projection.
  • The native remote MCP server gains a discover, validate, publish, and poll workflow for skill-backed plugins through validate_plugin_for_publish, publish_plugin, and get_plugin_publish_status, an optional pre-publish skill quality review through review_skill and check_review_status, and a read-only list_workspaces tool for workspace discovery. validate_plugin_for_publish now reports every detectable publishing problem in one call. The endpoint serves both the current MCP protocol (2026-07-28) and the legacy version (2025-11-25), and every authenticated tool call produces an audit event.
  • Organizations can run and track a Claude marketplace sync at org scope through POST /v1/orgs/{orgId}/claude-marketplace/sync, GET /v1/orgs/{orgId}/claude-marketplace/sync/latest, and GET /v1/orgs/{orgId}/claude-marketplace/sync/overview. The integration settings page shows a live sync overview with per-plugin status, versions, Quality and Security columns, and run history, plus an Automatic sync toggle (syncEnabled) that pauses scheduled sync while keeping manual sync available.
  • Workspace owners can delete eligible plugins from the plugin detail page through a Delete plugin action and confirmation, without Tessl-admin support. Policy rejections surface the exact reason.
  • New GET /v1/whoami reports what a request is authenticated as, for both user sessions and API keys, discriminated on data.type. GET /v1/users/me is deprecated in favor of it.
  • Feature availability can now be gated by region from a committed policy driven by the TESSL_REGION environment variable: routes marked regionalFeature return 404 where a feature is withheld, and the frontend hides it. The policy ships empty, so nothing is withheld yet.

Improvements

  • The BYO LLM gateway is now the Customer Managed Gateway throughout the product. It uses a high, medium, and low model tier selection instead of per-feature model dropdowns: byo-provider responses drop featureDefaultModels and carry tierModels instead, and enabling a gateway now requires a model for every tier. A gateway can be created with a connection and no models while routing is off, so you can save the connection first and add models later. The stored credential shows as a masked, read-only value with a Replace control.
  • Linear can no longer be connected at organization level and is managed at workspace level only. The org-level Linear connect, callback, metadata, and config routes under /v1/orgs/{orgId}/integrations are removed, and Linear no longer appears in org integration listings. Existing workspace-level Linear connections keep working. In a hoisted organization with more than one source-control installation, a workspace's own connection is now preferred over the org's.
  • The launch-run, scheduled-run, and task-run creation endpoints accept a GitHub repository as a bare owner/repo slug, an HTTPS URL, a scheme-less link, or SSH shorthand, normalize it to a canonical https://github.com/owner/repo, and reject unparseable or non-GitHub values with a 400. These endpoints also let internal callers select the standard or Docker-capable sandbox image. Creating a scheduled run from an inline spec now requires an environmentId and rejects the request with a 400 up front instead of failing later at trigger time.
  • A cloud launch that names no GitHub-token source (no uploaded env file and no workspace environment carrying a token) is now rejected with a 400 before the run, workflow, or 100-credit platform fee is created, and the error names both remedies. Checkout is blocked with a 503 unless the whole payment-to-credit pipeline is configured, so a card is never charged against a pipeline that cannot grant credits.
  • Org read endpoints now include the organization slug on GET /v1/orgs/{orgId} and GET /v1/users/{userId}/orgs, and /orgs URLs accept an org id or slug with the slug canonical. GET /experimental/launch-runs and scheduled-run fire history include the configured mcpServers, outcome, summary, pr, and triggerSource fields. Workspace environments can carry MCP servers, which are applied to launch, scheduled, and task runs.
  • Paginated remote MCP list tools now render an explicit page count that states it is not the total and include the exact nextCursor, so agents can page through every result. list_organization_skills and get_skill discover skills contained in published plugins and accept an optional workspaceId filter.
  • Publishing a passing plugin now automatically starts finding enrichment for eligible security findings without blocking, delaying, or failing the publish. Creating an inventory now requires selecting a GitHub organization. The target-repository picker searches across every connected GitHub organization instead of one, and the scan-scope picker shows only repositories already in the policy with a searchable combobox to add more.
  • The organization Home Most Installed chart ranks plugins by 30-day installs from the same source as the Skill Installs sparkline, so the two panels agree. The Active users tile is replaced by a New members tile that counts members by join date. Context score badges open a popover with the full quality, impact, and security breakdown. The Home CLI box gains a package-manager selector (npm, yarn, pnpm, bun) that updates the shown command and remembers the choice.
  • During the Code Review beta, review rounds consume no credits while every round is still recorded in the usage ledger and shown at 0 credits. Support staff can grant 500 credits from the admin Grant Credits dropdown, and can reset a user's onboarding status from the admin user page.

Bug fixes

  • Free-tier organizations now reset their credit balance on a rolling monthly window anchored to their signup date, with month-end clamping, and the public credit status exposes an explicit resetsAt. Paid-plan organizations with no billing ledger are no longer given the free-tier allowance and resolve as unlimited instead of being wrongly blocked. Team checkout now succeeds for billing addresses outside the US and Canada that carry a state code, and legitimate Canadian territory addresses are accepted.
  • A scheduled run's nextRunAt is now recalculated and stored when its cron or timezone changes or when a paused schedule resumes, so it is no longer blank after those operations. A completed launch run whose agent reported failure shows a distinct Agent Failed badge instead of reading as Completed.
  • The "View in Context" link on a finding now lands on that finding's own Context item rather than an empty page; the findings response exposes groupId and the Context endpoint accepts filter[groupId]. Context tables gain sortable column headings and a repository filter. The org Home context-health bands are sourced from the context model over the same scope as the Context page, so the bands sum to the Total context figure.
  • Charts on organization pages that had stopped drawing now render again, the org usage range no longer triggers a refetch loop, and several organization Home and Insights states now show static placeholders or a Try again control instead of flashing skeletons or asking for a full reload.

Features

  • The workspace sidebar now has an Activity item that replaces the separate Eval Runs and Reviews items, showing eval runs and reviews in one timeline.
  • Workspace Members moved out of the sidebar and into Settings, where it is a card on the workspace Settings page.
  • The organization switcher moved from the account menu at the bottom of the sidebar to a dropdown at the top of the sidebar. Organization Members, Settings, and Admin Keys open from that dropdown.
  • The sidebar has a new collapsible Resources section with Registry, Documentation, and Community. The Blog link was removed.
  • Search is now an icon in the sidebar header. Click it, or press cmd-K (ctrl-K on Windows and Linux), to open the search popover.

2026-07-31

Features

  • POST /experimental/tasks, GET /experimental/tasks/{id}, and GET /experimental/tasks/by-link responses now include a links.web field with the task's URL in the web app.

2026-07-24

Features

  • GET /v1/workspaces/{workspaceNameOrID}/skill-inventories/{id}/findings now returns a repoActivity field (active, quiet, or dormant) reflecting how recently a finding's repositories were pushed to, and accepts a repoActivity query parameter to filter results by one or more of these buckets.
  • The canonical home banner on skill pages now shows a colored status badge (In sync, Stale, or Modified), plus when that status was last confirmed, matching the detail already shown in the "Also appears in" panel.
  • GET /experimental/tasks/{id}/runs responses now include a summary field on completed runs when one is available, giving a short description of what the run did.
  • The task timeline now shows a short summary of what a completed run did, alongside its existing status and links.

Bug Fixes

  • The Eval Runs pages no longer show an unrelated default-model notice banner at the top; pages now open directly with the heading and results table.
  • Eval run detail pages now show an "Activation Run" label above the run heading for runs that measure activation, and the Skills Activated column shows "None" when a solution completed with confirmed zero activations; previously this looked identical to a run still in progress.
  • The stale copy-state label on skill pages now reads "Last in sync {date}" instead of the contradictory "In sync until {date}", so the date shown accurately reflects when the copy last matched its source.
  • Skill listings on the registry now correctly hide skills whose current review failed, and no longer hide skills based on stale historical review results for identical content.

2026-07-17

Features

  • Connected GitHub App integrations now show separate Manage and Remove actions in integration settings, in place of a single Remove button: Manage opens the installation's settings on GitHub, and Remove opens a confirmation dialog before disconnecting.

Bug Fixes

  • The Ignored repos picker on the inventory scans page now searches your connected provider directly, so repositories beyond the first page of previously scanned repos can be found and ignored.

2026-07-09

Features

  • The eval runs list now shows a single Injected Context column in place of the separate Type and Subject columns, plus a new Scenarios column showing where each run's scenarios live.

Bug Fixes

  • Removed an inconsistent focus-ring outline from breadcrumb links; other interactive elements are unaffected.

2026-07-08

Features

  • The eval run detail view now labels variants "Baseline" and "With context" (replacing the misleading "Without context" label) and shows a new Injected Context panel describing exactly what fixture, plugin, directory, or commit a run injected.

2026-07-06

Bug Fixes

  • Skill-overload warnings no longer count skills sitting in plain source directories that no agent actually loads; only genuinely root-loaded skills count toward the threshold.

2026-07-03

Features

  • Billing settings now show the Team plan's monthly price inline: free organizations see it next to the Upgrade to Team button before checkout, and Team organizations see it next to their plan name.
  • GET /v1/orgs/{orgId}/billing/subscription now includes monthlyPriceUsd and upgradePriceUsd fields. monthlyPriceUsd is the current plan's monthly price (null for free or custom-priced plans); upgradePriceUsd is the Team plan's upgrade price (null once the org is already on a paid plan).
  • Workspace member pages now support setting a default role that's automatically granted to every member of the workspace's organization, on top of any individual membership, useful for organizations that provision users via SSO.
  • PATCH /v1/workspaces/:id now accepts an orgDefaultRole field. When set, every member of the workspace's owning organization is granted that role on the workspace (capped at publisher); omit it or set it to null to remove the default.

Bug Fixes

  • The org billing page's credit usage display now matches the sidebar meter: over-limit usage reads "You've used your credit allowance" instead of a negative remaining figure, and fractional credit amounts are floored consistently.

2026-07-02

Features

  • New DELETE /v1/projects/:projectId endpoint soft-deletes a project: it's removed from normal reads and its name and source binding are freed for reuse, while eval-run and scenario-generation history is preserved.

Breaking Changes

  • GET /v1/orgs/{orgId}/credits no longer returns the bundles field by default. Pass ?include=bundles to include the purchasable credit-bundle catalogue in the response, as before.

2026-07-01

Features

  • Claude Sonnet 5 (claude-sonnet-5) is now available as an agent model for eval runs.
  • The workspace Inventories Scans page has been rebuilt as a dashboard, with summary cards for estate growth, findings backlog, and scan health shown above the scans table.

2026-06-29

Features

  • Organizations can now subscribe to the Team plan and manage billing from organization settings: pay by card through a hosted checkout, get a monthly credit allowance, and buy additional credit bundles whenever you need them. Cancelling reverts the organization to the free plan at the end of the billing period.

Bug Fixes

  • Requests to GET /v1/tiles/:workspaceName/:tileName/versions/:version/files/:filePath with a malformed percent-encoded file path now return 404 instead of 500. File paths containing a literal % are also served correctly.

2026-06-27

Breaking Changes

  • Review and fix runs that select a custom reviewer plugin or a non-default model now require a paid plan. An explicit reviewer or model override on POST /experimental/review-runs or POST /experimental/fix-runs now returns 403 for an organization without the entitlement; previously such requests were accepted or silently fell back to the default. Free organizations continue to run against the default reviewer and model with no change.

2026-06-25

Features

  • Workspace members can now start skill reviews, security reviews, and review-fix runs. Previously these required the publisher role or higher; running a review is now available at the member level.

2026-06-19

Features

  • Org install policies now support a git source allowlist. Under Source restrictions, admins can configure which git hosts and repository path prefixes are permitted; installs from any unlisted git source are blocked at evaluation time. Sources are specified as github.com/org or github.com/org/repo patterns.
  • The install policy sourceRestriction rule now accepts a gitSourceAllowlist field: an array of { host, path } objects. When present, policy evaluation blocks any git-sourced install whose source does not match a listed host and path prefix.

2026-06-18

Features

  • Skill inventories can now be deleted from the inventory list. Workspace managers and owners see a delete action with a confirmation dialog; deleted inventories and their scans are immediately hidden but the workspace can be re-scanned at any time.
  • New DELETE /v1/workspaces/:workspaceName/skill-inventories/:id endpoint removes a skill inventory and hides it and all associated scans. Requires the manage_integrations permission.
  • The inventory estate view now includes an Ignored repos panel for managing which repositories are excluded from future scans. Ignoring a repo purges its existing scan data and prevents it from being re-ingested on subsequent imports.
  • New GET, POST, and DELETE /v1/workspaces/{workspaceName}/skill-inventories/{id}/ignored-repos endpoints let workspace admins manage which repositories are excluded from inventory scans. Ignoring a repo cascades a full data purge of its existing findings.
  • The Inventories item now always appears in the workspace sidebar when the feature is enabled, even before any imports have been run. The empty state and failed-scan messages now show the tessl inventory import command.
  • Install, publish, and dependency policies can now be set and viewed at the org, workspace, and project levels from a unified policy editor. The editor shows the effective merged policy with per-field provenance badges indicating whether each value is set at the current level or inherited from a parent.
  • GET /v1/policies/{type}/{id}/effective now accepts a ?provenance=true query parameter. The response includes a policySource field with per-field attribution showing which hierarchy level set each effective value.
  • New users with pending org invitations are now shown them during sign-up, before a personal workspace is provisioned. Accepting an invite joins the invited org directly; skipping provisions a personal workspace as before.
  • Eval runs now default to deepseek-v4-flash as the solver model (previously glm-5.1). Runs without an explicit model override pick up the new default; the scorer default remains claude-sonnet-4-6.

Bug Fixes

  • The plugin registry no longer shows stale installed-plugin content. Registry overview pages now always display the plugin's own declared skill documentation instead of falling back to vendored internal files.
  • The managed requirements search dropdown in the policy editor now overlays the page correctly instead of pushing the save button and other form content down.
  • Sending an org invitation now immediately refreshes the pending invitations list without requiring a page reload.

2026-06-17

Features

  • The inventory scan detail page now shows which first-party skills were added to or excluded from the index, with timestamps for added skills and reasons for excluded ones. A Re-index first-party skills button triggers a fresh indexing pass from the same page.

Bug Fixes

  • Skills submitted from repositories whose default branch is not main no longer get stuck in a sync error loop. The skill's source branch is now correctly recorded at submission time.

2026-06-11

Features

  • Review Runs now show what was reviewed: a registry-linked badge for tile skills, or the skill name for direct CLI review runs.
  • Review run objects now include a subject field in their metadata: { type: "tile_skill", tileRef, registryUrl } for tile-triggered reviews, or { type: "skill", name } for CLI-initiated reviews. Runs created before this change omit the field.

Bug Fixes

  • Buttons rendered as links (navigation CTAs and similar) no longer show an underline on hover.

2026-06-04

Bug Fixes

  • Skill-name validation no longer rejects names containing anthropic or claude as substrings. Skills such as claude-api that were previously blocked now validate and score correctly.
  • tile quality scores now include completed review run results. Previously, review run scores were missing from the quality calculation.

2026-05-28

Features

  • File downloads for tile versions with failed, errored, or pending moderation now return 403 with a moderation_hidden error code. Inline docs and steering are omitted from those version objects on GET /v1/tiles, GET /v1/tiles/:ws/:tile/versions, and GET /v1/tiles/:ws/:tile/versions/:version.
  • tile pages now show a placeholder instead of inline docs and steering when a version is under moderation review, has failed moderation, or encountered a moderation error.
  • Public tiles now enforce a platform-level critical-severity security threshold: publishing a version with critical-severity findings blocks moderation and prevents the version from becoming available, regardless of workspace security policy settings.
  • Claude Opus 4.8 (claude-opus-4-8) is now available as an agent model for eval runs.

Bug Fixes

  • Security severity levels in moderation failure messages now display as 'Critical', 'High', 'Medium', and 'Low' rather than internal identifiers.
  • Trend indicators on tile analytics now show 'New' when there is no baseline period to compare against, instead of an incorrect percentage.

2026-05-27

Bug Fixes

  • Eval-run detail pages now live under workspace-scoped URLs (/workspaces/:workspace/eval-runs/:id), so the sidebar shows the correct workspace navigation. Existing /eval-runs/:id links redirect automatically for workspace members; public run links continue to work without authentication.

2026-05-22

Features

  • moderationStatus and moderationError are now included in the version objects returned by GET /v1/tiles, GET /v1/tiles/:ws/:tile, GET /v1/tiles/:ws/:tile/versions, and GET /v1/tiles/:ws/:tile/versions/:version. moderationStatus is one of pass, fail, error, pending, or skipped; moderationError carries a safe, human-readable message when present. The deprecated moderationPassed boolean is unchanged; moderationStatus is the recommended replacement.
  • The moderation status banner on tile pages now shows three distinct states: failed moderation (red), moderation error (orange), and review in progress (blue), each with copy tailored to the outcome.

2026-05-21

Features

  • Security review is now a required stage before a published tile version becomes available. After publishing, a version stays in pending moderation state until the security scan completes; a failed or errored scan results in a fail verdict and prevents the version from being accessible.
  • tiles now show a pending moderation state immediately after publishing while security review runs; the version becomes available once review completes, and a failed scan keeps it offline.
  • Workspace member pages now include a short description explaining that org membership is required before a workspace role can be assigned, with a direct link to the org members page.

Bug Fixes

  • The error toast shown after a failed skill submission now displays a close button and auto-dismisses.

2026-05-14

Bug Fixes

  • Publishing to a workspace where you lack the publisher role now returns 401 Unauthorized with a message directing you to ask a workspace manager or owner (previously returned 404 Not Found).

2026-05-13

Features

  • tiles and skills with no eval coverage now show an adjusted score: 80% of the review-based score at zero evals, ramping to full weight at three or more. Search ranking and score badges reflect this change.

2026-05-12

Features

  • The organization switcher has moved into the user menu with keyboard navigation. The workspace list now shows all workspaces across organizations, with an org badge when you belong to more than one.

Breaking Changes

  • The allowUrlSources and allowFileSources fields have been removed from the managed-project policy; PUT /v1/workspaces/{workspaceId}/managed-project-policy now returns an error if either field is sent. Existing policies are migrated automatically.

Bug Fixes

  • The workspace selector in the 'Add member to organization' form now correctly requires a selection before submitting.

2026-05-11

Features

  • GET /v1/workspaces/:id now accepts a workspace name in place of an ID.

2026-05-08

Features

  • Workspace settings now include toggles for public publishing, security reviews, and eval runs, accessible to workspace managers and above.
  • New GET, PUT, and DELETE /v1/workspaces/{workspaceId}/managed-project-policy endpoints for managing workspace dependency-pinning policies.
  • tiles in workspaces with security reviews disabled now show a disabled state instead of Pending on the security tab.

2026-05-07

Features

  • Starting an eval run or generating scenarios now returns 400 for workspaces with evals disabled.

Bug Fixes

  • Workspace created during onboarding now appears in the sidebar immediately without a page reload.

2026-05-06

Features

  • New /changelog page summarizing what shipped on Web and API each week.
  • Onboarding now captures role and use case during signup.

Bug Fixes

  • UUID validators relaxed to accept any valid hex format.

2026-05-05

Features

  • Refreshed copy on workspace and org role descriptions to make permissions easier to understand at a glance.
  • Creating a workspace now requires the org-admin permission.

Bug Fixes

  • Org and workspace selectors stay populated after a page refresh.

2026-05-01

Features

  • API endpoints are now tagged as public or experimental in the OpenAPI spec.

Breaking Changes

  • Editing workspace settings now requires the edit_settings permission (manager or higher).

2026-04-30

Features

  • Workspace Projects are now available to all customers.
  • Eval-result emails redesigned with a clearer score breakdown.
  • HTML files are now permitted in tile publishes.

2026-04-29

Breaking Changes

  • Legacy user-scoped API keys no longer accepted; switch to workspace- or org-level API keys.

Bug Fixes

  • Eval-run table rows are now real links so command-click opens them in a new tab.

2026-04-28

Features

  • Refreshed the favicon set across the web product.

2026-04-27

Features

  • Org admins can now change member roles.
  • Org admins can now remove members from the organization.

2026-04-24

Features

  • Pending org invitations can now be listed, resent, and revoked from the UI.
  • Related tiles and skills are back, now powered by semantic search.

Bug Fixes

  • Pending eval runs are now labeled "In Progress".

2026-04-23

Features

  • Added an organization switcher above the workspace selector.
  • Workspace owners can now delete empty workspaces.
  • Organizations can now be renamed directly from the UI.
  • A single invitation can now add a user to multiple workspaces in an organization.
  • Workspace managers can now browse organization members when adding workspace members.
  • Eval-run page now renders activation results from agent runs.

2026-04-21

Features

  • Eval-run progress now renders as a per-scenario segmented bar.

2026-04-16

Features

  • New workspace settings page with a Block Public Tiles toggle.
  • Email notifications are now sent on eval completion.

2026-04-15

Features

  • tile publishing now uses workspace-level API tokens.

2026-04-13

Features

  • tile lists can now be sorted by score, security, and impact.
  • API-key authentication now accepted on GET /users/me.

2026-04-09

Features

  • Codex agent now available for eval runs.

2026-04-08

Features

  • Username now visible in the user dropdown menu.
  • Login and signup pages refreshed with a new tessellated logo background.

2026-04-07

Features

  • Improved the error messages when tile moderation fails.

Bug Fixes

  • tiles with no score now show a Pending badge instead of a 404.

2026-04-02

Features

  • Authentication-provider buttons now use a consistent "Continue with" label.
  • Removed the in-product tile-generation flow and the Request Docs CTAs.

2026-04-01

Features

  • Directory fixtures now supported in the V2 eval-run API.

2026-03-31

Features

  • Custom login and signup screens replace the previous hosted auth experience.
  • CLI device-auth flow added so tessl login works from the terminal.

2026-03-30

Features

  • New API-key management UI rolled out.
  • Failed security reviews now appear in the UI.
  • Install CTA is now hidden on tiles and skills with critical-severity security findings.
  • Email invitations are now rate-limited.