Show pending mailbox messages in the transcript
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- typescript
- 領域
- full-stack
調査の方向性
issue で説明されている dashboard の会話詳細と composer のフローから始め、packages/junior/src/chat/api-turns/work.ts と persistConversationMessages を通じて mailbox と worker のパスを追跡します。reporting の変更を選ぶ前に、受け付けられた web メッセージと Slack メッセージがどのように読み込まれ、レンダリングされるかを確認します。受け付けられたメッセージが履歴の commit 前に保留中として表示され、その保留中、完了、失敗、再試行、認証の状態が refresh と worker の継続後も維持されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
Accepted inbound messages sit in the conversation mailbox until a worker drains them into durable history. The dashboard transcript only shows committed history, so those messages are invisible while queued — whether they came from the web composer or Slack.
The product bar is ChatGPT-style: once a message is accepted, it should already be in the transcript as pending work, not appear only after the turn starts.
Current behavior
- Web send (
POST /api/conversations,POST /api/conversations/:id/messages) accepts into the mailbox viaappendAndEnqueueApiConversationMessageand returns{ conversationId, messageId, status }. - Slack ingress also lands in the same mailbox before history commit.
- User rows enter the transcript only after the worker runs and
persistConversationMessagescommits them (packages/junior/src/chat/api-turns/work.tsand the shared conversation worker path). - Dashboard composer covers the HTTP accept with
Sending…, then invalidates/refetches. There is no mailbox-pending row and no optimistic transcript insert on send. - Conversation detail polls every 2s only while
status === "active"; mailbox contents are not part of the reporting read model the UI renders.
Gap
- #1200 already requires accepted messages to “appear immediately as pending” and for pending/completed/failed/retry/authorization states to survive refresh and worker continuation.
- That requirement is not scoped as its own slice. Composer (#1399) landed without mailbox-visible pending UI for web or Slack-originated queue.
- Impact: senders and readers watching a live conversation see a blank lag between accept and history commit, especially when the worker is busy or deferred mailbox work is waiting on an active turn.
Related
- Parent: #1200
- Composer slice: #1399
- Prior note: https://github.com/getsentry/junior/issues/1200#issuecomment-5246726967
Requested by David Cramer.
--
- 主要言語
- TypeScript
- スター
- 383
- フォーク
- 42
- 平均マージ
- 9時間 42分
- マージ済み PR(30日)
- 191
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
getsentry/junior のほかの issue
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
getsentry/junior#335 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
getsentry/junior の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
scaleway/ultraviolet#7089 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
tencent-connect/dsh-qqbot#81 ·
メンテナーはふだん 1 日以内に返信
-
[Bug]: Pen taps on sidebar rows start a drag and lose their click対応中かも @makhnatkin が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
clangd/vscode-clangd#1009 ·