Changelog
Release notes for Thoth SDKs, the Thoth binary line (proxy + thothctl), and IaC providers.
All notable changes to Thoth SDKs, the Thoth binary line (thoth + thothctl), and IaC providers are documented here. Releases follow
Semantic Versioning. Latest versions:
Go v0.1.17 · Python v0.1.16 · TypeScript v0.1.18 · Thoth binary line v0.3.4 · Terraform Provider v0.1.11 · Pulumi Provider v0.1.11.
Release note: This changelog lists customer-facing release versions only. SDK and binary lines are listed at their published release numbers.
Subscribe
- Direct feed URL:
https://docs.atensecurity.com/docs/changelog/rss.xml - One-click Feedly subscribe: Feedly
- One-click Inoreader subscribe: Inoreader
Jump to release
- v0.1.18 / v0.3.4 (June 8, 2026)
- v0.1.18 / v0.3.3 (May 14, 2026)
- v0.1.17 / v0.3.3 (May 10, 2026)
- v0.1.16 / v0.3.0 (May 5, 2026)
- v0.1.15 / v0.2.23 (April 30, 2026)
- v0.1.14 / v0.2.22 (April 28, 2026)
- v0.5.5 / v0.2.20 (April 27, 2026)
- v0.5.4 / v0.2.19 (April 26, 2026)
- v0.5.4 / v0.2.18 (April 26, 2026)
- v0.1.6 / v0.2.8 (April 24, 2026)
- v0.1.6 / v0.2.8 (April 22, 2026)
- v0.1.6 / v0.2.7 (April 21, 2026)
- v0.1.6 / v0.2.3 (April 20, 2026)
- v0.1.6 / v0.2.2 (April 19, 2026)
- v0.1.3 / v0.2.0 (April 15, 2026)
- v0.1.2 (April 10, 2026)
- v0.1.1 (March 31, 2026)
- v0.1.0 (March 30, 2026)
Enterprise release pathway: Homebrew tap + notarized PKG + supply-chain trust metadata
This release line publishes:
- Go SDK: unchanged at
sdk/go/v0.1.17 - Python SDK: unchanged at
sdk/python/v0.1.16 - TypeScript SDK: unchanged at
sdk/npm/v0.1.18 - Thoth proxy +
thothctlbinary line:thoth/v0.3.4 - Terraform provider: unchanged at
v0.1.11 - Pulumi provider: unchanged at
v0.1.11
Enterprise distribution and verification
- Added Homebrew tap publication flow for
atensecurity/homebrew-tap. - Added notarized macOS PKG release pathway for MDM deployments (Jamf/Intune/Kandji).
- Published Santa trust metadata (
santa-metadata.json) and signing metadata for endpoint allowlisting. - Expanded release metadata set: SBOMs (CycloneDX + SPDX), provenance, immutable manifest, checksums, and Sigstore keyless signatures.
- Added documentation runbooks for release channels, Santa trust policy, Kandji deployment, and deployment validation matrix.
MODIFY, DEFER, and complete MOSES decision envelope across Python, Go, and TypeScript
This release line publishes:
- Go SDK:
sdk/go/v0.1.17 - Python SDK: unchanged at
sdk/python/v0.1.16 - TypeScript SDK:
sdk/npm/v0.1.18 - Thoth proxy +
thothctlbinary line: unchanged atthoth/v0.3.3 - Terraform provider: unchanged at
v0.1.11 - Pulumi provider: unchanged at
v0.1.11
Two new decision outcomes
MODIFY— the enforcer rewrites tool arguments before execution. The governed wrapper calls the tool with the modified args.PolicyViolationError/ThothPolicyViolationis not raised — execution proceeds with policy-applied arguments. The audit trail carries both the original request and the modification reason.DEFER— the enforcer signals the caller to retry after a specified timeout. Different fromSTEP_UP: no human approval required, time-bounded, and recoverable by design. The error surfacesdeferTimeoutSeconds/DeferTimeoutSecondsfor caller-side retry logic.
Legacy enforcer aliases normalize automatically: TRANSFORM→MODIFY, HOLD/DEFERRED→DEFER, DENY→BLOCK, CHALLENGE/ESCALATE→STEP_UP.
Full MOSES ML decision envelope in SDK error types
PolicyViolationError (Go) and ThothPolicyViolation (Python and TypeScript) now carry six new fields from the MOSES two-tier enforcement path:
| Field | Description |
|---|---|
decision_envelope_version / DecisionEnvelopeVersion | Schema version of the enforcer response — for forward-compatibility checks |
enforcement_trace_id / EnforcementTraceID | Correlation ID following the request through enforcer → fast-ML → deep-LLM |
fastml_features / FastMLFeatures | ONNX fast-ML feature vector used to score the request |
score_components / ScoreComponents | Composite risk score breakdown by component (scope, velocity, identity binding, etc.) |
top_contributors / TopContributors | Ranked list of highest-weight features that drove the decision |
decision_evidence / DecisionEvidence | Raw evidence fields from the enforcer response envelope |
These fields are available directly on the caught exception — no additional API calls needed for incident reporting or audit trail reconstruction.
Canonical observe mode
shadow is no longer part of the public SDK surface. The canonical enforcement mode is observe. The enforcer and all three SDKs continue to accept shadow as an alias — no config changes required in running deployments.
Expanded policy context propagation
ThothConfig / Config now accepts environment, enforcement_trace_id, session_intent, purpose, data_classification, and task_context. All fields are forwarded on every enforcement call.
HTTP diagnostics
Improved error messages for 401/403 enforcer responses with actionable hints about API key scope and ingest token configuration.
Proxy 0.3.3 and provider 0.1.7 release alignment
This release line publishes:
- Go SDK: unchanged at
sdk/go/v0.1.15 - Python SDK:
sdk/python/v0.1.16 - TypeScript SDK:
sdk/npm/v0.1.17 - Thoth proxy +
thothctlbinary line:thoth/v0.3.3 - Terraform provider:
v0.1.7 - Pulumi provider:
v0.1.7
Docs and release consistency
- Promoted Thoth CLI/proxy docs to the
thoth/v0.3.3binary line. - Standardized provider references on
v0.1.7across Terraform and Pulumi docs.
Org API key auth for IaC + Thoth 0.3.0 release line
This release line publishes:
- Go SDK: unchanged at
sdk/go/v0.1.15 - Python SDK: unchanged at
sdk/python/v0.1.15 - TypeScript SDK: unchanged at
sdk/npm/v0.1.16 - Thoth proxy +
thothctlbinary line:thoth/v0.3.0 - Terraform provider:
v0.1.3 - Pulumi provider:
v0.1.2
Infrastructure-as-code provider releases
- Added org-level API key auth for provider workflows and preserved bearer-token compatibility.
- Standardized CI/CD auth through
THOTH_API_KEYfor Terraform and Pulumi provider usage. - Updated provider release notes and docs for dual-auth guidance.
Thoth binary line release
- Published
thoth/v0.3.0and aligned customer-facing install/version references. - Updated release docs to reflect the current stable binary line for
thothandthothctl.
Canonical release lines, Secrets Broker GA docs, and ingest resilience
This release line publishes:
- Go SDK:
sdk/go/v0.1.14 - Python SDK:
sdk/python/v0.1.14 - TypeScript SDK:
sdk/npm/v0.1.15 - Thoth endpoint runtime:
thoth/v0.2.23
Release and upgrade clarity
- Standardized customer docs on canonical release channels (
thoth/v*for endpoint runtime,sdk/*for SDKs). - Updated install and quick-reference pages to reflect current stable versions and package constraints.
Operator workflows
- Added customer-ready strict-mode Secrets Broker examples for MCP tools (for example Figma, Notion, and Stitch host bindings).
- Documented fail-closed token handling patterns for endpoint runtime use without storing long-lived tokens in local tool config.
Runtime resilience
- Hardened telemetry ingest behavior for intermittent
403/edge enforcement failures to reduce dropped event noise and improve operator troubleshooting.
SDK log-level controls + governance envelope hardening
This release line publishes:
- Go SDK:
sdk/go/v0.1.13 - Python SDK:
sdk/python/v0.1.13 - TypeScript SDK:
sdk/npm/v0.1.14 - Thoth endpoint runtime:
thoth/v0.2.22
SDK diagnostics and enforcement traceability
- Added SDK log-level controls across Go, Python, and TypeScript for cleaner operator debugging.
- Improved STEP_UP token and enforcement trace diagnostics to make approval-path troubleshooting faster.
Thoth control-plane hardening
- Unified auth/delegation envelope fields across control-plane and runtime services.
- Added stricter default purpose-class enforcement and promotion lifecycle guardrails.
- Hardened model-router policy behavior and admin settings integration for safer runtime rollout control.
- Clarified API key redaction output and governance feed query UX.
Tenant-scoped telemetry and API-key hardening
This release line publishes:
- Go SDK:
sdk/go/v0.1.11 - Python SDK:
sdk/python/v0.5.4 - TypeScript SDK:
sdk/npm/v0.5.5 - Thoth endpoint runtime:
thoth/v0.2.20
SDK telemetry isolation
- Go, Python, and TypeScript SDK ingestion paths now align to tenant-scoped telemetry/event IDs to avoid cross-tenant event collisions.
- Instrumentation payload models were updated to preserve scoped event identity throughout ingest and normalization.
Endpoint runtime management
- Improved API key management UX and guidance for scope-aware authorization.
- Set a secure 90-day default API key expiry with proactive warnings for near-expiry keys.
- Fixed shadow mode STEP_UP visibility so review-to-agent-registry flows surface approval state consistently.
In-place runtime update experience
This release line publishes:
- Go SDK: unchanged at
sdk/go/v0.1.10 - Python SDK: unchanged at
sdk/python/v0.5.3 - TypeScript SDK: unchanged at
sdk/npm/v0.5.4 - Thoth endpoint runtime:
thoth/v0.2.19
Lifecycle management
- Added in-place update workflows for endpoint runtime and admin tooling.
- Each command checks GitHub Releases, verifies asset checksums (
checksums.sha256), and installs only verified binaries. --forceis supported for explicit reinstallation of the latest release.
Customer docs
- Updated external docs to reflect current Thoth binary line
v0.2.19. - Added update workflow guidance so operators can keep binaries current without reinstall scripts.
Scoped key reliability + SDK ingest auth parity
This release line publishes:
- Go SDK:
sdk/go/v0.1.10 - Python SDK: unchanged at
sdk/python/v0.5.3 - TypeScript SDK:
sdk/npm/v0.5.4 - Thoth endpoint runtime:
thoth/v0.2.18
SDK ingest reliability
- Go and TypeScript SDK emitters now send both
Authorization: Bearer ...andX-Api-Keyheaders on ingest calls to match enforcer/runtime expectations. - Non-2xx ingest failures now log the HTTP status, target URL, and a safe response-body snippet to speed up debugging.
API key management
- API key creation and authorization flows now support explicit scope selectors:
--organization--fleet-id--endpoint-id--agent-id
- Command help now explains key scope vs runtime context matching in plain language.
- Authorization output now includes clear hints when validation fails due to expiry, permission mismatch, or scope mismatch.
Operator docs
- Public runbooks now use explicit scope flags in API key command examples so customer operators can copy/paste known-good commands.
Python SDK ThothClient Backward-Compatibility Export
This release line publishes:
- Go SDK: unchanged at
sdk/go/v0.1.5 - Python SDK: unchanged at
sdk/python/v0.1.6 - TypeScript SDK: unchanged at
sdk/npm/v0.1.6 - Thoth binary line: unchanged at
thoth/v0.2.8
Python SDK (aten-thoth)
- Restored
from thoth import ThothClientcompatibility export. - Added legacy method aliases (
wrap,wrap_openai_tools,wrap_anthropic_tools) that delegate to currentinstrument*APIs.
Documentation
- Python SDK README now includes a legacy compatibility section for
ThothClient. - Docs-site Python SDK reference now calls out preferred module-level APIs and legacy
ThothClientsupport.
Headless operations improvements
This release line publishes:
- Go SDK: unchanged at
sdk/go/v0.1.5 - Python SDK: unchanged at
sdk/python/v0.1.6 - TypeScript SDK: unchanged at
sdk/npm/v0.1.6 - Thoth endpoint runtime:
thoth/v0.2.8
Fleet management + MDM providers
- Added tenant-scoped MDM provider configuration and sync workflows for Jamf and Intune.
- Fleet management now supports on-demand provider inventory synchronization to upsert endpoint records.
- Provider sync now supports default fleet and environment mapping for imported endpoints.
Headless control plane
- Admin tooling is now documented as the default path for no-dashboard bootstrap and updates.
- New headless operations section covers API-driven and automation-driven orchestration patterns.
- Documentation now emphasizes customer-run automation workflows without dashboard dependency.
- SIEM/PAM integration guidance is now aligned to API-first and CI-driven operations.
- Added browser control-plane workflows for provider, policy, and enrollment management across supported browsers.
- Added browser sync workflows for endpoint-side policy resolution and managed artifact application (
applied/rendered/dry_run) to support mixed browser fleets.
Manual endpoint enrollment
- Fleet management now provides generated re-enrollment scripts for endpoints not associated with a fleet.
- Direct endpoint enrollment supports optional fleet assignment through
THOTH_FLEET_ID. - Endpoint health state remains current through periodic proxy check-ins.
Documentation
- Added external-facing docs for MDM provider sync and manual endpoint enrollment flow.
- Proxy install docs now default to
thoth/v0.2.8. - Added public-platform delivery workflows: Terraform-based public repo bootstrap and CI mirroring for provider/runbook content.
Proxy Identity Defaults + Enforcer Context-Diff Warnings
This release line publishes:
- Go SDK: unchanged at
sdk/go/v0.1.5 - Python SDK: unchanged at
sdk/python/v0.1.6 - TypeScript SDK: unchanged at
sdk/npm/v0.1.6 - MCP Proxy:
thoth/v0.2.7
MCP Proxy (thoth binary)
- Endpoint identity resolution now defaults to immutable machine identity (Intune/Jamf managed ID override, then OS machine ID), with hostname only as last-resort fallback.
THOTH_USER_IDremains required and must be a valid email address.enforcer_urlandgovapi_urlare inferred fromtenant_id+apex_domain.--enforcer-url/THOTH_ENFORCER_URLare now deprecated and ignored.
Enforcer
- Requests with valid keys now proceed even when endpoint/fleet scope context does not match exactly; enforcer emits warnings for follow-up.
- Tenant user-domain mismatches are now warn-only when key validation succeeds.
Documentation
- Customer docs now reflect
thoth/v0.2.7defaults for identity, URL inference, and runtime env expectations.
Wrap-Config Env Injection + Simpler Endpoint Routing
This release line publishes:
- Go SDK: unchanged at
sdk/go/v0.1.5 - Python SDK: unchanged at
sdk/python/v0.1.6 - TypeScript SDK: unchanged at
sdk/npm/v0.1.6 - MCP Proxy:
thoth/v0.2.3
MCP Proxy (thoth binary)
thoth wrap-confignow supports repeatable--env KEY=VALUEto inject runtime environment values directly into selected MCP server entries.- Wrap output remains idempotent and now reports environment changes when values are updated.
- Fleet registration URL handling is simplified:
govapi_urlis derived automatically fromtenant_id+apex_domainashttps://grid.<tenant>.<apex-domain>.enforcer_urlis derived automatically ashttps://enforce.<tenant>.<apex-domain>when not explicitly set.- legacy
gov_api_urlcompatibility paths are removed.
- Runtime identity hardening:
THOTH_USER_IDmust be a valid email address.- customer domain policy is enforced centrally by enforcer tenant metadata (admin-managed), with automatic request blocking for non-matching user domains.
Documentation
- Customer-facing docs are updated for
v0.2.3. - Proxy setup examples now use supported
wrap-configflags and document inline environment injection via--env.
Fail-Closed Enforcement + Canonical Contract Parity
This release line publishes:
- Go SDK:
sdk/go/v0.1.5 - Python SDK:
sdk/python/v0.1.6 - TypeScript SDK:
sdk/npm/v0.1.6 - MCP Proxy:
thoth/v0.2.2
Proxy + SDK enforcement behavior
- Go and proxy paths now enforce fail-closed posture on enforcer/runtime failures.
- Enforcement payload contract is normalized to canonical fields:
tool_argsenforcement_trace_iduser_id,approved_scope,session_intent,session_tool_calls
- Session tool-call history is bounded to the latest 128 calls for parity across Go and proxy paths.
Documentation
- Docs now reflect fail-closed behavior in SDK guidance and security posture sections.
- Version banners and docs-site changelog are updated for the latest SDK/proxy releases.
Telemetry Metadata + Policy Context Propagation
This release publishes:
- Go SDK: unchanged at
sdk/go/v0.1.2 - Python SDK:
sdk/python/v0.1.3 - TypeScript SDK:
sdk/npm/v0.1.3 - MCP Proxy:
thoth/v0.2.0(public release:atensecurity/thothv0.2.0)
Python SDK (aten-thoth)
BehavioralEventnow includes endpoint context fields:endpoint_idhostname
BehavioralEventnow includes WORM chain evidence fields:chain_indexhashprevious_hashsignature
- Dependency lock/metadata refreshed as part of the SDK patch line.
TypeScript SDK (@atensec/thoth)
- Enforcer payload now propagates:
tool_argsuser_idmetadata.policy_contextenforcement_trace_id
ThothConfigadds:policyContextenforcementTraceId
- Instrumentation now serializes tool call arguments safely before enforcement checks.
MCP Proxy (thoth binary)
- Emitted events now include normalized top-level endpoint metadata:
endpoint_idhostname
- Event metadata includes
hostnameconsistently for downstream pipelines. - MCP proxy distribution now uses the cross-platform
thothbinary release line. - Docs + install path standardized to:
curl -fsSL https://install.atensecurity.com/thoth | sh- GitHub release assets from
atensecurity/thoth
Tenant API URL Contract + Session Intent Enforcement
This release publishes v0.1.2 for all Thoth SDKs:
- Go:
sdk/go/v0.1.2 - Python:
sdk/python/v0.1.2 - TypeScript:
sdk/npm/v0.1.2
Unified SDK API URL contract
- Go, Python, and TypeScript SDKs now use a single tenant API URL for both:
- policy enforcement (
POST /v1/enforce) - behavioral event ingestion (
POST /v1/events/batch)
- policy enforcement (
- SDK startup now requires tenant API URL configuration via:
- explicit config (
APIURL/api_url/apiUrl) - or
THOTH_API_URL
- explicit config (
- Removed SDK fallbacks to hosted global defaults and split endpoint semantics.
Go SDK
NewClientnow fails fast whenAPIURLis missing.- Examples and tests updated to pass
THOTH_API_URLexplicitly. - SDK docs now include required env setup and quickstart examples.
Python SDK
ThothConfignow requires tenant API URL resolution (api_urlorTHOTH_API_URL) and enforces a single URL contract.resolved_enforcer_urlnow follows the single-URL contract and mirrorsresolved_api_url.session_intentis now accepted in config and passed to enforcement payloads.- Step-up polling now sends auth headers when
api_keyis present.
TypeScript SDK
- Removed
HOSTED_API_URLfallback and split enforcer semantics. instrument()now throws at startup whenapiUrl/THOTH_API_URLis missing.- Enforcement and event emission now route through the same tenant API URL.
sessionIntentis now supported in config and forwarded to enforcement payloads.- Runtime/test baseline updated and validated for Node.js 18+ compatibility.
This patch release fixes critical mismatches between the Go and TypeScript SDKs and the enforcement API. All SDK consumers on v0.1.0 should upgrade.
Go SDK (github.com/atensecurity/thoth-go)
- Critical enforcement compatibility and decision-handling fixes across request/response mapping.
- Endpoint and schema alignment updates for stable enforcement and step-up behavior.
- Improved client metadata propagation and response observability fields.
TypeScript SDK (@atensec/thoth)
emitBehavioralEventwas not exported from the package root. It is now accessible viaimport { emitBehavioralEvent } from "@atensec/thoth".
REST API documentation
- All endpoint paths, request field names (corrected to snake_case), response schemas, and HTTP status codes in the API reference now match the actual backend.
First General Availability Release
This is the first general-availability release of the Thoth SDK. All three language SDKs (Python, Go, TypeScript) are stable and production-ready.
Hosted API — single API key, zero infrastructure
The Thoth enforcement and event ingestion API is now hosted at https://api.atensecurity.com.
Authentication requires a single THOTH_API_KEY — no AWS credentials, no infrastructure setup.
All three SDKs pick it up automatically from the environment.
Python SDK (thoth-sdk)
instrument(agent, ...)— Instrument any AI agent with a.toolsattribute. Auto-detects LangChainAgentExecutorand CrewAIAgentvia duck-typing.instrument_anthropic(tool_fns, ...)— Wrap tool execution functions for Anthropic Claude agentic loops. Returns a governeddict[str, Callable].instrument_openai(tool_fns, ...)— Wrap tool execution functions for OpenAI tool-calling loops.ThothPolicyViolationexception — raised when the enforcer blocks a tool call. Fields:tool_name,reason,violation_id.get_current_session()— Access the active session context from within a governed tool call.ThothConfig— Pydantic model with full field validation.EnforcementModeenum —observe|progressive|step_up|block.- LangGraph and CrewAI integrations — auto-detected via duck-typing.
Go SDK (github.com/atensecurity/thoth-go)
NewClient(Config)— Initialize the Thoth client with env-var fallback.Client.WrapTool/Client.WrapToolFunc— wrap string and map tool functions.Client.StartSession(ctx, agentID, sessionID)— per-request session isolation.PolicyViolationError,StepUpRequiredError— typed error values.- Fail-open guarantee — enforcer unreachable never blocks tool execution.
TypeScript SDK (@atensec/thoth)
instrument<T>(agent, config)— generic agent instrumentation; preserves TypeScript types.wrapAnthropicTools/wrapOpenAITools— sub-path imports for framework-specific wrappers.ThothPolicyViolation— extendsError. Fields:toolName,reason,violationId.EnforcementModeenum,ThothConfiginterface,BehavioralEventinterface.- Async generator support and
strict: truecompilation.
REST API (https://api.atensecurity.com)
POST /v1/events/batch— up to 100 events per batch; idempotent viaevent_id; 90-day retention.POST /v1/enforce— returnsALLOW | BLOCK | STEP_UPwith progressive anomaly scoring.GET /v1/enforce/hold/{hold_token}— returnspending | approved | denied | expired.- Rate limits: 1,000 req/min (events), 500 req/min (enforce), 200 req/min (hold) per tenant.
| Mode | Behavior |
|---|---|
observe | Log and emit events only. Never block. |
progressive | Escalating enforcement based on session anomaly scoring. Default. |
step_up | Always require human approval for out-of-scope tools. |
block | Immediately reject with ThothPolicyViolation. |