---
title: openplanr 2.2639.3
description: Published 2026-09-27. The generated Claude Code plugin now ships a README.md beside plugin.json, rendered from a template with the current skill and agent…
url: https://openplanr.dev/docs/changelog/2.2639.3
updated: 2026-09-27
related:
  - https://openplanr.dev/docs/changelog/2.2639.5.md
  - https://openplanr.dev/docs/changelog/2.2639.4.md
  - https://openplanr.dev/docs/changelog/2.2639.2.md
---

# openplanr 2.2639.3

Published 2026-09-27.

[Release on GitHub](https://github.com/openplanr/OpenPlanr/releases/tag/openplanr%402.2639.3)

## Patch Changes

The generated Claude Code plugin now ships a `README.md` beside `plugin.json`, rendered from a template with the current skill and agent counts and the plugin version, so the plugin folder meets the Anthropic plugin directory's README requirement. `plugin.json` also carries `displayName`, `homepage`, `repository`, and `keywords`.

The Operate client's Assignment submission, governed Action and experience read transactions run from their own service modules under `dist/services/operate/`. `openplanr operate` behaviour and the exports of `services/operate/client.js` are unchanged.

Recording a `rejected` or `deferred` Action approval through `operate.action.approve` now commits the decision and moves the Action to `rejected` or `deferred`. Previously the command failed with `STATE_TRANSITION_INVALID` ("operating-event: $ matched 0/57 branches") because the follow-up Action Event carried no reason, and the Action stayed `proposed`.
