Skip to content

feat(web): copy thread ID from issue cards - #297

Merged
version-1 merged 3 commits into
mainfrom
feat/copy-thread-id-from-issue-card
Jul 30, 2026
Merged

feat(web): copy thread ID from issue cards#297
version-1 merged 3 commits into
mainfrom
feat/copy-thread-id-from-issue-card

Conversation

@version-1

Copy link
Copy Markdown
Owner

Issue カードから Thread ID をコピー

Summary

Issue カードの三点リーダーメニューから、対象 issue に紐づく直近の有効な Thread ID をコピーできるようにします。

主な変更点:

  • メニュー先頭に「Thread ID をコピー」を追加
  • 初回メニュー表示時に runtime を遅延取得し、issue ID 単位でページ存続中キャッシュ
  • 最新 run から順に有効な Thread ID へフォールバック

やったこと

  • 取得中、取得失敗、Thread ID 未設定時はコピー項目を非活性化
  • readonly カードでもコピーを許可
  • コピー成功・失敗時に既存のトーストを表示し、操作後にメニューを閉じる
  • 日本語・英語の表示文言を追加
  • 再マウント、in-flight キャッシュ、フォールバック、clipboard 成功・失敗などのテストを追加

動作確認

  • npm test -- --run src/features/issues/components/card/index.test.tsx src/lib/i18n.test.ts
  • npm run typecheck
  • git diff --check

レビュー & 動作確認 チェックリスト

  • 遅延取得 - メニューを開くまで runtime API が呼ばれないこと
  • キャッシュ - カード再マウント後も同じ issue の runtime API が再取得されないこと
  • フォールバック - 最新 run に Thread ID がない場合、過去の直近有効値をコピーすること

推奨テスト計画:

  1. Thread ID がある issue のメニューを開き、コピー項目が有効になることを確認する
  2. コピーしてクリップボード内容と成功トーストを確認する
  3. run または Thread ID がない issue でコピー項目が非活性になることを確認する

その他気になることや相談ごと

特になし

Load and cache runtime data lazily on the first menu open, falling back to the newest valid thread ID across runs. Add disabled states, existing success/error toasts, i18n strings, and regression tests.\n\nVerification:\n- npm test -- --run src/features/issues/components/card/index.test.tsx\n- npm run typecheck
Share an issue ID keyed Promise cache across the page lifetime so in-flight, successful, and failed runtime loads are reused. Add remount, loading-state, and i18n contract tests.\n\nVerification:\n- 26 tests\n- typecheck
Replace the module-scoped thread ID cache with an issue-scoped React Query hook and provide a shared QueryClient to the app and Storybook. Preserve lazy loading, remount caching, and silent failure behavior.\n\nVerified with npm test, npm run typecheck, and npm run build.
@version-1
version-1 merged commit 1978515 into main Jul 30, 2026
5 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