Skip to content

feat(releasekit): graph based licensing#4705

Merged
yesudeep merged 5 commits intomainfrom
yesudeep/fix/kindly-patch
Feb 17, 2026
Merged

feat(releasekit): graph based licensing#4705
yesudeep merged 5 commits intomainfrom
yesudeep/fix/kindly-patch

Conversation

@yesudeep
Copy link
Contributor

@yesudeep yesudeep commented Feb 17, 2026

feat(releasekit): Graph-based license compatibility checking

Summary

Adds a complete license compliance subsystem to ReleaseKit — from SPDX
expression parsing through compatibility graph evaluation to interactive
CLI-driven remediation. This is the foundation for the releasekit licenses
command that checks every dependency's license against the project license
and reports incompatibilities with Rust-style diagnostics.


What's New

SPDX Expression Parser (spdx_expr.py)

Full parser per SPDX Specification 3.0.1 Annex B:

  • Tokenizer + recursive-descent parser producing an AST
  • Supports AND, OR, WITH (exception) operators
  • LicenseRef-* custom identifiers
  • + (or-later) suffix on standard license IDs
  • evaluate(project_license, dep_license, graph) compatibility check

License Data (data/)

File Contents
licenses.toml 167 SPDX licenses with name, category (permissive / weak-copyleft / strong-copyleft / network-copyleft / source-available / proprietary), Google licenseclassifier category, OSI approval status, aliases, patent grant/retaliation flags
license_compatibility.toml 42 directed compatibility rules (edge A → B = code under A can depend on code under B) sourced from GNU, Wikipedia, SPDX spec

License Modules (checks/)

Module Purpose
_license_graph.py Loads TOML data into a directed adjacency-set graph; answers is_compatible(project, dep) queries
_license_tree.py Builds per-package dependency trees with license status (ok, incompatible, denied, no_license, unresolved, exempt); renders Rust-style diagnostics
_license_detect.py Extracts license strings from manifests across 7 ecosystems (Python, JS, Rust, Go, Dart, Java/Maven, Bazel)
_license_fetch.py Async fetcher for canonical LICENSE file text from SPDX GitHub + source repos
_license_lookup.py Async registry lookup (PyPI, npm, crates.io, Maven Central, pub.dev, pkg.go.dev) with disk-backed JSON cache
_license_resolve.py 5-stage fuzzy SPDX resolver: exact → alias → normalized → prefix → Levenshtein
_license_fix.py Interactive fixer for --fix mode: exempt, allow, deny, override, skip — writes to releasekit.toml with comment preservation via tomlkit
_lockfile.py Parses uv.lock to extract transitive dependency graphs

Workspace Backends (backends/workspace/)

New workspace discovery backends for lockfile-based dependency resolution:

Backend Ecosystem
uv.py Python (uv workspace)
pnpm.py JavaScript (pnpm workspace)
cargo.py Rust (Cargo workspace)
go.py Go modules
dart.py Dart/Flutter (pub workspace)
maven.py Java/Kotlin (Maven reactor)
bazel.py Bazel
clojure.py Clojure (Leiningen)

CLI Integration (cli.py)

  • New releasekit licenses subcommand with full argument parser
  • --fix flag triggers interactive license remediation
  • --dry-run previews changes without writing
  • --workspace filters to a specific workspace
  • Collects LicenseTree objects across workspaces, merges, and renders

Config (config.py)

New [license] section in releasekit.toml:

  • project — project SPDX license (e.g. Apache-2.0)
  • allow_licenses — globally allowed SPDX IDs
  • deny_licenses — globally denied SPDX IDs
  • exempt_packages — packages to skip
  • [license.overrides] — manual SPDX overrides per package

Test Coverage

712 tests across 12 test suites:

Test Suite Tests What It Covers
rk_spdx_expr_test.py ~100+ Tokenizer, parser, AST evaluation, edge cases
rk_license_graph_test.py ~150+ Graph loading, compatibility queries, categories
rk_license_tree_test.py ~170+ Tree building, status assignment, diagnostic rendering
rk_license_compat_test.py ~130+ End-to-end compatibility matrix
rk_license_detect_test.py ~80+ Manifest extraction across all ecosystems
rk_license_fetch_test.py ~80+ Async fetch with mocked HTTP
rk_license_lookup_test.py ~70+ Registry lookup with disk cache
rk_license_resolve_test.py ~40+ 5-stage fuzzy resolver
rk_license_fix_test.py 35 Interactive fixer, TOML writing, dry-run
rk_license_advanced_test.py ~50+ Complex SPDX expressions, dual-licensing
rk_license_data_integ_test.py ~30+ Data file integrity, cross-references
rk_lockfile_test.py ~50+ uv.lock parsing, transitive closure

Documentation

  • Compliance guide — new "Interactive License Fix" section with quick start, actions table, example session, resulting config
  • Slides — new "Demo: Interactive License Fix" slide with terminal mockup
  • Roadmap — "AI-Powered License Guidance (Genkit Integration)" section for future ai.generate() + SPDX web lookup
  • Internalslicense-data.md documenting the data model and sources
  • Competitive gap analysis — updated with license checking capabilities
  • GEMINI.md — updated development guidelines

Scripts

  • scripts/verify_license_data.py — validates licenses.toml and license_compatibility.toml cross-references
  • py/bin/check_license_coverage.py — reports license coverage across the workspace
  • py/bin/fix_missing_class_docstrings.py — AST-based fixer for missing class docstrings (D101)

Architecture

spdx_expr.py                    ← SPDX expression parser (AST)
    │
    ▼
checks/_license_graph.py        ← Compatibility graph (167 licenses, 42 rules)
    │
    ├── checks/_license_detect.py   ← Extract license from manifests (7 ecosystems)
    ├── checks/_license_lookup.py   ← Async registry lookup with disk cache
    ├── checks/_license_resolve.py  ← 5-stage fuzzy SPDX resolver
    ├── checks/_license_fetch.py    ← Fetch canonical LICENSE text
    │
    ▼
checks/_license_tree.py         ← Build dependency tree + assign status
    │
    ├── checks/_lockfile.py         ← Parse uv.lock for transitive deps
    │
    ▼
checks/_license_fix.py          ← Interactive fixer (--fix mode)
    │
    ▼
cli.py                          ← `releasekit licenses [--fix] [--dry-run]`

Testing

# Run all license tests (712 tests)
cd py/tools/releasekit
uv run pytest tests/rk_license_*_test.py tests/rk_lockfile_test.py tests/rk_spdx_expr_test.py -v

# Verify data file integrity
uv run python scripts/verify_license_data.py

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @yesudeep, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces core functionality for handling and evaluating software licenses within ReleaseKit by implementing a comprehensive SPDX license expression parser. This foundational component allows the system to understand and process complex license strings, paving the way for advanced license compatibility checks, including those that will leverage a license compatibility graph. Additionally, the documentation slides were updated by removing an outdated comparison table.

Highlights

  • SPDX License Expression Parser: A new module _spdx_expr.py has been added to releasekit.checks that provides a robust parser for SPDX license expressions, conforming to SPDX Specification 3.0.1 Annex B. This parser converts license strings into an Abstract Syntax Tree (AST).
  • License Expression AST: The parser defines distinct AST node types (e.g., LicenseId, LicenseRef, With, And, Or) to represent the structure and logic of complex SPDX license expressions, enabling programmatic evaluation.
  • License Compatibility Evaluation: Functions license_ids and is_compatible are included to extract individual license identifiers from an AST and to evaluate the compatibility of a given license expression against a project's license, laying the groundwork for graph-based license checks.
  • Documentation Update: A 'vs. Alternatives' comparison table has been removed from the index.html slides documentation, streamlining the presentation.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • py/tools/releasekit/docs/docs/slides/index.html
    • Removed a comparison table detailing ReleaseKit's capabilities against alternative release tools.
  • py/tools/releasekit/src/releasekit/checks/_spdx_expr.py
    • Added a new Python module for parsing SPDX license expressions into an Abstract Syntax Tree (AST).
    • Implemented AST node types for LicenseId, LicenseRef, With, And, and Or expressions.
    • Included tokenizer and recursive descent parser logic for SPDX expressions.
    • Provided utility functions to collect license IDs and evaluate license compatibility based on the parsed AST.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@yesudeep yesudeep changed the title feat(releasekit): graph licensing feat(releasekit): graph based licensing Feb 17, 2026
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new SPDX license expression parser, which is a crucial component for license compliance checks. The implementation is robust, well-documented, and follows good practices for parsing, including a clear separation of tokenizing and parsing logic, and immutable AST nodes. I have one suggestion to improve the future compatibility evaluation logic by ensuring the or_later flag is correctly propagated. The removal of the 'vs. Alternatives' section from the presentation slides is a straightforward content update. Overall, this is a high-quality contribution.

@yesudeep yesudeep requested a review from hugoaguirre February 17, 2026 06:00
@yesudeep yesudeep force-pushed the yesudeep/fix/kindly-patch branch from 62cbce5 to a8accd1 Compare February 17, 2026 07:12
@yesudeep yesudeep force-pushed the yesudeep/fix/kindly-patch branch 7 times, most recently from 58236aa to 38907a3 Compare February 17, 2026 12:01
@github-actions github-actions bot added docs Improvements or additions to documentation root labels Feb 17, 2026
@yesudeep yesudeep force-pushed the yesudeep/fix/kindly-patch branch 5 times, most recently from 32f616e to 02e7f4f Compare February 17, 2026 12:28
@yesudeep
Copy link
Contributor Author

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This is an impressive and comprehensive addition for graph-based license management. The new functionality is well-structured across several new modules for detection, resolution, graph management, and fixing, which is great for maintainability. The use of performance optimizations like lru_cache and trigram similarity for fuzzy matching is well-thought-out. The documentation updates are also thorough. I have one high-severity comment regarding the use of regex for parsing XML in maven.py, which could be made more robust.

@yesudeep yesudeep force-pushed the yesudeep/fix/kindly-patch branch from 02e7f4f to 14bcbd3 Compare February 17, 2026 12:45
@yesudeep yesudeep force-pushed the yesudeep/fix/kindly-patch branch 5 times, most recently from 9ddf65a to c8ff5db Compare February 17, 2026 14:13
@yesudeep yesudeep force-pushed the yesudeep/fix/kindly-patch branch from c8ff5db to b968902 Compare February 17, 2026 14:16
…on site

The @patch decorator was targeting 'releasekit.checks._license_fetch.fetch_license_texts'
but _universal.py imports the function into its own namespace via
'from releasekit.checks._license_fetch import fetch_license_texts'.
This means the mock never intercepted the real call. The fix patches
'releasekit.checks._universal.fetch_license_texts' instead.

Only test_fetch_failure was visibly broken because the real fetch
succeeds for MIT — the other tests passed coincidentally.
@yesudeep yesudeep force-pushed the yesudeep/fix/kindly-patch branch 2 times, most recently from 83e7628 to 3ff56d7 Compare February 17, 2026 15:18
@yesudeep
Copy link
Contributor Author

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The pull request introduces a comprehensive graph-based licensing subsystem to ReleaseKit, enabling SPDX expression parsing, compatibility checking, and interactive remediation. The changes include new modules for license detection, fetching, lookup, and resolution, along with new workspace backends for various ecosystems. Documentation and test coverage have been significantly expanded to support these new features. The changes are well-structured and address a critical aspect of software supply chain compliance.

@gemini-code-assist
Copy link
Contributor

Warning

Gemini encountered an error creating the review. You can try again by commenting /gemini review.

…lidation

The CycloneDX 1.5 schema (bom-1.5.schema.json) references spdx.schema.json
via $ref but the file was missing from tests/schemas/, causing
TestCycloneDXSchemaValidation::test_single_package to fail with
'Unresolvable: spdx.schema.json' on CI.

Downloaded from CycloneDX/specification (Apache-2.0 licensed, same as
this project).
@yesudeep yesudeep force-pushed the yesudeep/fix/kindly-patch branch from 3ff56d7 to a8443e7 Compare February 17, 2026 15:25
- Add user-facing messages on EOFError in interactive license fixer
  so the user knows stdin ended and what default action was taken.
- Update copyright year range in fix_missing_class_docstrings.py
  (2025 → 2025-2026).
@yesudeep yesudeep force-pushed the yesudeep/fix/kindly-patch branch 2 times, most recently from d369f89 to 5232e0a Compare February 17, 2026 15:39
@yesudeep yesudeep force-pushed the yesudeep/fix/kindly-patch branch from 5232e0a to 514b219 Compare February 17, 2026 15:48
@yesudeep yesudeep marked this pull request as ready for review February 17, 2026 16:01
@yesudeep yesudeep enabled auto-merge (squash) February 17, 2026 16:02
The _validate_against_schema function in backends/validation/sbom.py
was creating jsonschema validators without a referencing.Registry,
causing 'Unresolvable: spdx.schema.json' on Python 3.13 where the
CycloneDX 1.5 schema's $ref link couldn't resolve.

Changes:
- Add _build_registry_from_dir() to sbom.py (loads all sibling
  .schema.json files into a referencing.Registry)
- Add registry field to CycloneDXSchemaValidator and SPDXSchemaValidator
- from_schema_file() now auto-builds registry from the schema directory
- Update test fixtures to pass registry when constructing validators
- Document WITH exception handling and linking semantics in spdx_expr.py,
  _license_graph.py, and docs/internals/license-data.md
@yesudeep yesudeep force-pushed the yesudeep/fix/kindly-patch branch from 514b219 to 4a1c948 Compare February 17, 2026 16:04
@yesudeep yesudeep disabled auto-merge February 17, 2026 16:04
@yesudeep yesudeep enabled auto-merge (squash) February 17, 2026 16:04
@yesudeep yesudeep merged commit 03cc19b into main Feb 17, 2026
25 checks passed
@yesudeep yesudeep deleted the yesudeep/fix/kindly-patch branch February 17, 2026 16:17
yesudeep added a commit that referenced this pull request Feb 17, 2026
# Release v0.6.0

This release includes **67** package(s).

| Package | Version heading |
|---------|----------------|
| `conform` | 0.2.0 (2026-02-17) |
| `dev-local-vectorstore-hello` | 0.2.0 (2026-02-17) |
| `framework-context-demo` | 0.2.0 (2026-02-17) |
| `framework-custom-evaluators` | 0.1.0 (2026-02-17) |
| `framework-dynamic-tools-demo` | 0.2.0 (2026-02-17) |
| `framework-evaluator-demo` | 0.1.0 (2026-02-17) |
| `framework-format-demo` | 0.2.0 (2026-02-17) |
| `framework-middleware-demo` | 0.2.0 (2026-02-17) |
| `framework-prompt-demo` | 0.1.0 (2026-02-17) |
| `framework-realtime-tracing-demo` | 0.2.0 (2026-02-17) |
| `framework-restaurant-demo` | 0.2.0 (2026-02-17) |
| `framework-tool-interrupts` | 0.2.0 (2026-02-17) |
| `genkit` | 0.6.0 (2026-02-17) |
| `genkit-plugin-amazon-bedrock` | 0.6.0 (2026-02-17) |
| `genkit-plugin-anthropic` | 0.6.0 (2026-02-17) |
| `genkit-plugin-checks` | 0.6.0 (2026-02-17) |
| `genkit-plugin-cloudflare-workers-ai` | 0.6.0 (2026-02-17) |
| `genkit-plugin-cohere` | 0.6.0 (2026-02-17) |
| `genkit-plugin-compat-oai` | 0.6.0 (2026-02-17) |
| `genkit-plugin-deepseek` | 0.6.0 (2026-02-17) |
| `genkit-plugin-dev-local-vectorstore` | 0.6.0 (2026-02-17) |
| `genkit-plugin-evaluators` | 0.6.0 (2026-02-17) |
| `genkit-plugin-fastapi` | 0.6.0 (2026-02-17) |
| `genkit-plugin-firebase` | 0.6.0 (2026-02-17) |
| `genkit-plugin-flask` | 0.6.0 (2026-02-17) |
| `genkit-plugin-google-cloud` | 0.6.0 (2026-02-17) |
| `genkit-plugin-google-genai` | 0.6.0 (2026-02-17) |
| `genkit-plugin-huggingface` | 0.6.0 (2026-02-17) |
| `genkit-plugin-mcp` | 0.6.0 (2026-02-17) |
| `genkit-plugin-microsoft-foundry` | 0.6.0 (2026-02-17) |
| `genkit-plugin-mistral` | 0.6.0 (2026-02-17) |
| `genkit-plugin-observability` | 0.6.0 (2026-02-17) |
| `genkit-plugin-ollama` | 0.6.0 (2026-02-17) |
| `genkit-plugin-vertex-ai` | 0.6.0 (2026-02-17) |
| `genkit-plugin-xai` | 0.6.0 (2026-02-17) |
| `genkit-tools-model-config-test` | 0.2.0 (2026-02-17) |
| `genkit-tools-sample-flows` | 0.1.1 (2026-02-17) |
| `provider-amazon-bedrock-hello` | 0.2.0 (2026-02-17) |
| `provider-anthropic-hello` | 0.2.0 (2026-02-17) |
| `provider-checks-hello` | 0.2.0 (2026-02-17) |
| `provider-cloudflare-workers-ai-hello` | 0.2.0 (2026-02-17) |
| `provider-cohere-hello` | 0.2.0 (2026-02-17) |
| `provider-compat-oai-hello` | 0.2.0 (2026-02-17) |
| `provider-deepseek-hello` | 0.2.0 (2026-02-17) |
| `provider-firestore-retriever` | 0.2.0 (2026-02-17) |
| `provider-google-genai-code-execution` | 0.2.0 (2026-02-17) |
| `provider-google-genai-context-caching` | 0.2.0 (2026-02-17) |
| `provider-google-genai-hello` | 0.2.0 (2026-02-17) |
| `provider-google-genai-media-models-demo` | 0.2.0 (2026-02-17) |
| `provider-google-genai-vertexai-hello` | 0.2.0 (2026-02-17) |
| `provider-google-genai-vertexai-image` | 0.2.0 (2026-02-17) |
| `provider-huggingface-hello` | 0.2.0 (2026-02-17) |
| `provider-microsoft-foundry-hello` | 0.1.0 (2026-02-17) |
| `provider-mistral-hello` | 0.2.0 (2026-02-17) |
| `provider-observability-hello` | 0.2.0 (2026-02-17) |
| `provider-ollama-hello` | 0.2.0 (2026-02-17) |
| `provider-vertex-ai-model-garden` | 0.2.0 (2026-02-17) |
| `provider-vertex-ai-rerank-eval` | 0.2.0 (2026-02-17) |
| `provider-vertex-ai-vector-search-bigquery` | 0.2.0 (2026-02-17) |
| `provider-vertex-ai-vector-search-firestore` | 0.2.0 (2026-02-17) |
| `provider-xai-hello` | 0.2.0 (2026-02-17) |
| `releasekit` | 0.2.0 (2026-02-17) |
| `web-endpoints-hello` | 0.2.0 (2026-02-17) |
| `web-fastapi-bugbot` | 0.2.0 (2026-02-17) |
| `web-flask-hello` | 0.2.0 (2026-02-17) |
| `web-multi-server` | 0.2.0 (2026-02-17) |
| `web-short-n-long` | 0.2.0 (2026-02-17) |

## Changelogs

<details><summary><b>genkit-tools-sample-flows</b></summary>

## 0.1.1 (2026-02-17)

### Bug Fixes

- **py**: relocate tools of model-config test and sample-flow test (1043245, #4669) — @Elisa Shen

</details>

<details><summary><b>genkit-tools-model-config-test</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: genkit.ai (f2dde35, #4702) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: relocate tools of model-config test and sample-flow test (1043245, #4669) — @Elisa Shen

</details>

<details><summary><b>framework-custom-evaluators</b></summary>

## 0.1.0 (2026-02-17)

### Features

- **releasekit**: supply-chain security, multi-ecosystem orchestration, and CI hardening (29d3ec1, #4682) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: add custom evaluator sample to match JS (3472939, #4670) — @Elisa Shen

</details>

<details><summary><b>genkit-plugin-fastapi</b></summary>

## 0.6.0 (2026-02-17)

### Features

- **py**: Add fastAPI plugin and sample (417158d, #4543) — @huangjeff5

### Bug Fixes

- **py**: address releasekit check warnings for metadata and grouping (4f5a910, #4595) — @Yesudeep Mangalapilly
- **ci**: enable releasekit check in bin/lint and PR workflow (f245d6b, #4590) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-checks-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/checks**: add Google Checks AI Safety plugin (a8bf3c1, #4504) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

</details>

<details><summary><b>web-fastapi-bugbot</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **py**: Add fastAPI plugin and sample (417158d, #4543) — @huangjeff5

### Bug Fixes

- **py**: handle nullable JSON Schema types in Gemini plugin and clean up samples (4daef62, #4629) — @Yesudeep Mangalapilly
- **py**: address releasekit check warnings for metadata and grouping (4f5a910, #4595) — @Yesudeep Mangalapilly
- **ci**: enable releasekit check in bin/lint and PR workflow (f245d6b, #4590) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-cohere-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/plugins**: add Cohere provider plugin (e424dcd, #4518) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: add missing LICENSE file and license metadata to samples (4ddd8a3, #4571) — @Yesudeep Mangalapilly

### Refactoring

- **py/plugins**: extract converters, add tests, community labeling (ebd0a2e, #4520) — @Yesudeep Mangalapilly

</details>

<details><summary><b>web-flask-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>framework-format-demo</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>framework-context-demo</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>framework-middleware-demo</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-firestore-retriever</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: migrate default embedding model to gemini-embedding-001 (051f75f, #4557) — @Elisa Shen

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>framework-dynamic-tools-demo</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-ollama-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-google-genai-code-execution</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-google-genai-context-caching</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-vertex-ai-vector-search-bigquery</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: migrate default embedding model to gemini-embedding-001 (051f75f, #4557) — @Elisa Shen

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>genkit-plugin-checks</b></summary>

## 0.6.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/checks**: add Google Checks AI Safety plugin (a8bf3c1, #4504) — @Yesudeep Mangalapilly

### Bug Fixes

- **releasekit**: replace literal null byte with git %x00 escape in changelog format (4866724, #4661) — @Yesudeep Mangalapilly
- issues reported by releasekit (fba9ed1, #4646) — @Yesudeep Mangalapilly
- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-microsoft-foundry-hello</b></summary>

## 0.1.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-vertex-ai-vector-search-firestore</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: migrate default embedding model to gemini-embedding-001 (051f75f, #4557) — @Elisa Shen

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-vertex-ai-rerank-eval</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: handle nullable JSON Schema types in Gemini plugin and clean up samples (4daef62, #4629) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>framework-realtime-tracing-demo</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: handle nullable JSON Schema types in Gemini plugin and clean up samples (4daef62, #4629) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>genkit-plugin-evaluators</b></summary>

## 0.6.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: correct evaluator scoring bug (40bbdbc, #4573) — @Elisa Shen
- **py/plugins**: fix wheel build duplicate files in PEP 420 namespace packages (0c396b6, #4441) — @Yesudeep Mangalapilly

### Refactoring

- **py**: rename aws-bedrock plugin to amazon-bedrock (8acd6b0, #4448) — @Yesudeep Mangalapilly

</details>

<details><summary><b>genkit-plugin-mcp</b></summary>

## 0.6.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py/plugins**: move in-function import to top level in google-genai (7235768, #4461) — @Yesudeep Mangalapilly
- **py/plugins**: fix wheel build duplicate files in PEP 420 namespace packages (0c396b6, #4441) — @Yesudeep Mangalapilly

### Refactoring

- **py**: rename aws-bedrock plugin to amazon-bedrock (8acd6b0, #4448) — @Yesudeep Mangalapilly

</details>

<details><summary><b>web-short-n-long</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: fix broken flows in shot-n-long and combat-oai (9bdf5fd, #4610) — @Elisa Shen
- **py**: migrate default embedding model to gemini-embedding-001 (051f75f, #4557) — @Elisa Shen

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-observability-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: genkit.ai (f2dde35, #4702) — @Yesudeep Mangalapilly
- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>framework-prompt-demo</b></summary>

## 0.1.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: add custom evaluator sample to match JS (3472939, #4670) — @Elisa Shen

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>genkit-plugin-flask</b></summary>

## 0.6.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py/plugins/flask**: remove self-referencing cyclical dependency using releasekit (edaf88c, #4561) — @Yesudeep Mangalapilly
- **py/plugins**: fix wheel build duplicate files in PEP 420 namespace packages (0c396b6, #4441) — @Yesudeep Mangalapilly

### Refactoring

- **py**: rename aws-bedrock plugin to amazon-bedrock (8acd6b0, #4448) — @Yesudeep Mangalapilly

</details>

<details><summary><b>dev-local-vectorstore-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: migrate default embedding model to gemini-embedding-001 (051f75f, #4557) — @Elisa Shen

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>framework-tool-interrupts</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-deepseek-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: add missing LICENSE file and license metadata to samples (4ddd8a3, #4571) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-google-genai-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-cloudflare-workers-ai-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: add missing LICENSE file and license metadata to samples (4ddd8a3, #4571) — @Yesudeep Mangalapilly
- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-vertex-ai-model-garden</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-google-genai-media-models-demo</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: add missing LICENSE file and license metadata to samples (4ddd8a3, #4571) — @Yesudeep Mangalapilly
- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-compat-oai-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: fix structlog config blowaway, DeepSeek reasoning, and double JSON encoding (ea0223b, #4625) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-amazon-bedrock-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/plugins**: add Cohere provider plugin (e424dcd, #4518) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: add missing LICENSE file and license metadata to samples (4ddd8a3, #4571) — @Yesudeep Mangalapilly
- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-mistral-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/plugins**: add Cohere provider plugin (e424dcd, #4518) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: add missing LICENSE file and license metadata to samples (4ddd8a3, #4571) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>web-multi-server</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: fix living log and test flows in sample-flow-test tool (a9b9132, #4545) — @Elisa Shen
- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>framework-evaluator-demo</b></summary>

## 0.1.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: add missing LICENSE file and license metadata to samples (4ddd8a3, #4571) — @Yesudeep Mangalapilly
- **py**: migrate default embedding model to gemini-embedding-001 (051f75f, #4557) — @Elisa Shen
- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

</details>

<details><summary><b>genkit-plugin-google-cloud</b></summary>

## 0.6.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- Fixed firebase telemetry , refactored telemetry implementation fixed failing tests (05c1b55, #4530) — @Niraj Nepal
- **py**: fix structlog config blowaway, DeepSeek reasoning, and double JSON encoding (ea0223b, #4625) — @Yesudeep Mangalapilly
- **py/plugins**: fix wheel build duplicate files in PEP 420 namespace packages (0c396b6, #4441) — @Yesudeep Mangalapilly

### Refactoring

- **py**: rename aws-bedrock plugin to amazon-bedrock (8acd6b0, #4448) — @Yesudeep Mangalapilly

</details>

<details><summary><b>framework-restaurant-demo</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: fix living log and test flows in sample-flow-test tool (a9b9132, #4545) — @Elisa Shen
- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-anthropic-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: add missing LICENSE file and license metadata to samples (4ddd8a3, #4571) — @Yesudeep Mangalapilly
- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-google-genai-vertexai-hello</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **py**: migrate default embedding model to gemini-embedding-001 (051f75f, #4557) — @Elisa Shen
- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>

<details><summary><b>provider-google-genai-vertexai-image</b></summary>

## 0.2.0 (2026-02-17)

### Features

- **releasekit**: add Forge protocol extensions, transitive propagation, and multi-backend conformance (d6dbb44, #4577) — @Yesudeep Mangalapilly
- **py/samples**: add web-endpoints-hello — REST + gRPC kitchen-sink sample (8614e5e, #4498) — @Yesudeep Mangalapilly

### Bug Fixes

- **releasekit**: fix git push argument order, boost test coverage to 92%, fix lint errors (59d9dc3, #4667) — @Yesudeep Mangalapilly
- **py**: resolve CI license check failures and lint diagnostics (e8519ef, #4524) — @Yesudeep Mangalapilly

### Refactoring

- **py/samples**: standardize naming taxonomy, consolidate shared logic, and close feature coverage gaps (1996c7c, #4488) — @Yesudeep Mangalapilly

### Documentation

- **py**: update readmes for all samples and plugins (e02ea9f, #4624) — @Yesudeep Mangalapilly

</details>


> **Note:** 22 changelog(s) omitted to stay within the PR body size limit. See individual CHANGELOG.md files for full details.


<!-- releasekit:manifest:start -->
```json
{
  "git_sha": "3fc96674ec066181634177f90e9362858c5e6534",
  "umbrella_tag": "py/v0.6.0",
  "packages": [
    {
      "name": "conform",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "fix(conform,anthropic): native executors, tool schema handling, and CLI consolidation (#4698)",
      "skipped": false,
      "tag": "/conform-v0.2.0"
    },
    {
      "name": "dev-local-vectorstore-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/dev-local-vectorstore-hello-v0.2.0"
    },
    {
      "name": "framework-context-demo",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/framework-context-demo-v0.2.0"
    },
    {
      "name": "framework-custom-evaluators",
      "old_version": "0.0.1",
      "new_version": "0.1.0",
      "bump": "minor",
      "reason": "feat(releasekit): supply-chain security, multi-ecosystem orchestration, and CI hardening (#4682)",
      "skipped": false,
      "tag": "/framework-custom-evaluators-v0.1.0"
    },
    {
      "name": "framework-dynamic-tools-demo",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/framework-dynamic-tools-demo-v0.2.0"
    },
    {
      "name": "framework-evaluator-demo",
      "old_version": "0.0.1",
      "new_version": "0.1.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/framework-evaluator-demo-v0.1.0"
    },
    {
      "name": "framework-format-demo",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/framework-format-demo-v0.2.0"
    },
    {
      "name": "framework-middleware-demo",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/framework-middleware-demo-v0.2.0"
    },
    {
      "name": "framework-prompt-demo",
      "old_version": "0.0.1",
      "new_version": "0.1.0",
      "bump": "minor",
      "reason": "fix(py): add custom evaluator sample to match JS (#4670)",
      "skipped": false,
      "tag": "/framework-prompt-demo-v0.1.0"
    },
    {
      "name": "framework-realtime-tracing-demo",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "fix(py): handle nullable JSON Schema types in Gemini plugin and clean up samples (#4629)",
      "skipped": false,
      "tag": "/framework-realtime-tracing-demo-v0.2.0"
    },
    {
      "name": "framework-restaurant-demo",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/framework-restaurant-demo-v0.2.0"
    },
    {
      "name": "framework-tool-interrupts",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/framework-tool-interrupts-v0.2.0"
    },
    {
      "name": "genkit",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix: Path fix for logging (#4642)",
      "skipped": false,
      "tag": "/genkit-v0.6.0"
    },
    {
      "name": "genkit-plugin-amazon-bedrock",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)",
      "skipped": false,
      "tag": "/genkit-plugin-amazon-bedrock-v0.6.0"
    },
    {
      "name": "genkit-plugin-anthropic",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)",
      "skipped": false,
      "tag": "/genkit-plugin-anthropic-v0.6.0"
    },
    {
      "name": "genkit-plugin-checks",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)",
      "skipped": false,
      "tag": "/genkit-plugin-checks-v0.6.0"
    },
    {
      "name": "genkit-plugin-cloudflare-workers-ai",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)",
      "skipped": false,
      "tag": "/genkit-plugin-cloudflare-workers-ai-v0.6.0"
    },
    {
      "name": "genkit-plugin-cohere",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)",
      "skipped": false,
      "tag": "/genkit-plugin-cohere-v0.6.0"
    },
    {
      "name": "genkit-plugin-compat-oai",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)",
      "skipped": false,
      "tag": "/genkit-plugin-compat-oai-v0.6.0"
    },
    {
      "name": "genkit-plugin-deepseek",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)",
      "skipped": false,
      "tag": "/genkit-plugin-deepseek-v0.6.0"
    },
    {
      "name": "genkit-plugin-dev-local-vectorstore",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix: issues reported by releasekit (#4646)",
      "skipped": false,
      "tag": "/genkit-plugin-dev-local-vectorstore-v0.6.0"
    },
    {
      "name": "genkit-plugin-evaluators",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/genkit-plugin-evaluators-v0.6.0"
    },
    {
      "name": "genkit-plugin-fastapi",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(py): address releasekit check warnings for metadata and grouping (#4595)",
      "skipped": false,
      "tag": "/genkit-plugin-fastapi-v0.6.0"
    },
    {
      "name": "genkit-plugin-firebase",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "feat(releasekit): graph based licensing (#4705)",
      "skipped": false,
      "tag": "/genkit-plugin-firebase-v0.6.0"
    },
    {
      "name": "genkit-plugin-flask",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/genkit-plugin-flask-v0.6.0"
    },
    {
      "name": "genkit-plugin-google-cloud",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix: Fixed firebase telemetry , refactored telemetry implementation fixed failing tests (#4530)",
      "skipped": false,
      "tag": "/genkit-plugin-google-cloud-v0.6.0"
    },
    {
      "name": "genkit-plugin-google-genai",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(py): update google-genai evaluators and cleanup sample-test (#4648)",
      "skipped": false,
      "tag": "/genkit-plugin-google-genai-v0.6.0"
    },
    {
      "name": "genkit-plugin-huggingface",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)",
      "skipped": false,
      "tag": "/genkit-plugin-huggingface-v0.6.0"
    },
    {
      "name": "genkit-plugin-mcp",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/genkit-plugin-mcp-v0.6.0"
    },
    {
      "name": "genkit-plugin-microsoft-foundry",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(microsoft-foundry): conform tests and sanitize credentials to prevent Unicode encoding errors (#4689)",
      "skipped": false,
      "tag": "/genkit-plugin-microsoft-foundry-v0.6.0"
    },
    {
      "name": "genkit-plugin-mistral",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)",
      "skipped": false,
      "tag": "/genkit-plugin-mistral-v0.6.0"
    },
    {
      "name": "genkit-plugin-observability",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)",
      "skipped": false,
      "tag": "/genkit-plugin-observability-v0.6.0"
    },
    {
      "name": "genkit-plugin-ollama",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)",
      "skipped": false,
      "tag": "/genkit-plugin-ollama-v0.6.0"
    },
    {
      "name": "genkit-plugin-vertex-ai",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(py/vertex-ai): async client creation with threaded credential refresh (#4608)",
      "skipped": false,
      "tag": "/genkit-plugin-vertex-ai-v0.6.0"
    },
    {
      "name": "genkit-plugin-xai",
      "old_version": "0.5.0",
      "new_version": "0.6.0",
      "bump": "minor",
      "reason": "fix(conform,anthropic): native executors, tool schema handling, and CLI consolidation (#4698)",
      "skipped": false,
      "tag": "/genkit-plugin-xai-v0.6.0"
    },
    {
      "name": "genkit-tools-model-config-test",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): genkit.ai (#4702)",
      "skipped": false,
      "tag": "/genkit-tools-model-config-test-v0.2.0"
    },
    {
      "name": "genkit-tools-sample-flows",
      "old_version": "0.1.0",
      "new_version": "0.1.1",
      "bump": "patch",
      "reason": "fix(py): relocate tools of model-config test and sample-flow test (#4669)",
      "skipped": false,
      "tag": "/genkit-tools-sample-flows-v0.1.1"
    },
    {
      "name": "provider-amazon-bedrock-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-amazon-bedrock-hello-v0.2.0"
    },
    {
      "name": "provider-anthropic-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-anthropic-hello-v0.2.0"
    },
    {
      "name": "provider-checks-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-checks-hello-v0.2.0"
    },
    {
      "name": "provider-cloudflare-workers-ai-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-cloudflare-workers-ai-hello-v0.2.0"
    },
    {
      "name": "provider-cohere-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-cohere-hello-v0.2.0"
    },
    {
      "name": "provider-compat-oai-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "fix(py): fix structlog config blowaway, DeepSeek reasoning, and double JSON encoding (#4625)",
      "skipped": false,
      "tag": "/provider-compat-oai-hello-v0.2.0"
    },
    {
      "name": "provider-deepseek-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-deepseek-hello-v0.2.0"
    },
    {
      "name": "provider-firestore-retriever",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-firestore-retriever-v0.2.0"
    },
    {
      "name": "provider-google-genai-code-execution",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-google-genai-code-execution-v0.2.0"
    },
    {
      "name": "provider-google-genai-context-caching",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-google-genai-context-caching-v0.2.0"
    },
    {
      "name": "provider-google-genai-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-google-genai-hello-v0.2.0"
    },
    {
      "name": "provider-google-genai-media-models-demo",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-google-genai-media-models-demo-v0.2.0"
    },
    {
      "name": "provider-google-genai-vertexai-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-google-genai-vertexai-hello-v0.2.0"
    },
    {
      "name": "provider-google-genai-vertexai-image",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "fix(releasekit): fix git push argument order, boost test coverage to 92%, fix lint errors (#4667)",
      "skipped": false,
      "tag": "/provider-google-genai-vertexai-image-v0.2.0"
    },
    {
      "name": "provider-huggingface-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-huggingface-hello-v0.2.0"
    },
    {
      "name": "provider-microsoft-foundry-hello",
      "old_version": "0.0.0",
      "new_version": "0.1.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-microsoft-foundry-hello-v0.1.0"
    },
    {
      "name": "provider-mistral-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-mistral-hello-v0.2.0"
    },
    {
      "name": "provider-observability-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): genkit.ai (#4702)",
      "skipped": false,
      "tag": "/provider-observability-hello-v0.2.0"
    },
    {
      "name": "provider-ollama-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-ollama-hello-v0.2.0"
    },
    {
      "name": "provider-vertex-ai-model-garden",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-vertex-ai-model-garden-v0.2.0"
    },
    {
      "name": "provider-vertex-ai-rerank-eval",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "fix(py): handle nullable JSON Schema types in Gemini plugin and clean up samples (#4629)",
      "skipped": false,
      "tag": "/provider-vertex-ai-rerank-eval-v0.2.0"
    },
    {
      "name": "provider-vertex-ai-vector-search-bigquery",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-vertex-ai-vector-search-bigquery-v0.2.0"
    },
    {
      "name": "provider-vertex-ai-vector-search-firestore",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/provider-vertex-ai-vector-search-firestore-v0.2.0"
    },
    {
      "name": "provider-xai-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add default branch detection, and packaging (#4650)",
      "skipped": false,
      "tag": "/provider-xai-hello-v0.2.0"
    },
    {
      "name": "releasekit",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "fix(releasekit): skip git hooks in release commits and pushes (#4723)",
      "skipped": false,
      "tag": "/releasekit-v0.2.0"
    },
    {
      "name": "web-endpoints-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): supply-chain security, multi-ecosystem orchestration, and CI hardening (#4682)",
      "skipped": false,
      "tag": "/web-endpoints-hello-v0.2.0"
    },
    {
      "name": "web-fastapi-bugbot",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "fix(py): handle nullable JSON Schema types in Gemini plugin and clean up samples (#4629)",
      "skipped": false,
      "tag": "/web-fastapi-bugbot-v0.2.0"
    },
    {
      "name": "web-flask-hello",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/web-flask-hello-v0.2.0"
    },
    {
      "name": "web-multi-server",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)",
      "skipped": false,
      "tag": "/web-multi-server-v0.2.0"
    },
    {
      "name": "web-short-n-long",
      "old_version": "0.1.0",
      "new_version": "0.2.0",
      "bump": "minor",
      "reason": "fix(py): fix broken flows in shot-n-long and combat-oai (#4610)",
      "skipped": false,
      "tag": "/web-short-n-long-v0.2.0"
    }
  ],
  "created_at": "2026-02-17T23:04:44.937419+00:00"
}

```
<!-- releasekit:manifest:end -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

config docs Improvements or additions to documentation fix python Python root

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants