Skip to content

Gated skill: the person who asked never sees the outcome in their chat; the requesting agent's wake-up run carries no channel context #3653

Closed

Description

@obasilakis

Build: v1.0.0-rc3 (15e3502c) · Env: refco · Matrix row: Abilityai/trinity-enterprise#847 A2

What happens

A person asks an agent for an action that needs approval. The approver approves, the action runs and succeeds. The person's chat keeps showing "pending" and is never updated with the outcome.

Steps

  1. As Dana in a Workspace chat with refco-companion: /chase-overdue INV-1001 --request-key rc3-approve
  2. The companion calls refco-ops with /send-payment-reminder INV-1001 --request-key rc3-approve; the skill gate holds it and raises an approval for Sam.
  3. As Sam, approve in the Inbox.
  4. refco-ops runs once and succeeds (file written, metric recorded).

Expected

Dana's chat shows how the request ended.

Actual

Dana's chat ends at the companion's "pending" reply. No further message arrives.

The platform does wake the requesting agent twice ([Trinity] Approved, now running … and [Trinity] Finished successfully …, the #3520 notice), and the companion writes a complete outcome reply each time. Both wake-up runs have no channel context, so the reply is attached to no conversation.

Where

services/skill_gate_service.py, _wake_requester_agent:

await get_task_execution_service().execute_task(
    agent_name=record["source_agent"],
    message=text,
    triggered_by=SKILL_GATE_TRIGGER,
    chain_depth=frozen.get("chain_depth"),
)

No source_channel, source_channel_chat_id, source_channel_thread, source_channel_client or source_user_email is passed, although execute_task accepts all of them. The gate record already holds the run the request came from (requester_execution_id), and that run carries the person's chat.

Evidence

Execution Agent triggered_by source_channel chat id client
BZ_yoOpa5OA0IdaupJJtzg (Dana's message) refco-companion public portal 3338750f… dana@refco.test
w7AaoRGvtmWm50oclDORAQ ("Approved, now running") refco-companion skill_gate NULL NULL NULL
GGjpvYa3ig1A5fhWxkUviA ("Finished successfully") refco-companion skill_gate NULL NULL NULL
  • Gate request gate-37f5246de57aaf7946649a2a217c9b29397b04db: state succeeded, requester_execution_id = BZ_yoOpa5OA0IdaupJJtzg.
  • enterprise_portal_messages for the session: 4 rows, the last one the "pending" reply at 14:01:00Z. The run finished at 14:02:06Z.
  • Response of GGjpvYa3ig1A5fhWxkUviA begins "The payment reminder for INV-1001 was sent successfully."

Scope

Seen with a Workspace (portal) requester. The wake-up call is the same for every channel, so a request that started in Slack or Telegram is expected to behave the same way (not tested). Rejected and expired outcomes use the same wake-up (not yet tested on rc3).

Not verified

Whether passing the originating run's channel fields to execute_task is sufficient for the reply to be written into the Workspace thread, or whether the portal needs an explicit delivery step for a run it did not start.

Related: #3520 (the agent-side completion notice, fixed by #3630).

Activity

  1. obasilakis commented on Oct 13, 2026

    @obasilakis
    ContributorAuthor

    /claim

  2. github-actions commented on Oct 13, 2026

    @github-actions

    Claimed by @obasilakis. Label status-in-progress added.

    Next steps:

    1. Create branch: feature/3653-<short-slug>
    2. Implement the feature
    3. Open a PR with Fixes #3653
  3. obasilakis commented on Oct 13, 2026

    @obasilakis
    ContributorAuthor

    Rejected path, same build (v1.0.0-rc3, refco): Dana's chat again stays on "pending" after Sam rejects with a reason. The requesting agent's wake-up run (8p2g9Pm15SMliVT6AJLMlg, skill_gate, no channel context) received Rejected … Reason given: "customer disputes", and the agent itself then raised an alert to Dana's Inbox (alert-8p2g9Pm15SMliVT6AJLMlg-inv1003-refused, "Payment reminder for INV-1003 refused — customer disputes").

    So on a rejection the person was told, in the Inbox, because the agent chose to raise an alert. On the approved run (GGjpvYa3ig1A5fhWxkUviA) the agent raised nothing, and the person was told nowhere. In neither case does the chat the request was made in show the outcome.

  4. added
    status-in-devMerged to dev, awaiting release cut to main
    and removed on Oct 14, 2026
  5. removed
    status-in-devMerged to dev, awaiting release cut to main
    on Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions