[codex] Retarget plugin submissions to platform repos#75
Conversation
📝 WalkthroughWalkthroughReplaces the old submission instructions with a localized “Contribute Plugins” section including a Provider access policy, adds Playwright tests validating the policy across locales, and retires the community-plugins fetch script by writing an empty index file. ChangesAdd-ons Developer Policy & Retirement
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
tests/addons-develop-policy.spec.ts (1)
8-11: ⚡ Quick winExpand assertions to cover the full required policy boundary.
The spec currently checks only one accepted and one rejected example per locale, so substantial policy regressions could still pass. Add assertions for the other required clauses (official developer billing, documented third-party SDK/OAuth, local-only integrations, and disallowed unofficial OAuth/copied client IDs/hidden endpoints/first-party refresh flows).
Proposed test hardening
const policyScenarios = [ { locale: "en", path: "/en/addons/develop", heading: "Provider access policy", - acceptedExample: /user-provided API keys/, - rejectedExample: /impersonate a provider's first-party client/, + acceptedExamples: [ + /user-provided API keys/, + /official developer platform billing/, + /officially documented SDK or OAuth flows intended for third-party apps/, + /local-only integrations/, + ], + rejectedExamples: [ + /impersonate a provider's first-party client/, + /consumer subscription credentials as API access unless the provider explicitly supports/, + /unofficial OAuth clients/, + /copied client IDs/, + /hidden endpoints/, + /token refresh flows intended for another first-party product/, + ], macRepo: "TypeWhisper/typewhisper-mac", windowsRepo: "TypeWhisper/typewhisper-win", }, { locale: "de", path: "/de/addons/develop", heading: "Provider-Zugriffsrichtlinie", - acceptedExample: /nutzerbereitgestellte API-Schlüssel/, - rejectedExample: /First-Party-Client eines Anbieters imitieren/, + acceptedExamples: [ + /nutzerbereitgestellte API-Schlüssel/, + /offizielle Abrechnung über Entwicklerplattformen/, + /offiziell dokumentierte SDK- oder OAuth-Flows für Drittanbieter-Apps/, + /rein lokale Integrationen/, + ], + rejectedExamples: [ + /First-Party-Client eines Anbieters imitieren/, + /Verbraucher-Abo-Zugangsdaten als API-Zugriff verwenden/, + /inoffizielle OAuth-Clients/, + /kopierte Client-IDs/, + /versteckte Endpunkte/, + /Token-Refresh-Flows.*anderes First-Party-Produkt/, + ], macRepo: "TypeWhisper/typewhisper-mac", windowsRepo: "TypeWhisper/typewhisper-win", }, ] as const; @@ - await expect(page.getByText(scenario.acceptedExample)).toBeVisible(); - await expect(page.getByText(scenario.rejectedExample)).toBeVisible(); + for (const acceptedExample of scenario.acceptedExamples) { + await expect(page.getByText(acceptedExample)).toBeVisible(); + } + for (const rejectedExample of scenario.rejectedExamples) { + await expect(page.getByText(rejectedExample)).toBeVisible(); + }Also applies to: 17-20, 32-37
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tests/addons-develop-policy.spec.ts` around lines 8 - 11, The current test uses only acceptedExample and rejectedExample in the locale blocks (e.g., the object with acceptedExample, rejectedExample, macRepo, windowsRepo) and must be expanded: update the test cases in tests/addons-develop-policy.spec.ts to add assertions covering all required clauses per locale — add positive assertions for official developer billing, documented third-party SDK/OAuth, and local-only integrations, and negative assertions rejecting unofficial OAuth, copied client IDs, hidden endpoints, and first-party refresh flows; ensure these new expectations are added alongside the existing acceptedExample/rejectedExample checks for each locale block (also apply the same additions to the other similar blocks referenced in the comment).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@tests/addons-develop-policy.spec.ts`:
- Around line 8-11: The current test uses only acceptedExample and
rejectedExample in the locale blocks (e.g., the object with acceptedExample,
rejectedExample, macRepo, windowsRepo) and must be expanded: update the test
cases in tests/addons-develop-policy.spec.ts to add assertions covering all
required clauses per locale — add positive assertions for official developer
billing, documented third-party SDK/OAuth, and local-only integrations, and
negative assertions rejecting unofficial OAuth, copied client IDs, hidden
endpoints, and first-party refresh flows; ensure these new expectations are
added alongside the existing acceptedExample/rejectedExample checks for each
locale block (also apply the same additions to the other similar blocks
referenced in the comment).
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 978b1113-930f-4def-be1e-92b9facc9060
📒 Files selected for processing (3)
scripts/fetch-community-plugins.mjssrc/pages/addons/_develop.tsxtests/addons-develop-policy.spec.ts
Summary
typewhisper-pluginsflow to the platform repositories that own the app integrations.TypeWhisper/typewhisper-macand Windows plugin contributions toTypeWhisper/typewhisper-win.typewhisper-plugins.Companion
Validation
npm run test:i18nnpx playwright test tests/addons-develop-policy.spec.tsnpm run buildgit diff --checkCloses #74
Summary by CodeRabbit
New Features
Documentation
Tests
Chores