Conversation
…tatus fix: 発話開始ステータスを字幕へ遅延なく通知
fix: OBS字幕へ発話状態を即時通知する
fix: 音声再生とスライド字幕の発話単位を同期する
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 29 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
Walkthrough音声合成の同時実行数を制限し、実再生開始時に字幕を表示します。表示文を発話単位へ整列します。アクティブ音声状態を専用APIへ送信し、古い更新を無視します。割り当て更新を順次処理します。 Changes音声再生パイプライン
アクティブ音声状態同期
プレゼンテーション割り当て処理
Estimated code review effort: 4 (Complex) | ~45 minutes Mergeability Score: 🟡 Moderate · up to The active-speech status path can stop retrying after an unsuccessful first report, leaving users or connected clients with stale speech state. The PR should not merge until initialization is marked complete only after successful delivery or equivalent retry behavior is implemented. Sequence Diagram(s)sequenceDiagram
participant MessageReceiver
participant ActiveSpeechReporter
participant SpeechStatusAPI
participant MessageGateway
MessageReceiver->>ActiveSpeechReporter: 音声状態を enqueue
ActiveSpeechReporter->>SpeechStatusAPI: activeSpeech と version を送信
SpeechStatusAPI->>MessageGateway: updateClientActiveSpeech
MessageGateway-->>SpeechStatusAPI: 更新結果
SpeechStatusAPI-->>ActiveSpeechReporter: 成功または失敗
Possibly related PRs
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/components/messageReceiver.tsx`:
- Around line 786-791: 初期化処理の順序を修正し、まずクライアントステータスを正常に送信してから、homeStore の初期
activeSpeech を activeSpeechReporter に送信し、最後に定期的な reportStatus
を有効化してください。activeSpeechReporterReady と safeReportStatus
を使う現在の完了制御を見直し、初期化失敗時に3回の送信が409になるケースを再現するテストも追加してください。
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 579fe066-e7a2-44e3-809b-023a826a788c
📒 Files selected for processing (19)
src/__tests__/features/api/activeSpeechReporter.test.tssrc/__tests__/features/chat/speechPipeline/speakMessageHandler.test.tssrc/__tests__/features/chat/speechPipeline/speechDispatcher.test.tssrc/__tests__/features/messages/concurrencyLimiter.test.tssrc/__tests__/features/messages/speakCharacterConcurrency.test.tssrc/__tests__/features/presentation/assignmentReconciliation.test.tssrc/__tests__/pages/api/v1/externalApi.test.tssrc/components/messageReceiver.tsxsrc/constants/appVersion.jsonsrc/features/api/activeSpeechReporter.tssrc/features/api/messageGateway.tssrc/features/chat/speechPipeline/speakMessageHandler.tssrc/features/chat/speechPipeline/speechDispatcher.tssrc/features/messages/concurrencyLimiter.tssrc/features/messages/speakCharacter.tssrc/features/presentation/assignmentReconciliation.tssrc/lib/accessPolicy/routePolicies.tssrc/pages/api/v1/client/speech-status.tssrc/pages/api/v1/client/status.ts
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/__tests__/features/api/activeSpeechReporter.test.ts`:
- Around line 36-42: Update the createActiveSpeechStatusCoordinator test so
getActiveSpeech returns a mutable currentSpeech value, change currentSpeech to a
different speech or null while client status initialization is pending, and
assert that the first report uses the updated value rather than the earlier
transition argument.
In `@src/features/api/activeSpeechReporter.ts`:
- Around line 31-34: reportClientStatus の初回 activeSpeech 送信で、reportActiveSpeech
の最終的な成功結果を確認した後にのみ statusInitialized を true に更新してください。reportActiveSpeech
の失敗を呼び出し元へ伝播するか成功結果を返す契約に変更し、失敗時は初期状態を保持して次回の reportClientStatus
で再送できるようにしてください。最終失敗後の再送動作を検証する回帰テストも追加してください。
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 9d8723cb-49a1-40eb-8dd6-8a73f586bf66
📒 Files selected for processing (3)
src/__tests__/features/api/activeSpeechReporter.test.tssrc/components/messageReceiver.tsxsrc/features/api/activeSpeechReporter.ts
🚧 Files skipped from review as they are similar to previous changes (1)
- src/components/messageReceiver.tsx
改善
activeSpeechを専用経路で即時通知し、通常のステータス送信や再試行処理による字幕遅延を避けました。テスト
その他
2.74.0に更新しました。Summary by CodeRabbit