Skip to content

Co-seat shared-group Bot outbound still waits for owner Approve #1175

Closed as not planned

Description

@Birfy

Symptom

E2E 2026-10-25 Asia/Shanghai on box FlyBot :3090/:3091 vs prod Social: ordinary shared group with Friend's Bot on the other home.

Human lines from B's Bot path showed Waiting for approval until B clicked Approve; A's outbound to B's Bot also needed Approve. Owner expectation from earlier: once Bots share a live group/room, they should message without separate friendship/Sharing friction (「拉了群就应该都能发消息」).

Related prior work: #1145 co-member messaging; #1122/#1117 Auto-send clears. This may be a remaining blanket outbound / pair Auto-send gap for Friend's Bot seats.

Claim

Claimed by Birfy / bot-im — will implement after #1174 merges unless overlapping.

Activity

  1. self-assigned this
    on Oct 25, 2026
  2. Birfy commented on Oct 25, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Triage

    Re-triaged on main 97065bac: needs-info, because the report describes two very different situations with the same words, and the code distinguishes them:

    • Auto-send is off for that room — then a held line is by design. social.js:176-183 names face_room_auto_send_off as a real per-room switch, :4497 only auto-sends a face line when autoSendFaceLine succeeds, and :4510-4515 refuses unless held.autoSendHold === true. A pair that has never set it reads “Waiting for approval” forever, and the owner's Approve is the feature working.
    • A blanket hold that should have been cleared — autoSendRoomEnvelope clears the blanket mvp.all_outbound_requires_approval hold for a room line (:1825, :1867, :2000), and :181-182 says explicitly that neither outbound path clears face_room_auto_send_off. If the pair is a co-seat in one open room and the room's own Auto-send is on, a card here is a bug — in the clearing path, not in the seat.

    What I need on this issue to decide between them, all of it from the same attempt:

    1. the hold's holdReason and reasons (the face_room_auto_send_off switch versus a blanket reason);
    2. whether the room's own Auto-send switch reads on for the holding Bot, and for the other seat;
    3. which room (roomId) and whether both Bots are current members of that same open room — co-seat versus 1:1 is the axis Send a shared-room leave while the seat is still reachable #1174/Co-seat shared-group Bot outbound still waits for owner Approve #1175 turn on;
    4. whether the same pair, outside any room, also waits — if yes this is the 1:1 path (#948 territory), not the room path.

    With those four answered this becomes either “working as designed, set the room's Auto-send” (and closes) or an agent-ready bug with a named file. Labels: area:social added, because this is Bot Social outbound, not a UI defect.

  3. added
    area:socialFriends, invites, grants, Bot Social
    needs-infoWaiting for the reporter or a maintainer decision
    on Oct 25, 2026
  4. Birfy commented on Oct 28, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Triage

    State unchanged — parked on the label it already carries, because criterion 2 (scope / expected behavior) still does not hold. #1174 closing does not settle it: #1174 closed as pass on 2026-10-25 (1debb12d) and covers sending a room leave while the seat is reachable — membership, not this outbound hold. The report still describes two situations the code tells apart, with the same words:

    • Auto-send off for that room — the hold is the feature working: face_room_auto_send_off is a real per-room switch, a room line is only auto-sent when autoSendFaceLine succeeds, and delivery refuses unless held.autoSendHold === true.
    • A blanket hold that should have cleared — autoSendRoomEnvelope clears the blanket mvp.all_outbound_requires_approval hold for a room line, and states outright that it does not clear face_room_auto_send_off. With the room's own Auto-send on, a card here is a bug in the clearing path, not in the seat.

    What is missing, all of it from one attempt:

    1. the hold's holdReason and reasons;
    2. the room's Auto-send switch as each seat reads it;
    3. the roomId, and whether both Bots are current members of that same open room (co-seat vs 1:1 is the axis);
    4. whether the same pair outside any room also waits — if yes this is the 1:1 path (A ticket-claimed (room-only) Bot cannot send a 1:1 line into the room it shares: the member check runs before the room lookup #948), not the room path.

    Who can give it: whoever ran the E2E (SelfTest on the two-home bench, :3090/:3091) with the same shared-group setup, pasting those four readings here. If the answer is "by design" and the owner wants that default changed, it is an owner call, not a Dev task. With the four answers plus a roomId this becomes either a close ("working as designed, set the room's Auto-send") or an agent-ready bug with a named file.

  5. Birfy commented on Oct 29, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Triage

    卡在判据 1(设计冲突未闭)→ 只留 H(需要 owner 一句话)。昨天要的四项读数(holdReason、两边 Auto-send 开关、roomId/共席、1:1 是否也等)只能分清「按设计在等批」还是「clearing 路径有 bug」;但它们都依赖一个没定的前提,先问 owner 更省事。

    缺什么:两个 Bot 同处一个 open 的 shared group 时,A 的 Bot 发一句给 B 的 Bot,应该——

    1. 直接发出(co-seat 即 auto-send,逐对 Sharing/Approve 不参与),还是
    2. 仍按 per-room / per-pair 开关(房内 Auto-send 关着就等 owner 批)?

    issue 里引的 owner 原话「拉了群就应该都能发消息」只定了「能发」,没定「不经批准」。

    谁能给:owner(经 Chief 转达)——这是 sharing/安全面,Bot 不自己拍。答 1 → 变成 clearing 路径的 bug,带文件转 agent-ready;答 2 → 回到那四项读数,按设计说明或按 clearing bug 处理。

  6. added
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    and removed
    needs-infoWaiting for the reporter or a maintainer decision
    on Oct 29, 2026
  7. Birfy commented on Nov 7, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Chief

    Still one sentence away, and it is a sharing/permission surface, so no Bot decides it. Two Bots that already share one open group: A's Bot sends to B's Bot —

    A it goes out directly (co-seat implies auto-send; the per-pair Sharing/Approve switch plays no part), or
    B it keeps following the per-room / per-pair switch (room Auto-send off means it waits for an approval).

    Answer A turns this into a clearing-path bug with a named file (social.js autoSendRoomEnvelope hold-clearing) and it becomes dev work; answer B means the current behaviour is by design and only the four readings already listed are needed.

  8. Birfy commented on Nov 7, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Chief

    Owner decision 2026-11-07, option B: the current behaviour is by design.

    Two Bots that share one open group keep following the per-room / per-pair switch: with the room's Auto-send off, an outbound line waits for an approval, and that is the feature working, not a hold that failed to clear. Co-seat on its own does not imply auto-send.

    So the four readings the earlier comment listed are not needed, and there is no clearing-path bug to fix. Closing as not planned.

    If the owner later wants co-seat to imply auto-send, that is a new ticket on the sharing surface with the room switch decided up front — open it then, do not reopen this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:socialFriends, invites, grants, Bot SocialbugSomething isn't workingneeds-humanThe agent loop stopped; a person must decide (reason in the last comment)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions