Skip to content

tahoiya: isMimicryAllowed・スレッド管理改善・メンション追加・テーマ選択アルゴリズム修正#1206

Merged
hakatashi merged 3 commits into
masterfrom
feat/tahoiya-followup
Jun 20, 2026
Merged

tahoiya: isMimicryAllowed・スレッド管理改善・メンション追加・テーマ選択アルゴリズム修正#1206
hakatashi merged 3 commits into
masterfrom
feat/tahoiya-followup

Conversation

@hakatashi

@hakatashi hakatashi commented Jun 13, 2026

Copy link
Copy Markdown
Member

Summary

PR #1195 でのフルリライト後のフォローアップ実装です。

実装済み機能

  • ランキング表示: 「たほいやランキング」と発言するとELOレーティング順位一覧(上位20名)を表示
  • 編集検知: 意味を再送信した場合に「登録したよ」→「編集したよ✏️」と通知を変更
  • コメント機能の復活: 意味登録モーダル・投票モーダル内にコメント入力欄を統合。ゲーム中は非公開で、ゲーム終了時にまとめてスレッドに公開(投票フェーズ開始前後でセパレーター挿入)
  • Gistマイグレーションスクリプト: 過去の対戦ログをFirestore tahoiya_games コレクションに移行するスクリプトを追加
  • isMimicryAllowed フラグ: 任意お題モードのお題登録フォームに「参加者が正解を意図的に登録することを許可する」チェックボックスを追加。submitMeaningModal の注意書きも対応して変化する
  • 1ゲーム1スレッド方式: メッセージのスレッド管理を改善
    • collectMeaningMessagecollectBettingsMessageresultsMessage は全てbroadcastスレッドリプライとして投稿
    • 親メッセージは常にゲームの現在状態を表示し、フェーズが変わるたびに更新
    • 状態変化時にゲーム親メッセージとステータスメッセージを一括更新
  • collectBettingsMessage にメンション追加: 意味登録者全員へのメンション・出題者表示をブロック内に含める
  • テーマ選択アルゴリズム改善: authorHistory 未掲載ユーザーのお題を優先し、全員が履歴に含まれる場合は最も古いユーザーのお題を選択(authorHistory リセットを廃止)
  • お題候補の再選択: select_theme フェーズ中(お題候補を提示している状態)に再度「たほいや」と発言すると、新たに10個の候補を選び直し古い候補メッセージを削除。新しいメッセージがゲームの親メッセージになる
  • ステータスメッセージの単一化: statusMessageTss: string[](複数保持)を statusMessageTs: string | null(単一保持)に変更。「たほいや」「デイリーたほいや」を複数回発言した場合、以前のステータスメッセージを削除してから新しいものを投稿する

コメント機能の仕様

  • 意味登録モーダル・投票モーダルにコメント欄(optional)と「コメントを送信」ボタンを追加
  • ボタン押下で views.update によりモーダルを閉じずに更新(twenty-questionsの質問送信と同じUX)
  • 自分が送信済みのコメントのみモーダル内に表示
  • ゲーム終了まで他の参加者にはコメントの存在を一切公開しない
  • ゲーム終了(結果発表)後にスレッドにまとめて投稿(意味登録フェーズと投票フェーズのコメントをセパレーターで区切る)

マイグレーションスクリプトの使い方

# ドライラン(書き込みなし)
npx ts-node bin/migrate-tahoiya-gist.ts --dry-run

# 本番実行
npx ts-node bin/migrate-tahoiya-gist.ts

🤖 Generated with Claude Code

- 「たほいやランキング」コマンドでELOレーティング順位一覧を表示
- 意味を再送信した場合に「登録した」→「編集した」と通知
- モーダル内にコメント入力欄を統合し、ゲーム終了まで非公開で保存・結果発表後に一括公開
- 過去の対戦ログ(第1〜1100回)をGistからFirestoreへ移行するスクリプトを追加
- 実績タイトルを3件変更(任意お題・レーティング500/800)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@tsg-ut-gemini-assistant

Copy link
Copy Markdown
Contributor

えへ~

ありがとう!

レビューさせてもらうにゃ!

🔍️🔍️🔍️️

@tsg-ut-gemini-assistant

Copy link
Copy Markdown
Contributor

🤖 I'm sorry @hakatashi, but I was unable to process your request. Please see the logs for more details.

- 任意お題に isMimicryAllowed フラグを追加し、お題登録フォームとsubmitMeaningModalの注意書きを対応
- 1ゲーム1スレッド方式に統一: collectMeaningMessage・collectBettingsMessage・resultsMessageをbroadcastスレッドリプライとして投稿し、親メッセージと全ステータスメッセージを状態変化時に一括更新
- collectBettingsMessageに意味登録者へのメンションブロックを追加
- #fetchAvailableThemes → #selectNextDailyTheme にリネームし、authorHistoryの最古ユーザー優先アルゴリズムに変更

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@hakatashi hakatashi changed the title tahoiya: ランキング・編集検知・コメント機能・Gistマイグレーション追加 tahoiya: isMimicryAllowed・スレッド管理改善・メンション追加・テーマ選択アルゴリズム修正 Jun 19, 2026
- select_themeフェーズ中に「たほいや」と発言すると候補を10個選び直し、古い候補メッセージを削除する(新しいメッセージが親メッセージになる)
- statusMessageTss(配列)をstatusMessageTs(単一)に変更。新たにステータスメッセージを投稿する際は以前のメッセージを削除する
- collectMeaningsMessageのヘッダーをゲーム種別と時刻に応じて変更(通常/デイリー・21時前後)
- collectBettingsMessageに出題者表示を追加、「(ゲーム終了)」テキストを削除
- registerThemeArbitraryModalのmimicry_allowedラベルを簡潔化

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@hakatashi hakatashi merged commit 6531883 into master Jun 20, 2026
2 of 5 checks passed
@hakatashi hakatashi deleted the feat/tahoiya-followup branch June 20, 2026 06:10
@sonarqubecloud

Copy link
Copy Markdown

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