Uh oh!
There was an error while loading. Please reload this page.
Release 0.5.1 to main - #71
Conversation
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Commits](actions/checkout@v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
OpenAI Agents, LangChain, Google ADK, smolagents, DSPy, Strands, Letta. Framework-free cores + lazy native wiring, 62-angle matrix, per-framework live CI legs.
Three more agent-framework adapters (duck-typed cores + lazy native wiring), 62->72 security-matrix angles, per-framework live CI legs, guides, demos.
Updates the requirements on [transformers](https://github.com/huggingface/transformers), [gradio](https://github.com/gradio-app/gradio) and [unplug-ai](https://github.com/UnplugAI/Unplug) to permit the latest version. Updates `transformers` to 5.12.1 - [Release notes](https://github.com/huggingface/transformers/releases) - [Commits](huggingface/transformers@v4.44.0...v5.12.1) Updates `gradio` to 6.19.0 - [Release notes](https://github.com/gradio-app/gradio/releases) - [Changelog](https://github.com/gradio-app/gradio/blob/main/CHANGELOG.md) - [Commits](https://github.com/gradio-app/gradio/compare/gradio@5.0.0...gradio@6.19.0) Updates `unplug-ai` from 0.2.3 to 0.4.1 - [Release notes](https://github.com/UnplugAI/Unplug/releases) - [Changelog](https://github.com/UnplugAI/Unplug/blob/dev/CHANGELOG.md) - [Commits](v0.2.3...v0.4.1) --- updated-dependencies: - dependency-name: gradio dependency-version: 6.19.0 dependency-type: direct:production dependency-group: python-deps - dependency-name: transformers dependency-version: 5.12.1 dependency-type: direct:production dependency-group: python-deps - dependency-name: unplug-ai dependency-version: 0.4.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-deps ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.2.0 to 6.3.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](actions/setup-python@a309ff8...ece7cb0) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 6.3.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* harden adapters against structured-payload bypass Address code-review findings on the recent integration + tooling PRs: - hooks: add recursive flatten_text; smolagents/openai-agents/google-adk now scan secrets/injection hidden in nested fields, not just .text/str() - ag2: structure-preserving scan/redaction for multimodal list content (hook receives message content, str or list, not the history list) - google-adk: extract text from function_response parts (no empty-scan bypass) - langchain: prefer structured tool `inputs` over the flattened input_str - llama-index: write redaction back to a wrapper's inner .node, raise if neither - scan_pr: scan whole capped file in one pass (no chunk-boundary split) - ml.validation: resolver returns None on missing manifest so import-time skipif callers can't crash collection on wheel installs - TESTING.md: uv venv --allow-existing so the local command re-runs Adds regression tests for each; ruff + mypy + full suite green. * ag2: scan combined multimodal text to catch split injections Per-block scanning could miss a phrase split across adjacent text blocks that reaches the model as one message. Scan the joined text for the block/allow decision; consolidate redaction into the first text block.
* Improve onboarding and agent-host UX from audit Add GETTING_STARTED and AGENT_ACTIONS docs, expand integrations hub with pick-your-path and REVIEW vs BLOCK guidance, HookDecision review helpers, clearer unplug-audit probe skipping without ML, updated CONTRIBUTING extras table, and scan-action 0.5 pin. * audit: skipped ML probes count as not passed Greptile #60: FP/encoding skips use passed=False so all_passed stays honest; CLI shows [skip] instead of [FAIL] for skipped batteries.
Prefer origin/dev for conflicted paths left by the 0.5.0 rebase onto main.
Greptile SummaryThis PR promotes the 0.5.1 release and updates SDK packaging, docs, public APIs, audits, and integrations.
Confidence Score: 4/5The AG2 structured-content path and ML facade construction path need fixes before merging.
sdk/src/unplug/integrations/ag2.py, sdk/src/unplug/api/ml.py
|
| Filename | Overview |
|---|---|
| sdk/src/unplug/integrations/ag2.py | Adds multimodal and structured content scanning, but misses non-text block strings and drops redaction for structured objects. |
| sdk/src/unplug/api/ml.py | Adds the stable ML facade, but exported model construction can still import torch before load(). |
| sdk/src/unplug/audit/runner.py | Updates probe handling so skipped ML probes are reported separately while keeping wiring checks isolated. |
| sdk/src/unplug/cli/scan_pr.py | Expands agent-file detection, scans whole files up to a cap, and fails closed when the base ref is missing. |
Comments Outside Diff (2)
sdk/src/unplug/integrations/ag2.py, line 1608-1617 (link)When AG2 passes a multimodal content list with only non-text blocks, such as an
image_urlblock containing a user-controlled URL,text_indicesis empty and this branch returns the original content after scanning an empty string. Any instructions or sensitive data carried in those non-text string fields reach the agent without inspection.sdk/src/unplug/integrations/ag2.py, line 1625-1631 (link)Structured Redaction Is Dropped
For non-string, non-list content this path scans
flatten_text(content), but returns the original object unless the scan hard-blocks. If the scan produces redacted text for a secret or payload inside a structured object, the unredacted object is still handed back to AG2.
Reviews (1): Last reviewed commit: "Release 0.5.1: sync main to dev tip" | Re-trigger Greptile
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit c31996c. Configure here.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
chiruu12
commented
Jul 20, 2026
Follow-up fixes merged in #81 → dev ( |

Promote Release 0.5.1 to
main, matching the prior release convention (maintracks the latest release).dev→main(#70) conflicted because the 0.5.0 promote used a rebase merge, leaving duplicate SHAs onmainfor the same integration commits. This PR mergesorigin/devintoorigin/mainwith-X theirsso the tree matchesdevat 87ad25e (Release 0.5.1 / #69).Contents since 0.5.0: Python 3.13
[ml]/[all]install fix, model catalog immutable pins (#68), public API facades (#67), docs/UX (#60), and the 0.5.1 version bump (#69).After merge: tag
v0.5.1onmainto trigger PyPI publish.Note
Medium Risk
Touches agent-security scanning, integration enforcement, and model download pins on a release branch; changes are well-tested but affect how injections and PR agent files are detected in production.
Overview
Promotes
dev→mainas unplug-ai 0.5.1, aligningmainwith the latest release tree for PyPI publish on tag.SDK & security behavior: Adds stable
unplug.api.*facades (policy, privacy, cache, boundaries, encoding, ML, normalization) plus docs and a demo for server/MCP consumers.HookDecision.needs_review/is_blockclarify REVIEW vs BLOCK for hosts; integration adapters now flatten structured payloads (AG2 multimodal, Google ADK tool responses, LangChain structured tool args, LlamaIndex wrapper writeback).unplug-scan-prscans whole agent files (no chunk window bypass), expands in-scope paths (e.g. Copilot /.github/agents/), and fails closed iforigin/<base-ref>is missing.ML & catalog: Widens
transformersto>=4.44,<5.13so[ml]/[all]install on Python 3.13 without buildingtokenizers. Bundled catalog keeps onlytiny, pins a full HF commit SHA underUnplug-AI/, and drops unpublished medium/large tiers.unplug-audit --probesskips FP/encoding when ML is inactive (boundary probes still run).CI & quality: Live integration jobs use
uv pip install -e ".[dev,<extra>]"to mirror per-extra user installs; core CI bumps checkout, documents 80% coverage gate, and scan-action docs default to>=0.5.0,<0.6.Reviewed by Cursor Bugbot for commit c31996c. Bugbot is set up for automated code reviews on this repo. Configure here.