feat(billing): surface claim-backed effective plan status - #568
Draft
seonghobae wants to merge 12 commits into
Draft
feat(billing): surface claim-backed effective plan status#568seonghobae wants to merge 12 commits into
seonghobae wants to merge 12 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Aug 20, 2026
This was referenced Aug 20, 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.
Buyer/access outcome
Refs #488. This Draft child of #565 closes the buyer-visible inconsistency where claim-backed Pro authorization can lift project/member limits while
/api/orgs/:id/billingstill reports the stored Free plan and the team UI continues offering an upgrade action.Exact current stack
feat/stripe-entitlement-effective-plan-488@c9d21ade938bb7eaba89a37a271bb5eed464c17a;6fcbaa4b85d70d7b7b98bc85e977a25624df32f1;The current head is a non-destructive two-parent reconciliation of predecessor child
258c4687aa1872ef196caceeadc316101a8cca92with exact current #565. It starts from the repaired effective-plan parent tree and overlays only this slice's six billing-status paths, preserving #564's composite claim-head tenant-integrity constraint and #565's current authorization behavior.Any parent/head movement invalidates this ancestry statement until freshly reconciled.
Public status contract
server/app.mjsbinds the bootstrapped server-owned billing database before public plan-status requests, preserving the same claim authority used by resource-limit checks. Successful/api/orgs/:id/billingresponses are normalized so:plannames the effective authorization plan currently governing product limits;storedPlanseparately preserves the durable/manualorgs.planvalue for audit and operator diagnosis;planName,priceKrw, and complete project/member limits match one knownPLANScatalog entry;The API regression uses the real in-memory ScopeWeave billing schema and current entitlement evidence rather than a response-only stub. Unit/package contracts keep the normalizer and API regression in the canonical test paths.
Inherited tenant-integrity repair
Parent #564 now makes
billing_stripe_entitlement_claim_heads(subscription_id, decision_id)reference the exact same pair onbilling_stripe_entitlement_decisions, preventing a head for one Subscription from consuming another Subscription's entitlement decision. A focused NodeDatabaseSyncreproduction is GREEN for rejection of cross-Subscription rebind and success of a same-Subscription head advance. This child inherits that exact schema and regression through #565.Current exact-head evidence
Fresh repository-native workflows for exact head
6fcbaa4b85d70d7b7b98bc85e977a25624df32f1are queued and therefore non-passing:32345893910;32345893874; and32345894148.There are no submitted reviews or review threads on this exact head. No predecessor-head, queued, absent, synthetic, status-only, author-only, or model-only evidence is treated as approval.
Scope boundary
This slice surfaces buyer-visible billing truth only. It does not mutate
orgs.plan, change authentication or membership/RBAC, issue capabilities, or complete the remaining #488 operator recovery, out-of-order convergence, retention/export, and release-acceptance work.Remain Draft. Do not integrate independently of #565/#564 and their prerequisite stack. Hosted exact-head deterministic/browser/coverage/security/dependency/supply-chain/review evidence must be terminal and current before integration.