Skip to content

feat: Stripe・プリペイド課金一式を撤去(ADR-0023 / #522)#534

Merged
yusuke0610 merged 1 commit into
feat/agent-rate-limitfrom
feat/remove-billing
Jul 21, 2026
Merged

feat: Stripe・プリペイド課金一式を撤去(ADR-0023 / #522)#534
yusuke0610 merged 1 commit into
feat/agent-rate-limitfrom
feat/remove-billing

Conversation

@yusuke0610

Copy link
Copy Markdown
Owner

概要

機能整理ロードマップ #517 のサブ issue #522。ADR-0023(#520/PR #532)の撤去順序に従い、レート制限(#521/PR #533)導入後にプリペイド課金・Stripe 一式を撤去する。abuse 防止は日次レート制限が担い、Agent は残高ゼロのユーザでも動作する。

⚠️ スタック PR: base は feat/agent-rate-limit#533)。マージ順序は #532(ADR)→ #533#521)→ 本 PR#533 マージ後に main へ rebase します。

backend

  • routers/billingservices/billing(credit_service/pricing/stripe_service)・models/billing(CreditTransaction/AgentUsageLog)・schemas/billingrepositories/billingtests/test_billing を削除
  • agent.pyresume_draft/run_task.py から残高チェック・クレジット消費・使用量記録の課金配線を剥がす(rate limit は保持)。run_task は結果保存を明示 commit 化(旧 record_chat_usage の内部 commit を代替)
  • model_catalog からクレジット項目(is_free/credits_per_mtok/calculate_credit_cost 等)を trim(provider/model_id/エイリアスは [Agent 整理 4/4] マルチプロバイダ抽象の撤去(Haiku + Ollama 構成へ縮退) #523 まで残す)
  • drop マイグレーション 0051credit_transactions/agent_usage_logs/users.credit_balance。破壊的: 既存残高消失)
  • stripe 依存削除 + uv.lock 再生成、Stripe env(env_keys/docker-compose/cloud_run/docs)削除、ErrorCode(INSUFFICIENT_CREDITS/PAYMENT_ERROR)・messages.json の課金エントリ削除

web

  • BillingPagecomponents/billingapi/billing・hooks(useBillingPage/useCreditBalance/useModelRates/useAgentUsageSummary)・utils/creditEstimate を削除
  • ModelSelectModal をクレジット表示なしのモデル選択 UI に書き換え(外科的分離。全モデル無料表示)、AgentChatWidget の残高再取得を除去、agentModelsisPaid/costHint 削除、messages/errorCodes の課金削除
  • SidebarLayout(CreditBalanceBadge/Provider・onOpenBilling)・UserMenuroutes から課金導線削除、generated.ts 再生成

判断事項(レビュー要)

  1. skill-display-propose も LLM を叩き credit gate を持っていたため、撤去に合わせて [Agent 整理 2/4] ユーザ単位レート制限の導入(課金撤去の前提) #521 の日次レート制限を適用(abuse 防止の一貫性。issue [Agent 整理 3/4] Stripe・プリペイド課金一式の撤去 #522 の明示スコープ外だが ADR-0023 の方針に沿う)
  2. AgentUsage のトークン計上は将来の観測用に温存(消費者はいないが LLM 層に深く配線されており、usage-tracking 撤去は [Agent 整理 3/4] Stripe・プリペイド課金一式の撤去 #522 のスコープ外として別途)

受け入れ条件

  • make ci green(backend 594 / web 334 / 全 lint)
  • E2E 36 passed(BillingPage 削除・サイドバー変更のため)
  • Agent が残高ゼロでも動作(レート制限のみが効く)
  • infra の Stripe Secret 参照が残っていない(make infra-validate 成功)

Closes #522

🤖 Generated with Claude Code

ADR-0023 の撤去順序に従い、レート制限(#521)導入後にプリペイド課金を撤去する。
abuse 防止は日次レート制限が担う。

backend:
- routers/billing・services/billing(credit_service/pricing/stripe_service)・
  models/billing(CreditTransaction/AgentUsageLog)・schemas/billing・
  repositories/billing・tests/test_billing を削除
- agent.py / resume_draft/run_task.py から残高チェック・クレジット消費・使用量
  記録の課金配線を剥がす(rate limit は保持)。run_task は結果保存を明示 commit 化
- model_catalog からクレジット項目(is_free / credits_per_mtok / calculate_credit_cost 等)を
  trim(provider / model_id / エイリアスは #523 まで残す)
- drop マイグレーション 0051(credit_transactions / agent_usage_logs / users.credit_balance)
- stripe 依存削除 + uv.lock 再生成、Stripe env(env_keys/docker-compose/cloud_run/docs)削除、
  ErrorCode(INSUFFICIENT_CREDITS/PAYMENT_ERROR)・messages.json の課金エントリ削除

web:
- BillingPage・components/billing・api/billing・hooks(useBillingPage/useCreditBalance/
  useModelRates/useAgentUsageSummary)・utils/creditEstimate を削除
- ModelSelectModal をクレジット表示なしのモデル選択 UI に書き換え、AgentChatWidget の
  残高再取得を除去、agentModels の isPaid/costHint 削除、messages/errorCodes の課金削除
- SidebarLayout(CreditBalanceBadge/Provider・onOpenBilling)・UserMenu・routes から課金導線削除
- generated.ts 再生成(billing schema 除去)

判断事項(PR で明記):
- skill-display-propose も LLM を叩き credit gate を持っていたため、rate limit を適用
  (abuse 防止の一貫性 / ADR-0023)
- AgentUsage のトークン計上は将来の観測用に温存(消費者なし。usage-tracking 撤去は別途)

検証: make ci green(backend 594 / web 334 / 全 lint)・E2E 36 passed・infra-validate 成功

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 20eea7fc-52a8-4c11-8971-289a31423b4f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • ✅ Review completed - (🔄 Check again to review again)
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/remove-billing

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added feature 新機能 documentation Improvements or additions to documentation infra インフラ backend バックエンド web フロントエンド (web) test テスト追加・修正 agent DevForge Agent labels Jul 21, 2026
@yusuke0610
yusuke0610 merged commit ba6d684 into feat/agent-rate-limit Jul 21, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent DevForge Agent backend バックエンド documentation Improvements or additions to documentation feature 新機能 infra インフラ test テスト追加・修正 web フロントエンド (web)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant