Skip to content

Add plugin: TCPR 0.0.1 - #2901

Open
lyts825 wants to merge 2 commits into
langgenius:mainfrom
lyts825:add-tcpr-0.0.1
Open

Add plugin: TCPR 0.0.1#2901
lyts825 wants to merge 2 commits into
langgenius:mainfrom
lyts825:add-tcpr-0.0.1

Conversation

@lyts825

@lyts825 lyts825 commented Aug 17, 2026

Copy link
Copy Markdown

Plugin Submission

Plugin information

Submission type

  • New plugin
  • Version update

What changed

TCPR (Typed Constraint-Preserving Retrieval) is a free Dify Tool Plugin for exact retrieval over sparse product attributes. It provides four tools:

  • tcpr_search parses and evaluates typed hard and soft constraints.
  • import_products validates and imports a caller-provided CSV or XLSX product file.
  • rebuild_index safely rebuilds the current product index.
  • get_schema reports the imported schema and index capabilities.

The plugin addresses product retrieval cases where numeric, categorical, and missing attributes must be handled with explicit constraint semantics instead of unsafe string matching. The package is intended to run with Python 3.12 and Dify 1.14.2 or later, and requests 256 MiB of persistent storage.

Risk level

  • Low risk
  • Medium risk
  • High risk

The plugin processes uploaded product files and writes validated snapshots, indexes, schema metadata, and import warnings to Dify persistent storage. It does not call external services, send product rows to third parties, execute commands or code, run SQL, use SSH/SFTP, automate browsers, fetch arbitrary URLs, or include bundled binaries.

Required checks

  • I have read and followed the Marketplace submission requirements.
  • I have read and comply with the Plugin Developer Agreement.
  • I tested this plugin on Dify Community Edition and Dify Cloud, or documented any limitation below.
  • The package contains only files needed at runtime.
  • The package does not contain secrets, local credentials, .env files, .git directories, virtual environments, caches, logs, or IDE files.
  • The package does not contain executables or bundled binaries, or I explained why they are required below.
  • The plugin README includes setup steps, usage instructions, required APIs or credentials, connection requirements, and the source repository link.
  • The plugin includes PRIVACY.md or a hosted privacy policy, and manifest.yaml references it.
  • All user-facing text is primarily in English, with the localized README following the i18n guidance.

Security and privacy notes

The plugin has no credentials and no external network calls. It is designed for product data and does not intentionally collect personal data or telemetry. If a caller includes personal data in an uploaded product file, the data remains subject to the target Dify workspace's storage and retention controls and is not sent to an external service by this plugin. See PRIVACY.md in the package.

Local validation

  • python -B -c "from verify_plugin import verify_runtime_contracts; verify_runtime_contracts(); print('RUNTIME_CONTRACTS_OK')" — passed.
  • Official Dify Plugin CLI 0.6.10 plugin package . — passed.
  • Package inspection — passed: 32 entries, non-empty PRIVACY.md, _assets/tcpr.svg, valid manifest and provider, English-only root README, no .git, virtual environment, cache, bytecode, executable, or nested package.
  • Package SHA-256: DAD0AD48ECBD84450A4C1111D3B5658F9755F7E88D3061B752BEEAF0741A3612.

This submission machine has no connected Dify Community Edition or Dify Cloud workspace, so live installation testing was not performed here. The package is ready for reviewer installation testing.

Reviewer notes

  • This is a new free Tool Plugin; the PR changes only lyts825/tcpr/tcpr-0.0.1.difypkg.
  • The source repository contains the English README, localized README, privacy policy, icon, dependency declarations, and lockfile.
  • No breaking changes or migration notes apply to this initial release.

@github-actions github-actions Bot added the risk: medium Medium-risk Marketplace submission label Aug 17, 2026
@crazywoola

Copy link
Copy Markdown
Member

🤖 CI Summary

Check Status
Pre Check Plugin ❌ failed — run log
PR Risk Label ✅ pass

What's wrong

The check-manifest-metadata step reports blocking errors:

Manifest metadata errors:
- missing required field: repo
- missing required field: contact

How to fix

Add the two missing fields to the meta section of your plugin's manifest.yaml, e.g.:

meta:
  repo: https://github.com/<your-org>/<your-repo>
  contact: <email-or-other-contact>

Then push a new commit to re-trigger CI. Thank you! 🙏

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

Labels

risk: medium Medium-risk Marketplace submission

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants