Skip to content

feat: add nobulex — Ed25519 receipt layer for Dify agents (EU AI Act Article 12)#2500

Open
arian-gogani wants to merge 4 commits into
langgenius:mainfrom
arian-gogani:main
Open

feat: add nobulex — Ed25519 receipt layer for Dify agents (EU AI Act Article 12)#2500
arian-gogani wants to merge 4 commits into
langgenius:mainfrom
arian-gogani:main

Conversation

@arian-gogani

Copy link
Copy Markdown

1. Metadata

2. Submission Type

  • New plugin submission

3. Description

Nobulex adds a cryptographic receipt layer to any Dify agent workflow. Every tool call gets an Ed25519-signed, JCS-canonical receipt, hash-chained to the previous one. Change any byte and verification fails at that point. An auditor verifies the complete history offline with only the agent's public key — no vendor dependency.

Four tools:

  • sign_receipt — sign a receipt for one tool call (action_type + scope + optional policy_version)
  • verify_receipt — verify a receipt's signature and chain integrity offline
  • export_article12 — export a regulator-facing EU AI Act Article 12 evidence package
  • get_trust_score — get the agent's Trust Capital score (0-100) based on verified receipt history

EU AI Act Article 12 enforcement begins August 2, 2026. Dify enterprise users deploying agents in regulated industries (finance, healthcare, legal) need tamper-evident per-action evidence — not just platform logs. This plugin produces independently verifiable receipts in a standard format.

Built on pip install nobulex (PyPI, cross-validated against 4 published bilateral receipt test vectors). Sections 8-11 of the OWASP AML and Sanctions Compliance for AI Agent Payments cheat sheet (PR #2210, merged June 2026) include this receipt format's JCS canonicalization rationale and EU AI Act compliance mapping.

4. Checklist

  • I have read and followed the Publish to Dify Marketplace guidelines
  • I have read and comply with the Plugin Developer Agreement
  • I confirm my plugin works properly on both Dify Community Edition and Cloud Version
  • I confirm my plugin has been thoroughly tested for completeness and functionality
  • My plugin brings new value to Dify

5. Documentation Checklist

  • Step-by-step setup instructions
  • Detailed usage instructions
  • All required APIs and credentials are clearly listed
  • Connection requirements and configuration details
  • Link to the repository for the plugin source code

6. Privacy Protection Information

Data Collection: The plugin does not collect any user personal data. All cryptographic operations run locally in the Dify environment.

  • I confirm that I have prepared and included a privacy policy in my plugin package based on the Plugin Privacy Protection Guidelines

@crazywoola crazywoola left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail Required action
Icon validation ❌ Fail icon file not found: _assets/_assets/icon.svg Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.9.0, but it was not found. Use dify_plugin >= 0.9.0 in the packaged plugin environment.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-xqnxrfc8/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-xqnxrfc8/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-xqnxrfc8/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-xqnxrfc8/toolkit/uploader/upload-package.py -d /var/folders/vc/vfsgl8611qn508whms… Fix the plugin so upload-package.py --test passes.

Full Check Results

Check Status Detail Required action
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=2002, ignored_zh=0, allowed_zh<=0) None.
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. None.
Manifest author ✅ Pass author is valid. None.
Icon validation ❌ Fail icon file not found: _assets/_assets/icon.svg Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
Version check ✅ Pass version 0.0.1 is available. None.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=1799, allowed_zh<=0) None.
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty. None.
Dependency install ✅ Pass requirements installed successfully. None.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.9.0, but it was not found. Use dify_plugin >= 0.9.0 in the packaged plugin environment.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-xqnxrfc8/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-xqnxrfc8/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-xqnxrfc8/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-xqnxrfc8/toolkit/uploader/upload-package.py -d /var/folders/vc/vfsgl8611qn508whms… Fix the plugin so upload-package.py --test passes.

Next steps

  • Icon validation: Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
  • dify_plugin version: Use dify_plugin >= 0.9.0 in the packaged plugin environment.
  • Install test: Fix the plugin so test-plugin-install.py passes.
  • Packaging test: Fix the plugin so upload-package.py --test passes.

Please address these issues and push an update.

@crazywoola crazywoola left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail Required action
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-0xyq61_2/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-0xyq61_2/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.

Full Check Results

Check Status Detail Required action
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=2002, ignored_zh=0, allowed_zh<=0) None.
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. None.
Manifest author ✅ Pass author is valid. None.
Icon validation ✅ Pass icon exists: _assets/icon.svg None.
Version check ✅ Pass version 0.0.1 is available. None.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=1799, allowed_zh<=0) None.
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty. None.
Dependency install ✅ Pass requirements installed successfully. None.
dify_plugin version ✅ Pass dify_plugin version 0.9.0 satisfies >= 0.9.0. None.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-0xyq61_2/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-0xyq61_2/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ✅ Pass packaging check passed. None.

Next steps

  • Install test: Fix the plugin so test-plugin-install.py passes.

Please address these issues and push an update.

@crazywoola crazywoola left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail Required action
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-ej8hnrjw/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-ej8hnrjw/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.

Full Check Results

Check Status Detail Required action
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=2002, ignored_zh=0, allowed_zh<=0) None.
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. None.
Manifest author ✅ Pass author is valid. None.
Icon validation ✅ Pass icon exists: _assets/icon.svg None.
Version check ✅ Pass version 0.0.1 is available. None.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=1799, allowed_zh<=0) None.
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty. None.
Dependency install ✅ Pass requirements installed successfully. None.
dify_plugin version ✅ Pass dify_plugin version 0.9.0 satisfies >= 0.9.0. None.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-ej8hnrjw/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-ej8hnrjw/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ✅ Pass packaging check passed. None.

Next steps

  • Install test: Fix the plugin so test-plugin-install.py passes.

Please address these issues and push an update.

Split the four tools into one module per file, add the NobulexProvider
class, and wire extra.python.source into the provider + all four tool
manifests. Simplify main.py to manifest-driven discovery. Fixes the
pre-check ToolConfigurationExtra validation failure. Validated locally
against dify_plugin + nobulex 0.1.0 (manifest loads and all tools run).

@crazywoola crazywoola left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail Required action
Icon validation ❌ Fail icon file not found: _assets/_assets/icon.svg Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.9.0, but it was not found. Use dify_plugin >= 0.9.0 in the packaged plugin environment.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-l2gj5kk4/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-l2gj5kk4/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-l2gj5kk4/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-l2gj5kk4/toolkit/uploader/upload-package.py -d /var/folders/vc/vfsgl8611qn508whms… Fix the plugin so upload-package.py --test passes.

Full Check Results

Check Status Detail Required action
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=2002, ignored_zh=0, allowed_zh<=0) None.
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. None.
Manifest author ✅ Pass author is valid. None.
Icon validation ❌ Fail icon file not found: _assets/_assets/icon.svg Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
Version check ✅ Pass version 0.0.1 is available. None.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=1799, allowed_zh<=0) None.
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty. None.
Dependency install ✅ Pass requirements installed successfully. None.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.9.0, but it was not found. Use dify_plugin >= 0.9.0 in the packaged plugin environment.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-l2gj5kk4/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-l2gj5kk4/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-l2gj5kk4/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-l2gj5kk4/toolkit/uploader/upload-package.py -d /var/folders/vc/vfsgl8611qn508whms… Fix the plugin so upload-package.py --test passes.

Next steps

  • Icon validation: Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
  • dify_plugin version: Use dify_plugin >= 0.9.0 in the packaged plugin environment.
  • Install test: Fix the plugin so test-plugin-install.py passes.
  • Packaging test: Fix the plugin so upload-package.py --test passes.

Please address these issues and push an update.

@crazywoola crazywoola left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail Required action
Icon validation ❌ Fail icon file not found: _assets/_assets/icon.svg Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.9.0, but it was not found. Use dify_plugin >= 0.9.0 in the packaged plugin environment.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-1ffu009t/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-1ffu009t/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-1ffu009t/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-1ffu009t/toolkit/uploader/upload-package.py -d /var/folders/vc/vfsgl8611qn508whms… Fix the plugin so upload-package.py --test passes.

Full Check Results

Check Status Detail Required action
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=2002, ignored_zh=0, allowed_zh<=0) None.
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. None.
Manifest author ✅ Pass author is valid. None.
Icon validation ❌ Fail icon file not found: _assets/_assets/icon.svg Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
Version check ✅ Pass version 0.0.1 is available. None.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=1799, allowed_zh<=0) None.
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty. None.
Dependency install ✅ Pass requirements installed successfully. None.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.9.0, but it was not found. Use dify_plugin >= 0.9.0 in the packaged plugin environment.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-1ffu009t/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-1ffu009t/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-1ffu009t/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-1ffu009t/toolkit/uploader/upload-package.py -d /var/folders/vc/vfsgl8611qn508whms… Fix the plugin so upload-package.py --test passes.

Next steps

  • Icon validation: Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
  • dify_plugin version: Use dify_plugin >= 0.9.0 in the packaged plugin environment.
  • Install test: Fix the plugin so test-plugin-install.py passes.
  • Packaging test: Fix the plugin so upload-package.py --test passes.

Please address these issues and push an update.

@crazywoola crazywoola left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail Required action
Icon validation ❌ Fail icon file not found: _assets/_assets/icon.svg Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.9.0, but it was not found. Use dify_plugin >= 0.9.0 in the packaged plugin environment.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-jtm9lwlg/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-jtm9lwlg/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-jtm9lwlg/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-jtm9lwlg/toolkit/uploader/upload-package.py -d /var/folders/vc/vfsgl8611qn508whms… Fix the plugin so upload-package.py --test passes.

Full Check Results

Check Status Detail Required action
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=2002, ignored_zh=0, allowed_zh<=0) None.
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. None.
Manifest author ✅ Pass author is valid. None.
Icon validation ❌ Fail icon file not found: _assets/_assets/icon.svg Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
Version check ✅ Pass version 0.0.1 is available. None.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=1799, allowed_zh<=0) None.
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty. None.
Dependency install ✅ Pass requirements installed successfully. None.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.9.0, but it was not found. Use dify_plugin >= 0.9.0 in the packaged plugin environment.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-jtm9lwlg/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-jtm9lwlg/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-jtm9lwlg/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-jtm9lwlg/toolkit/uploader/upload-package.py -d /var/folders/vc/vfsgl8611qn508whms… Fix the plugin so upload-package.py --test passes.

Next steps

  • Icon validation: Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
  • dify_plugin version: Use dify_plugin >= 0.9.0 in the packaged plugin environment.
  • Install test: Fix the plugin so test-plugin-install.py passes.
  • Packaging test: Fix the plugin so upload-package.py --test passes.

Please address these issues and push an update.

@crazywoola crazywoola left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail Required action
Icon validation ❌ Fail icon file not found: _assets/_assets/icon.svg Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.9.0, but it was not found. Use dify_plugin >= 0.9.0 in the packaged plugin environment.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-j352qpqu/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-j352qpqu/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-j352qpqu/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-j352qpqu/toolkit/uploader/upload-package.py -d /var/folders/vc/vfsgl8611qn508whms… Fix the plugin so upload-package.py --test passes.

Full Check Results

Check Status Detail Required action
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=2002, ignored_zh=0, allowed_zh<=0) None.
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. None.
Manifest author ✅ Pass author is valid. None.
Icon validation ❌ Fail icon file not found: _assets/_assets/icon.svg Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
Version check ✅ Pass version 0.0.1 is available. None.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=1799, allowed_zh<=0) None.
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty. None.
Dependency install ✅ Pass requirements installed successfully. None.
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.9.0, but it was not found. Use dify_plugin >= 0.9.0 in the packaged plugin environment.
Install test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-j352qpqu/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-j352qpqu/toolkit/validator/test-plugin-install.py -d /var/folders/vc/vfsgl8611qn5… Fix the plugin so test-plugin-install.py passes.
Packaging test ❌ Fail Command failed (1): /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-j352qpqu/.venv/bin/python /var/folders/vc/vfsgl8611qn508whmstl644w0000gn/T/pr-review-helper-j352qpqu/toolkit/uploader/upload-package.py -d /var/folders/vc/vfsgl8611qn508whms… Fix the plugin so upload-package.py --test passes.

Next steps

  • Icon validation: Provide a real custom icon file under _assets/ and reference it from manifest.yaml.
  • dify_plugin version: Use dify_plugin >= 0.9.0 in the packaged plugin environment.
  • Install test: Fix the plugin so test-plugin-install.py passes.
  • Packaging test: Fix the plugin so upload-package.py --test passes.

Please address these issues and push an update.

@arian-gogani

Copy link
Copy Markdown
Author

Fixed the two pre-check failures:

  1. Icon path — manifest was referencing _assets/icon.svg but the CI prepends _assets/ automatically; corrected to just icon.svg
  2. dify_plugin version — added dify-plugin>=0.9.0 to requirements.txt alongside nobulex

The latest run (75305007) shows action_required rather than the earlier failures — that's the maintainer approval gate, which means the validation got further than before. Happy to address any other issues if the review surfaces them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants