Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

A held private-share for a tool write (Gmail reply) never shows a card, and retries can't be approved

Đang mở
#889 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
typescript
Lĩnh vực
authentication, backend

Hướng nghiên cứu

Start with server/src/plugins/plugin-store/calls.ts and server/src/proactive/private-share.ts, then inspect how GET /api/approvals and conversation approval cards are implemented. Trace how a held GMAIL_REPLY_TO_THREAD call is resumed after approval and how its contentDigest is checked. Done means the pending share appears in the thread, approval resumes the exact approved call, and the Bot receives a clear reason to wait instead of retrying.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

What happens

A Bot replying to an email with Composio's GMAIL_REPLY_TO_THREAD is held as a private-information share (server/src/plugins/plugin-store/calls.ts, privateShareCheck, decided in server/src/proactive/private-share.ts). The pending request is created (openbot/share_private_information, scope external:composio-gmail/GMAIL_REPLY_TO_THREAD) and shows up in GET /api/approvals, but no approval card appears in the conversation. The Bot reports "waiting for send approval" and stops.

Approving the request afterwards does not help. The approval is bound to the exact content (contentDigest), and each time the Bot tries again it words the reply slightly differently. The new attempt opens a new pending request, or is refused outright:

mcp.call_rejected  GMAIL_REPLY_TO_THREAD  refusal: private_share_pending
... approval.person_decided (allow_once) x4 ...
mcp.call_rejected  GMAIL_REPLY_TO_THREAD  refusal: private_share_denied

The only way to get a Bot reply out reliably is a standing "Always allow" rule for that Bot, tool and scope.

Reproduce

  1. Grant a built-in Bot GMAIL_REPLY_TO_THREAD and connect Gmail.
  2. Ask it to reply to an email.
  3. No card appears; the request sits in /api/approvals. Approve it; the Bot's next attempt is a new request.

Suggested fix

  • Render the pending share in the thread as a card (recipient, a preview of the content, Allow once, Always allow, Don't), like other approvals.
  • On approval, resume the suspended call with the exact content that was approved, rather than relying on the Bot to send identical text again.
  • Make the denial sentence the Bot receives say why ("waiting for the person's permission; it will run when they allow it"), so the Bot does not retry with new text.
Ngôn ngữ chính
TypeScript
Star
7.1k
Fork
962
Merge trung bình
1 ngày 6 giờ
Pull request đã merge (30 ngày)
143

Chuẩn bị môi trường

  • Có Dockerfile hoặc tệp Docker Compose
  • Có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của CopilotKit/OpenBot

Tất cả issue của CopilotKit/OpenBot

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.