chore: remove backwards compatibility shims #263
Open
felipefreitag wants to merge 4 commits intomainfrom
Open
Conversation
Remove deprecated teams→profiles compatibility layer:
- Delete `resend teams` command (`teams-deprecated.ts`)
- Remove `--team` global flag and `GlobalOpts.team` field
- Remove `RESEND_TEAM` env var fallbacks
- Remove deprecated aliases (TeamProfile, resolveTeamName, setActiveTeam, listTeams, validateTeamName)
Remove legacy credential format support:
- Drop `{ api_key: "re_xxx" }` root format
- Drop `{ teams, active_team }` format
- Remove `storage: 'keychain'` → `'secure_storage'` migration
- Remove `RESEND_CREDENTIAL_STORE=keychain` compat
- Remove auto-migration of plaintext keys to secure storage
BREAKING CHANGE: Users on very old config formats must re-run `resend login`.
The `--team` flag, `RESEND_TEAM` env var, and `resend teams` command are removed.
…ards-compat # Conflicts: # package.json # skills/resend-cli/SKILL.md # tests/lib/config-async.test.ts
Contributor
There was a problem hiding this comment.
1 issue found across 16 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/commands/whoami.ts">
<violation number="1" location="src/commands/whoami.ts:43">
P2: Check `--profile` presence with `!== undefined` instead of truthiness so empty-string values are treated as explicitly provided.
(Based on your team's feedback about Commander.js option presence checks.) [FEEDBACK_USED]</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.
| const profileExists = profiles.some((p) => p.name === requestedProfile); | ||
| const explicitProfile = | ||
| profileFlag || process.env.RESEND_PROFILE || process.env.RESEND_TEAM; | ||
| const explicitProfile = profileFlag || process.env.RESEND_PROFILE; |
Contributor
There was a problem hiding this comment.
P2: Check --profile presence with !== undefined instead of truthiness so empty-string values are treated as explicitly provided.
(Based on your team's feedback about Commander.js option presence checks.)
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/commands/whoami.ts, line 43:
<comment>Check `--profile` presence with `!== undefined` instead of truthiness so empty-string values are treated as explicitly provided.
(Based on your team's feedback about Commander.js option presence checks.) </comment>
<file context>
@@ -40,8 +40,7 @@ Shows which profile is active and where the API key comes from.`,
const profileExists = profiles.some((p) => p.name === requestedProfile);
- const explicitProfile =
- profileFlag || process.env.RESEND_PROFILE || process.env.RESEND_TEAM;
+ const explicitProfile = profileFlag || process.env.RESEND_PROFILE;
// If a specific profile was requested but doesn't exist, show a targeted error
</file context>
vcapretz
approved these changes
Apr 14, 2026
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.
Remove deprecated teams→profiles compatibility layer:
resend teamscommand (teams-deprecated.ts)--teamglobal flag andGlobalOpts.teamfieldRESEND_TEAMenv var fallbacksRemove legacy credential format support:
{ api_key: "re_xxx" }root format{ teams, active_team }formatstorage: 'keychain'→'secure_storage'migrationRESEND_CREDENTIAL_STORE=keychaincompatBREAKING CHANGE: Users on very old config formats must re-run
resend login. The--teamflag,RESEND_TEAMenv var, andresend teamscommand are removed.Summary by cubic
Removes all teams→profiles compatibility shims and legacy credential formats, and releases
resend-cli2.0.0 (also updatesskills/resend-climetadata). Drops--team,RESEND_TEAM, and theresend teamscommand; users with very old configs must runresend login.Refactors
resend teamscommand.--teamflag,GlobalOpts.team, andRESEND_TEAMfallback.{ api_key }and{ teams, active_team }.storage: 'keychain'compatibility and plaintext→secure storage auto-migration.TeamProfile,resolveTeamName,setActiveTeam,listTeams,validateTeamName.Migration
resend loginif your credentials file uses a legacy format.--teamwith--profile; replaceRESEND_TEAMwithRESEND_PROFILE; stop usingresend teams.RESEND_CREDENTIAL_STORE=keychain, change it tosecure_storageorfile.Written for commit b3e8545. Summary will update on new commits.