Skip to content

improvement(billing): open a Chat plan popup on send instead of a static card above the composer - #9608

Merged
waleedlatif1 merged 2 commits into
stagingfrom
improvement/chat-plan-popup
Nov 3, 2026
Merged

waleedlatif1 merged 2 commits into
stagingfrom
improvement/chat-plan-popup

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

  • Replace the static "Paid Plan Required" card above the composer with a popup that opens when a free-plan user sends a message
  • Send stays enabled; the draft is kept when the popup opens
  • The popup also opens for sends that skip the composer: "Send now" on a queued message and handoffs from other surfaces (e.g. Troubleshoot in Chat), which previously dropped silently once the card was gone
  • One ChatPlanModal per shell (workspace chrome and the extension), opened through a small stores/modals/chat-plan store
  • Extract the upgrade link, permission check, and "ask an admin" copy into usePlanUpgradeLink, shared by the popup and the in-chat usage card, so both resolve the same destination
  • Popup contents mount only while open, so a closed popup reads no session or billing context

Type of Change

  • Improvement

Testing

  • Biome on the changed files; lint, type-check, audits, and tests run in CI

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing (new tests pass the test-audit authoring gate)
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel

vercel Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
docs Skipped Skipped Nov 3, 2026 3:54am UTC

Request Review

@greptile-apps

greptile-apps Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The latest change appears safe to merge, with no new actionable issues found.

Summary

Replaces the static Chat plan notice with a send-triggered popup. Shares upgrade links and billing permissions through usePlanUpgradeLink.

  • Free-plan Chat sends open a paid-plan popup.
  • Billing prompts use the same upgrade links.

Reviews (2) · Last reviewed commit: "improvement(billing): name the plan upgr..." · Reviewed by Greptile

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 17 files

Reply with feedback, questions, or to request a fix.

Turn on auto-fix | Re-trigger cubic

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@waleedlatif1 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 17 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Turn on auto-fix | Re-trigger cubic

@waleedlatif1
waleedlatif1 merged commit 0bf55bc into staging Nov 3, 2026
68 checks passed
@waleedlatif1
waleedlatif1 deleted the improvement/chat-plan-popup branch November 3, 2026 03:59

This branch was previously deployed

1 inactive deployment
Preview — df211a68 Deployed Nov 3, 2026 by vercel[bot]
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.

1 participant