Skip to content

v0.1.6 — dedup fix + holds MCP & n8n node first release

Choose a tag to compare

@leodavidsec leodavidsec released this 05 Jul 08:58
fe4178e

Reeflex v0.1.6 — multi-channel: Claude adapter, holds MCP server, n8n node

Released: 2026-07-05
Branch: release/v0.1.6 (git tag pending release)
Core image: unchanged — reeflex-core has no changes in 0.1.6, so the GHCR
image stays ghcr.io/reeflex-io/reeflex-core:v0.1.5
(digest sha256:ca6f0488290721db16db5c9ff3b1af8acb3b14010a7f0f2e5d37d87abab3a2ac).

Highlight

First multi-channel release. The Claude adapter, the holds MCP server, and the
n8n community node ship to PyPI / npm alongside the GitHub release and the GHCR core
image — three new approval/enforcement surfaces around the same deterministic core.

What's in it

Added

  • reeflex-holds MCP server (first release). A FastMCP server exposing
    list_holds / get_hold / resolve_hold / get_freeze_status over reeflex-core's
    Holds API, so an MCP client (e.g. Claude Desktop) can be the approval surface.
    Env-configured (REEFLEX_CORE_URL / REEFLEX_TOKEN / REEFLEX_PRINCIPAL /
    REEFLEX_VERIFY_SSL); TLS-verify opt-out at parity with the adapters.
  • n8n-nodes-reeflex community node (first release). The "Reeflex Gate" node
    (allow / hold / deny outputs) + "Reeflex API" credential, plus five importable,
    story-driven demo workflows preconfigured against the public api-dev eval endpoint —
    each with an embedded GIF of a real run.
  • reeflex-claude: REEFLEX_VERIFY_SSL + REEFLEX_CORE_TOKEN. TLS-verify opt-out
    (user's risk, default on) and bearer auth, at parity with the WordPress adapter;
    enables dev/self-signed + authenticated core endpoints (e.g. api-dev.reeflex.io).

Fixed

  • WordPress adapter — double-gating dedup (reeflex-gate 0.1.5). An MCP-originated
    action gated twice (the ability's own gate + the MCP adapter layer) created two holds
    for one call; approving both re-ran the action twice. The adapter now deduplicates by
    canonical envelope hash + session within a tight creation-time window, so a
    double-gated action executes at most once — the second approval closes its record
    without re-executing. Corrected the wp-admin docblock/notice that wrongly claimed the
    companion approval never executes. Regression test (hold-dedup-regression-demo.php,
    D1–D8) added.
  • n8n demo 3 (approval loop). Resolves holds with a human principal (api-dev's
    default resolution policy is human-only) with an id distinct from the actor (avoids
    actor_is_approver), and regenerates meta.nonce on resubmit (core rejects a reused
    nonce as a replay) — so the decide → hold → resolve → resubmit → allow loop runs
    end-to-end out of the box in a real n8n.

Artifacts in this release

  • reeflex-gate-wordpress-standard.zip — WordPress reference adapter, standard-plugin
    form (reeflex-gate 0.1.5, carries the dedup fix).
  • reeflex-gate-wordpress-mu.zip — same adapter, mu-plugin form.
  • reeflex_claude-0.1.6-py3-none-any.whl / reeflex_claude-0.1.6.tar.gz — the Claude
    Code hook adapter (PyPI).
  • reeflex_holds-0.1.0-py3-none-any.whl / reeflex_holds-0.1.0.tar.gz — the holds MCP
    server (PyPI).
  • n8n-nodes-reeflex-0.1.0.tgz — the n8n community node (npm). Ships dist/ only; the
    five demo workflows travel with the GitHub repo, not the npm tarball.
  • reeflex-verify.zip / reeflex-test-abilities.zip — conformance/verify tooling,
    unchanged since v0.1.5.

Scope

Adapters and surfaces only. reeflex-core and the /v1/decide decision path are
unchanged; zero LLM in the decision path is unchanged. The agent principal type on
the holds resolution surface is AIL (an operator-designated AI judge, audited) — the
first decision (OPA/Rego) remains fully deterministic.