> For the complete documentation index, see [llms.txt](https://govplane.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://govplane.gitbook.io/docs/changelog/readme.md).

# Changelog

{% updates format="full" %}
{% update date="2026-08-22" tags="update" %}

## Python Runtime SDK 2.0.0

The Python Runtime SDK now follows the v2 architecture. Loading a signed bundle from disk is the ordinary path: `create_local_client()` needs no account, no credentials and no network call, and Govplane Cloud is an option rather than a prerequisite. `create_remote_client()` covers the cloud side, with the same engine, decisions and error codes. Isolated mode, its trigger file and the requirement for a `base_url` and a `runtime_key` to read a local file are gone, as are `start()` and `warm_start()`: the bundle is verified during construction, so a client that exists is always ready.

Also in this release: evaluation by rule id, shorter `as_boolean` / `as_binary` / `effect_only` answers, file watching, working backoff and jitter for cloud polling, structured traces, `py.typed`, and error codes shared with `@govplane/cli` and the Node SDK. Signature verification now reports four distinct outcomes and uses a single canonicaliser that matches what `govplane sign` and `gp-worker` actually sign. Ed25519 signatures and HMAC from Govplane Cloud are rejected.

**Breaking:** this is a rewrite, not an increment on 0.1.0. Signatures issued against the 0.1.0 canonical form no longer verify, and several comparison operators were corrected in ways that change decisions. Re-sign with `govplane sign` or fetch a fresh bundle, and read the migration guide first.
{% endupdate %}

{% update date="2026-08-06" tags="update" %}

## Govplane 2.0 — open source, and it runs without us

Govplane is now open source under the MIT license. The CLI, the CLI Toolkit and the Runtime SDK are published on GitHub, and the policy bundle specification is public — you can author, sign and evaluate bundles without an account and without running any Govplane service.

**Runtime SDK 2.0 (Node.js).** `createLocalClient` evaluates a signed bundle from disk with no network access; `createRemoteClient` replaces the 1.x `RuntimeClient` for Govplane Cloud. Both return the same interface, so switching between them is a one-line change. Zero runtime dependencies, Node.js 20.19 or later. Signature verification is now required unless you pass `allowUnsigned`, and signing uses `ECDSA_SHA_256` or `HMAC_SHA256` — Ed25519 has been removed. See the migration guide before upgrading from 1.x.

**Govplane CLI.** `validate` and `inspect` any draft or bundle from your terminal. No account, no network: the only command that can reach the internet is `version --check`, and only when you pass the flag.

**Govplane CLI Toolkit.** Free authoring tools — `build`, `sign`, `simulate`, `analyze` and `policies`. Activation asks for an email address once, with a 30-day grace period, and the toolkit never contacts us again afterwards. No telemetry and no machine binding. If activation ever lapses, only the authoring commands stop; your SDK, your bundles and your production
{% endupdate %}

{% update date="2026-03-18" tags="fix" %}

## Fixed issues when adding a security key or enabling OTP

Some users reported an error that prevented them from adding a new physical security key, a passkey or while trying to enable OTP. Problems were also reported with deleting existing security keys and passkeys. A patch has been applied to resolve these issues. The problem seems to have been resolved across the board.

{% endupdate %}

{% update date="2026-03-15" tags="update" %}

## Update Released – Import and Export Policies within a Project

We have released a new update to the web client, which allows you to import policies in JSON format either via a file or by pasting the JSON text directly. We have also added the option to export one or more policies from a project.&#x20;
{% endupdate %}

{% update date="2026-03-09" tags="update" %}

## SDKs for Java, PHP, and Python now generally available

Govplane is releasing new SDKs for Java (v0.1.0), PHP (v0.9.0), and Python (v0.1.0), which are currently in beta. The operation of these SDKs is essentially the same as that available for Node.js.

<a href="/spaces/9j8BoaOdXvFjMqtxvrwF/pages/u81NXUCMwtvlj6ZhfKNf" class="button primary">Read the documentation</a>
{% endupdate %}
{% endupdates %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://govplane.gitbook.io/docs/changelog/readme.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
