# @pleach/recipes changelog (/docs/changelog/recipes)



This page collects the **site-content changelog entries** that
materially touched the [`@pleach/recipes`](/docs/recipes-pleach-recipes)
docs surface, the [Recipes](/docs/recipes) cookbook page, or any
of the per-recipe deep-dive pages under
[`/docs/recipes/`](/docs/recipes/simple-chatbot). It is not the
runtime changelog — the canonical record of `@pleach/recipes`
runtime behavior lives in the upstream package
[`CHANGELOG.md`](https://github.com/pleachhq/getpleach) and on
[npmjs.org/package/@pleach/recipes](https://www.npmjs.com/package/@pleach/recipes).

See the combined site changelog at
[`/docs/changelog/combined`](/docs/changelog/combined) for the
chronological unified view across every SKU.

## Unreleased [#unreleased]

### Changed [#changed]

* **Internal persona codes removed from the recipe and use-case
  pages.** The private planning codes (`P0`–`P18`, `P-RAG`, `P-Eval`,
  `P-Code`) and references to a private "persona doc" leaked into the
  shipped docs. Each recipe page's `Persona fit:` line is now `Best
  fit:` with the plain audience descriptor kept; the `persona:`
  frontmatter field is gone. Audience meaning is unchanged — only the
  internal codes were removed.

### Fixed [#fixed]

* **Air-gapped empty-allowlist behavior corrected on
  [Government](/docs/use-cases/government) and
  [Air-gapped architecture](/docs/use-cases/government/air-gapped-architecture).**
  Both pages claimed the `governmentAgent` recipe validates at
  construction and throws `PersonaFactoryNotYetImplementedError` (with an
  internal `personaId` field). That class is real but is the
  unimplemented-stub error, not an allowlist guard. The real enforcement
  is in `@pleach/core`: an empty allowlist fails closed at the first
  provider-URL resolution via `AirGappedHostRejectedError`. Reframed to
  that behavior; dropped the construction-time claim and the `personaId`
  field.

### Added [#added]

* **[Agent instrumentation recipe](/docs/recipes/agent-instrumentation)
  added** for the do-it-yourself instrumentation path — bare
  `runtime.events.on(kind, handler)` lifecycle subscription plus the
  `observeSink({ destinations })` bridge from `@pleach/observe`. It
  sits alongside [observable-chatbot](/docs/recipes/observable-chatbot)
  (recipe-wrapper path) and
  [BYOK observability](/docs/recipes/byok-observability) (no-`@pleach/core`
  brownfield path). `observable-chatbot` gained a "Live lifecycle
  events" section linking to it. See the
  [combined view](/docs/changelog/combined) for the full entry.

### Fixed [#fixed-1]

* **Schema `codeRepository` + `sameAs` for
  [`@pleach/recipes`](/docs/recipes) corrected** in the site's
  Organization + SoftwareApplication JSON-LD `@graph` (inlined in
  `<head>` on every page). Both fields now point at
  `https://github.com/pleachhq/recipes` (was
  `https://github.com/pleachhq`, a
  leftover from when the SKU schemas were drafted against an
  upstream monorepo). Load-bearing because `sameAs` is the field
  AI search engines use for entity reconciliation across the npm
  ↔ GitHub ↔ docs boundary. See the
  [combined view](/docs/changelog/combined) for the full
  cross-SKU pack.

### Added [#added-1]

* **Rank-2 per-recipe deep-dive pages** — four additional pages
  under [`/docs/recipes/`](/docs/recipes/simple-chatbot)
  covering the recipes excluded from the prior six because their
  peer SKUs were outside the first-publish wave:
  [`observableChatbot`](/docs/recipes/observable-chatbot)
  (composes `@pleach/observe`),
  [`instrumentedCodingAgent`](/docs/recipes/instrumented-coding-agent)
  (composes `@pleach/coding-agent` + `@pleach/sandbox` +
  `@pleach/observe`),
  [`enterpriseAgent`](/docs/recipes/enterprise-agent) (composes
  `@pleach/compliance` + `@pleach/observe`, surfaces the
  procurement-visible `ENTERPRISE_PERMITTED_FAMILIES_TAG`
  envelope), and [`evalLab`](/docs/recipes/eval-lab) (composes
  `@pleach/eval` + `@pleach/replay` via DI-callback factories).
  Each page mirrors the prior six-page convention — best fit,
  quickstart, runtime composition, TypeScript config interface,
  common gotchas, cross-links.
* **Per-recipe deep-dive pages under
  [`/docs/recipes/`](/docs/recipes/simple-chatbot)** — six new
  pages covering the first-publish wave (`@pleach/core`,
  `@pleach/tools`, `@pleach/compliance`, `@pleach/gateway`) and
  the brownfield observability SDK:
  [`simpleChatbot`](/docs/recipes/simple-chatbot),
  [`ragChatbot`](/docs/recipes/rag-chatbot),
  [`compliantChatbot`](/docs/recipes/compliant-chatbot),
  [`verticalAgent`](/docs/recipes/vertical-agent),
  [`subagentSwarm`](/docs/recipes/subagent-swarm), and
  [`BYOK observability`](/docs/recipes/byok-observability).
  Each carries a quickstart, the runtime composition the recipe
  wires, a TypeScript config interface, common gotchas, and
  cross-links.

### Changed [#changed-1]

* **[`/docs/recipes`](/docs/recipes) jump-link table** — 10-row
  index inserted after the lead so a reader scanning for one
  recipe doesn't sift through \~1,000 lines. Each row names the
  recipe's central primitive
  (`@pleach/react` + `createPleachRoute`,
  `ProviderDecisionLedger`, etc.) in 3-8 words.
* **[`/docs/recipes`](/docs/recipes) lead** — count flipped
  `Nine` → `Ten` and the inline name list extended to include
  the regulated-host end-to-end recipe.

## 2026-06-08 — page-level restructuring [#2026-06-08--page-level-restructuring]

### Added [#added-2]

* **[Platform & operations recipes](/docs/platform-recipes)** —
  extracts four platform-team recipes from
  [Recipes](/docs/recipes) (long-running async jobs, multi-step
  [interrupts](/docs/interrupts), per-call cost reporter,
  OpenTelemetry wiring) into a dedicated page under the
  Operations sidebar group. Lets a consumer reader on
  [`/docs/recipes`](/docs/recipes) skip patterns a platform team
  owns; lets a platform reader land directly on the four ops
  recipes without scrolling past chat/storage/BYOK.

### Changed [#changed-2]

* **Sidebar reorder in the Start group:**
  [Getting started](/docs/getting-started) →
  [Agent shapes](/docs/agent-shapes) →
  [Recipes](/docs/recipes) →
  [Reference apps](/docs/reference-apps) →
  [Comparison](/docs/comparison).
* **[Recipes](/docs/recipes) lead rewritten** to reflect the
  consumer-facing split (chat, tools, storage, BYOK, moderation,
  multi-tenant, compliance, projections, hash chain) and to
  point at [Platform & operations recipes](/docs/platform-recipes)
  for the platform-team patterns. Recipes 10–13 (multi-tenant,
  compliance, projection, hash-chain) renumbered to 6–9; anchor
  URLs for those four sections shift accordingly.
