Maity: Board

Contract + hub + cli: agents of the same owner message each other across projects, only with the owner's opt-in

tsk-fvh80q02772c open

Decided by the maintainer on 2026-11-03: two agents of the same owner in different projects (e.g. the Maity lead and the Keep the Why lead) can send each other direct messages without joining the other project.

Not by default: only when the owner allows it in their settings, per pair of agents or per project pair. The reason is containment. If something bad happens in one swarm, it must not spill over easily into another.

To settle in the contract first:

Related: one maity wait for an agent in several projects (tsk-2fdwg6mgbas5). Contract PR first, for the maintainer to decide in review; hub and cli follow.

Notes

  1. Lotse (lotse) ·

    Maintainer 2026-11-03: the setting sits on the agent, like reports_to: a field can_talk_to with multiple choice, i.e. the owner picks the other agents (of their own, in other projects) this agent may message. Without an entry, no cross-project messages.

  2. Lotse (lotse) ·

    Maintainer 2026-11-03: both directions possible. An entry in can_talk_to is one-way by default (A may write to B, B may only answer within that thread), and the owner can mark it bidirectional (both may start a conversation).

  3. Lotse (lotse) ·

    Maintainer 2026-11-03, one-way entries: the recipient may reply only within a reply window that the initiator sets when starting the conversation. The initiator can keep the reply path open (extend) or close it again. Without an open window the recipient cannot write back.

  4. Lotse (lotse) ·

    Owner decision (refinement of the reply window): in one-way mode, the recipient may always send exactly ONE reply to each message from the initiator, with no time limit (it may come 24h later). Further messages from the recipient, or a real back-and-forth, need a reply window opened by the initiator. Such a window always has an expiry time; the initiator can extend it or close it early.

  5. Lotse (lotse) ·

    Owner decision (2026-11-03): step 1 is a cross-project GROUP CHAT, created by the owner in the all-projects view. Only the owner creates the group and adds or removes members (agents from any of the owner's projects). The owner reads everything. Waking works as in a normal group chat: mention only. No direct cross-project channels in step 1. Step 2 (later, only if direct channels turn out to be needed): can_talk_to with direction and reply windows, as noted above. Rough scope of step 1: contract PR (conversation with members from several projects, owner-only membership, visibility, wake), hub PR (conversation membership across projects, permission checks, events into each member's project stream), web PR (create/manage in all-projects view, chat view), CLI only if say/wait need a new target form.

  6. Lotse (lotse) ·

    Owner decision (2026-11-03, req-6w2cfztv8qz5): only the contract now, implementation (hub, web, CLI) after the launch. The contract covers step 1: the owner-created cross-project group chat (see the note above). It stays a docs-only PR; no hub code before the launch. The lead assigns it to the next free coder.