Skip to content

feat: Discord フロント起点インストール & UI 修正#553

Merged
yu23ki14 merged 3 commits into
mainfrom
feat/discord-install-flow-and-ui-fixes
Jul 15, 2026
Merged

feat: Discord フロント起点インストール & UI 修正#553
yu23ki14 merged 3 commits into
mainfrom
feat/discord-install-flow-and-ui-fixes

Conversation

@yu23ki14

Copy link
Copy Markdown
Member

概要

Discord bot 連携画面からのインストール導線を整備し、コマンド登録・ワークスペース紐付けまで一気通貫にしました。あわせてモバイルのスクロール不整合とログイン/Privy 周りの細かな調整を含みます。

変更内容

1. Discord フロント起点インストールフロー(コマンド登録まで自動)

/<treeId>/discord-bot の「サーバーに追加」から、bot のサーバー追加 → ワークスペース紐付け → スラッシュコマンド登録までを自動化。

Bot Worker

  • 新規 GET /api/install/starttreeId を検証し install-state JWT ({ treeId, jti }) を INSTALL_STATE_SECRET で署名して Discord OAuth authorize へリダイレクト。秘密鍵をブラウザに出さずに state を署名。
  • callback — state の guild_id 事前固定を撤廃し、OAuth token 交換で Discord が返した guild に bind する方式へ変更(admin が consent 画面で選ぶまで guild は不明なため)。
  • install-start のユニットテスト追加(計 44 tests green)。

Frontend ($treeId_.discord-bot.tsx)

  • 画面を「管理者設定」と「Mint 許可設定」の2セクションに分割。
  • Quest 代理申請の権限は管理者(owner / operatorHat 保有者)のみ表示。admin 判定をページ側に集約し QuestAgentSectioncanManage を渡す。
  • 「サーバーに追加」カードを追加。VITE_BOT_WORKER_URL/api/install/start へ遷移するだけで /toban-link も手動 register-commands も不要。

2. モバイル viewport 不整合の修正

bodymin-height100vhAppShellh-dvh だったため、モバイルでブラウザクローム表示中に body が shell より高くなり BottomNav 下に余分なスクロール領域が発生。body100dvh に揃えて解消。

3. ログイン / Privy 調整

  • ログイン画面の利用規約・プライバシーポリシー同意フッターを削除。
  • Privy embeddedWalletsshowWalletUIs: false を設定し、署名・トランザクション確認モーダルを抑制。

デプロイ時の運用手順

  1. Discord Developer Portal の OAuth2 Redirects に https://<bot-worker>/api/install/callback が登録済みであること(既存要件)。
  2. Bot Worker を再デプロイ(deploy:sepolia / deploy:base)。関連 secret / vars は既に wrangler に存在。
  3. Frontend の .env に実際の VITE_BOT_WORKER_URL を設定(現状は空プレースホルダ)。

レビュー時の観点

  • install-state の認可モデル(フロント起点フローでの admin 検証)は既存の /toban-link の TODO と同水準。フォローアップ要否をレビューで確認したい(詳細はレビューコメントで補足します)。

確認状況

  • pnpm frontend typecheck / pnpm --filter @toban/discord-bot typecheck
  • pnpm --filter @toban/discord-bot test(44 passed)
  • pnpm biome:check
  • 実 Discord 認証を通した end-to-end 確認は未実施

🤖 Generated with Claude Code

yu23ki14 and others added 3 commits July 15, 2026 18:05
body の min-height が 100vh(アドレスバー非表示時の大きい高さ)で、
AppShell は h-dvh(動的な高さ)だったため、モバイルでブラウザ
クロームが表示されている間に body が shell より高くなり、
BottomNav の下に余分なスクロール領域が生まれていた。body も
100dvh に揃えて解消。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ワークスペースの Discord bot 連携画面から、bot のサーバー追加・
ワークスペース紐付け・スラッシュコマンド登録までを一気通貫にする。

Bot Worker:
- 新規 GET /api/install/start: treeId を検証し install-state JWT
  ({ treeId, jti }) を INSTALL_STATE_SECRET で署名して Discord OAuth
  authorize へリダイレクト。秘密鍵をブラウザに出さずに state を署名。
- callback: state の guild_id 事前固定を撤廃。admin が consent 画面で
  選ぶまで guild は不明なため、token 交換で Discord が返した guild に
  bind する(callback クエリの guild_id と一致検証済み)。
- install-start のユニットテストを追加。

Frontend ($treeId_.discord-bot.tsx):
- 画面を「管理者設定」と「Mint 許可設定」の2セクションに分割。
- Quest 代理申請の権限は管理者(owner / operatorHat 保有者)のみ表示。
  admin 判定をページ側に集約し QuestAgentSection へ canManage を渡す。
- 「サーバーに追加」カードを追加。VITE_BOT_WORKER_URL の
  /api/install/start へ遷移するだけで /toban-link も手動 register も不要。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- ログイン画面の「続行することで利用規約とプライバシーポリシーに
  同意」フッター案内を削除。
- Privy の embeddedWallets に showWalletUIs: false を設定し、署名・
  トランザクション確認モーダルを抑制(書き込みはアプリ側 UX で扱う)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 15, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
toban Ready Ready Preview, Comment Jul 15, 2026 9:12am

Request Review

@yu23ki14
yu23ki14 merged commit a7d9da2 into main Jul 15, 2026
4 checks passed
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