Backmerge main into staging after release#681
Conversation
…7-01-free-tier Merge staging into main: remove hosted free tier
…7-01-free-tier Fix release review blockers after free-tier cutover
…ging-20260702-release-graph
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 966093f496
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| -- at least one checkoutable public paid plan. | ||
| UPDATE "plans" |
There was a problem hiding this comment.
Put the overage-price seed in a new migration
In any environment that already applied the earlier 0040_remove_free_tier_public migration, Drizzle will record that migration as done and skip this edited SQL on the next deploy, so this backfill never runs there. Those databases will still have public paid plans with a blank stripe_overage_price_id, and createCheckoutSession returns stripe_price_missing when the overage price is absent, blocking paid checkout; add this UPDATE as a new migration instead of modifying 0040 in place.
Useful? React with 👍 / 👎.
|
Controller classification: Live source-of-truth at this tick:
I am not auto-merging this backmerge despite green checks because main→staging product/runtime/deploy history is a human-risk gate under the OpenSend branch policy. Next action is Jaeyun merge decision; after merge I’ll verify exact |
|
Controller update: pushed the Codex P1 migration fix on What changed:
Validation:
Current gate: fresh PR checks are running on the new head; hold staging integration until exact-head CI finishes green and the review blocker is obsolete/resolved. |
|
Addressed Codex P1 on head e03044e. The hosted paid-plan overage Stripe Price backfill is now in new migration Validation:
Current PR head verified as |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e03044eafd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (providerPoolNameProvided && existing?.provider === "ses") { | ||
| return NextResponse.json( | ||
| { | ||
| error: "SES pool names are immutable after provisioning.", | ||
| code: "provider_pool_name_locked", | ||
| }, | ||
| { status: 403 }, |
There was a problem hiding this comment.
Allow idempotent provider pool updates
When callers update a provisioned SES pool by round-tripping the GET payload (which includes provider_pool_name/ses_pool_name) and changing only status, name, or notes, this branch rejects solely because the field is present. That makes normal idempotent PATCH/retire requests fail with 403 even when the supplied pool name equals existing.sesPoolName; compare the provided value before rejecting so only real name changes are blocked.
Useful? React with 👍 / 👎.
|
@codex review |
|
Addressed the current-head Codex blocker on dedicated IP PATCH handling in Fix:
Validation:
Current PR head verified as |
|
Controller update: current PR head Evidence:
Classification remains |
Summary
origin/maininto the staging backmerge branch after the staging→main release advanced main by 6 commits.Verification
bun run test tests/dedicated-ip-plan-gating.test.ts tests/dedicated-ip-provisioning.test.ts tests/broadcast-sender-billing.test.ts tests/deploy.test.ts tests/docs-no-free-tier.test.tsmake checkNotes