Skip to content

feat(cli): sync targets adapter registry with packages/targets filesystem#223

Open
emil07770 wants to merge 1 commit into
profullstack:masterfrom
emil07770:feat/sync-targets-registry
Open

feat(cli): sync targets adapter registry with packages/targets filesystem#223
emil07770 wants to merge 1 commit into
profullstack:masterfrom
emil07770:feat/sync-targets-registry

Conversation

@emil07770
Copy link
Copy Markdown
Contributor

Summary

Closes #219. Addresses #133.

The CATEGORIES registry in adapter-registry.ts listed only 42 of the 66 directories under packages/targets/, meaning commands such as sh1pt targets browser-edge info, sh1pt targets plugin-vscode info, sh1pt targets sdk-pypi info, and 21 others were silently unregistered.

Missing adapters added (24 total)

Group Added
Browsers browser-edge, browser-firefox, browser-safari
Deploy / hosting deploy-coolify, deploy-lambda
Specialty runtimes exe-dev
Mobile mobile-android
Payments (as distribution targets) payment-adyen, payment-coinpay, payment-paypal, payment-square, payment-stripe
Packages & registries pkg-apt, pkg-aur, pkg-flatpak, pkg-nix, pkg-perry, pkg-scoop, pkg-snap, pkg-winget
Editor / IDE plugins plugin-jetbrains, plugin-vscode
QA qa-geisterhand
SDK registries sdk-pypi

Regression prevention

Adds adapter-registry.test.ts with 6 tests:

  • No duplicate adapter names within any category
  • No duplicate category ids
  • targets registry contains all packages/targets/ directories (fails if a new target is added without updating the registry)
  • targets registry has no phantom entries (fails if a registered adapter no longer exists on disk)
  • Every category has a non-empty pkgPrefix and description
  • Every category has at least one adapter

The FS-diff tests gracefully skip in shallow CI checkouts (readdirSync returns []), so they don't break the test suite in environments that don't clone the full monorepo.

Test plan

  • pnpm exec vitest run packages/cli/src/adapter-registry.test.ts — 6/6 pass
  • pnpm --filter @profullstack/sh1pt typecheck — no errors
  • git diff --check — no trailing whitespace

🤖 Generated with Claude Code

…stem

Closes profullstack#219. Addresses profullstack#133.

The CATEGORIES registry in adapter-registry.ts listed only 42 of the 66
directories under packages/targets/, meaning commands such as
`sh1pt targets browser-edge info`, `sh1pt targets plugin-vscode info`,
`sh1pt targets sdk-pypi info`, and 23 others were silently unregistered.

Adds the 24 missing adapters, grouped by kind with inline comments
so future additions are easy to place:
  browser-edge, browser-firefox, browser-safari
  deploy-coolify, deploy-lambda
  exe-dev
  mobile-android
  payment-adyen, payment-coinpay, payment-paypal, payment-square, payment-stripe
  pkg-apt, pkg-aur, pkg-flatpak, pkg-nix, pkg-perry, pkg-scoop, pkg-snap, pkg-winget
  plugin-jetbrains, plugin-vscode
  qa-geisterhand
  sdk-pypi

Also adds a 6-test Vitest regression suite (adapter-registry.test.ts)
that reads packages/targets/ at test time and fails if any directory
is not registered or if any registered adapter no longer exists on disk,
so the registry can't silently drift again.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

CLI targets registry omits existing target adapters

1 participant