Open
Conversation
Add Zentropi as a new third-party integration and ZENTROPI_LABELER as a new signal type across TypeScript enums, GraphQL schema, and generated types. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Add ZentropiCredential type, CRUD operations for per-org API key storage, and migration to create signal_auth_service.zentropi_configs table. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Implement ZentropiLabelerSignal and zentropiUtils following the OpenAI Moderation pattern. Calls POST /v1/label with policy-steerable labeler, maps label+confidence to a composite 0-1 score, and handles permanent errors (401/404) vs transient errors (5xx). Co-Authored-By: Claude Opus 4.6 <[email protected]>
Register ZentropiLabelerSignal in instantiateBuiltInSignals, add cached Zentropi API fetcher (with labeler-aware cache keys), and add cached credential getter for ZENTROPI integration. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Test score mapping (all four quadrants), signal class metadata, disabled info, error handling (401/404 permanent, 5xx transient, missing subcategory), and correct API call parameters. Co-Authored-By: Claude Opus 4.6 <[email protected]>
The Zentropi API returns label as a string ("0"/"1") rather than a
number. The strict equality check (label === 1) would always fail,
causing violating content to receive a safe score. Use Number(label)
to handle both string and number responses.
Also fix test helper makeCredentialGetter to use string | null instead
of string | undefined, since passing undefined explicitly triggers the
JS default parameter value, making the missing-credentials test path
ineffective.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Store labeler versions (id + label pairs) in the Zentropi integration config alongside the API key. The eligibleSubcategories resolver dynamically returns org-specific labeler versions, and the subcategory picker renders a dropdown for flat subcategory lists. Also fixes spot test to work on rules regardless of their enabled status.
vinaysrao1
requested changes
Feb 10, 2026
server/services/signalsService/signals/third_party_signals/zentropi/zentropiUtils.ts
Outdated
Show resolved
Hide resolved
juanmrad
requested changes
Feb 11, 2026
.devops/migrator/src/scripts/api-server-pg/2026.02.10T00.00.00.add_zentropi_signal.sql
Show resolved
Hide resolved
server/services/signalsService/signals/third_party_signals/zentropi/ZentropiLabelerSignal.ts
Outdated
Show resolved
Hide resolved
…in cached fetchers - Add ZENTROPI_LABELER to enum_signals_type in migration SQL - Replace raw fetch() with shared fetchHTTP dependency in getZentropiScores - Bind fetchHTTP into getZentropiScores in makeCachedFetchers - Update tests to mock fetchHTTP instead of global.fetch Co-Authored-By: Claude Opus 4.6 <[email protected]>
…ions Move simple return values (docsUrl, integration, pricingStructure, etc.) directly into the signal class instead of delegating to single-use functions in zentropiUtils. Co-Authored-By: Claude Opus 4.6 <[email protected]>
juanmrad
reviewed
Feb 11, 2026
...ops/migrator/src/scripts/api-server-pg/2026.02.10T00.00.01.add_zentropi_labeler_versions.sql
Outdated
Show resolved
Hide resolved
Merge labeler_versions column into the initial CREATE TABLE instead of a separate ALTER TABLE migration. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Contributor
Author
|
I believe I addressed all the requests, @vinaysrao1 Let me know if any other changes are needed. We are exciting to use Coop ourselves :-) |
vinaysrao1
approved these changes
Feb 12, 2026
Contributor
|
Thanks Samidh. I am approving since you have addressed all the requests. Lets wait for Juan's approval as well as he had more comments. |
Member
|
@samidh We still have lint and betterer errors can you please address them and once that is done we can merge. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Zentropi Signal Integration
Adds full-stack support for the Zentropi Labeler signal, allowing orgs to run content through custom Zentropi
labelers as part of their moderation rules.
What's included
Backend
own configured labelers
Frontend
pairs)
tree-based card gallery
Tests
To Use