Skip to content

Commit a545efa

Browse files
authored
Consolidate plugin dependency maintenance and update Pydantic and UUID (#184)
Signed-off-by: Luca <luca.carlig@ibm.com>
1 parent 213611a commit a545efa

23 files changed

Lines changed: 198 additions & 1649 deletions

File tree

‎.github/dependabot.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ updates:
1919
- rust
2020
open-pull-requests-limit: 5
2121

22-
# Python dependencies — root uv workspace (all 7 plugins via pyproject.toml)
22+
# Python dependencies — root uv workspace (all plugins via pyproject.toml)
2323
- package-ecosystem: uv
2424
directory: /
2525
schedule:

‎.github/workflows/ci-plugin-catalog.yaml‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ on:
88
- "tools/plugin_catalog.py"
99
- "tools/validate_ci_selection.py"
1010
- "pyproject.toml"
11+
- "uv.lock"
12+
- "plugins/rust/python-package/*/pyproject.toml"
13+
- "plugins/rust/python-package/*/uv.lock"
1114
- "plugins/python/**"
1215
- "plugins/rust/python-package/*/Cargo.toml"
1316
- "plugins/rust/python-package/*/plugin-manifest.yaml"
@@ -23,6 +26,9 @@ on:
2326
- "tools/plugin_catalog.py"
2427
- "tools/validate_ci_selection.py"
2528
- "pyproject.toml"
29+
- "uv.lock"
30+
- "plugins/rust/python-package/*/pyproject.toml"
31+
- "plugins/rust/python-package/*/uv.lock"
2632
- "plugins/python/**"
2733
- "plugins/rust/python-package/*/Cargo.toml"
2834
- "plugins/rust/python-package/*/plugin-manifest.yaml"

‎.github/workflows/plugin-maintenance.yaml‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ jobs:
6464
set -euo pipefail
6565
rust_plugins=(
6666
encoded_exfil_detection
67+
output_length_guard
6768
pii_filter
6869
rate_limiter
6970
retry_with_backoff
@@ -108,7 +109,7 @@ jobs:
108109
- `uv lock --upgrade` applied to root Python workspace (`uv.lock`)
109110
110111
### Validation performed in CI
111-
- All 8 managed plugins built and tested on `ubuntu-latest`
112+
- All 9 managed plugins built and tested on `ubuntu-latest`
112113
- `cargo deny check advisories` passed — no new CVEs
113114
114115
### Reviewer checklist

‎Cargo.lock‎

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎MAINTENANCE.md‎

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ cargo update
6464
uv lock --upgrade
6565
cargo deny --all-features check advisories --config deny.toml
6666
# Run tests for all plugins through dual-root routing:
67-
for plugin in encoded_exfil_detection pii_filter rate_limiter retry_with_backoff secrets_detection sql_sanitizer url_reputation ica_metering_exporter; do
67+
for plugin in encoded_exfil_detection output_length_guard pii_filter rate_limiter retry_with_backoff secrets_detection sql_sanitizer url_reputation ica_metering_exporter; do
6868
make plugin-test PLUGIN="$plugin"
6969
done
7070
```
@@ -80,7 +80,7 @@ Records known constraints between plugin dependencies and the gateway (`cpex`/`m
8080
| Plugin | Constrained dependency | Pinned range | Gateway version | Notes | Last reviewed |
8181
|---|---|---|---|---|---|
8282
| all | `cpex` | `>=0.1.0,<0.2` | gateway 0.1.x | ABI boundary — major bump requires gateway coordination | 2026-07 |
83-
| all | `pydantic` | `>=2.13.4,<3` | gateway 0.1.x | Pydantic v3 not yet validated against gateway models | 2026-07 |
83+
| all | `pydantic` | `>=2.13.5,<3` | gateway 0.1.x | Pydantic v3 not yet validated against gateway models | 2026-07 |
8484
| all | `maturin` | `>=1.13.3,<2.0` | build toolchain | Major maturin bumps may change wheel ABI tagging | 2026-07 |
8585
| all | `redis` | `>=7.4.0` | gateway 0.1.x | Lower bound — no upper constraint yet | 2026-07 |
8686
| `ica_metering_exporter` | `httpx` | `>=0.27,<1` | gateway 0.1.x | HTTP client is resolved in the root uv workspace; validate transport behavior when bumping | 2026-08 |
@@ -108,3 +108,17 @@ Dependabot opens individual PRs weekly for new package releases. Triage criteria
108108
- **Minor** (`x.Y.z`): review changelog; merge if no breaking API changes and CI passes
109109
- **Major** (`X.y.z`): evaluate manually; update the compat table; coordinate with gateway team if the dep is in `constraint-dependencies`
110110
- **RUSTSEC advisory**: treat as P1 — either bump the dep or suppress with a justification in `deny.toml`
111+
112+
### Alerts for removed lockfiles
113+
114+
Every plugin belongs to the root uv workspace and shares the root `uv.lock`.
115+
Do not add plugin-local lockfiles; the catalog tests enforce this invariant.
116+
117+
If Dependabot reports a manifest that no longer exists on `main`, compare the
118+
alert's vulnerable version range with the active root lockfile before triaging it.
119+
Use **Alert settings → Refresh Dependabot alerts** when that action is available
120+
to rebuild GitHub's dependency graph. If the action is unavailable, ask a repository
121+
security administrator to refresh it. A verified stale alert can be dismissed as
122+
**An inaccurate or incorrect alert**, recording the removed manifest, deletion
123+
commit, inspected `main` commit, and patched version in the dismissal comment.
124+
Do not suppress the advisory or disable Dependabot to hide stale entries.

‎plugins/rust/python-package/encoded_exfil_detection/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "encoded_exfil_detection"
3-
version = "0.3.8"
3+
version = "0.3.9"
44
edition.workspace = true
55
authors.workspace = true
66
license.workspace = true

‎plugins/rust/python-package/encoded_exfil_detection/cpex_encoded_exfil_detection/plugin-manifest.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
description: "Detect suspicious encoded payload exfiltration patterns in prompts, tool outputs, and resources"
22
author: "ContextForge Contributors"
3-
version: "0.3.8"
3+
version: "0.3.9"
44
kind: "cpex_encoded_exfil_detection.encoded_exfil_detection.EncodedExfilDetectorPlugin"
55
available_hooks:
66
- "prompt_pre_fetch"

‎plugins/rust/python-package/encoded_exfil_detection/pyproject.toml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ requires-python = ">=3.11"
1313
dependencies = [
1414
"cpex>=0.1.3,<0.2",
1515
"mcp<2",
16-
"pydantic>=2.13.4,<3",
16+
"pydantic>=2.13.5,<3",
1717
]
1818
classifiers = [
1919
"Programming Language :: Rust",
@@ -34,7 +34,7 @@ features = ["pyo3/extension-module"]
3434
[dependency-groups]
3535
dev = [
3636
"maturin>=1.13.3",
37-
"pydantic>=2.13.4",
37+
"pydantic>=2.13.5",
3838
"pytest>=9.1.1",
3939
"pytest-asyncio>=1.3.0",
4040
]

‎plugins/rust/python-package/output_length_guard/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "output_length_guard"
3-
version = "0.1.0"
3+
version = "0.1.1"
44
edition.workspace = true
55
authors.workspace = true
66
license.workspace = true

‎plugins/rust/python-package/output_length_guard/cpex_output_length_guard/plugin-manifest.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
description: "Rust-backed output length guard for tool outputs — truncates or blocks responses that exceed configurable character or token limits"
22
author: "ContextForge Contributors"
3-
version: "0.1.0"
3+
version: "0.1.1"
44
kind: "cpex_output_length_guard.output_length_guard.OutputLengthGuardPlugin"
55
available_hooks:
66
- "tool_post_invoke"

0 commit comments

Comments
 (0)