Skip to content

f.human: deliver the question to a channel (Slack / relay), not only the journal #468

Closed

Description

@khaliqgant

#466 makes f.human(question, { to }) park the run on the kernel's wait.human and lets flows answer / Cloud's answer route (AgentWorkforce/cloud#3789) close it. to is recorded with the question (wait.human.requested_of) but never delivered: locally the question appears only in the exit-3 report and the journal; on Cloud only on the run record.

RFC-0001 covenant 3 says the ask must be delivered, not displayed: routed to the human's channels (Slack, WhatsApp, Telegram, iMessage) carrying the evidence, the exact question, and a one-tap answer, while the run parks durably.

Scope:

  • Resolve to against declared tools (e.g. tools: { slack } → f.slack.dm(to, …) at park time, as a journaled helper effect under the root so a resume does not re-send).
  • Carry the flows answer / Cloud answer invocation in the message; on Cloud, a one-tap answer means the channel callback hits POST /api/v1/workflows/runs/<id>/answer and then resumes.
  • timeout on the wait (kernel never reads timeout_at_ms, DESIGN.md §1.4; EVENT-AWAIT.md §8 leans on resolving to false).

Non-goals here: changing the answer contract ({ answer, note?, answeredBy }, kernel-stamped at_ms, attribution: client_asserted).

Raised by review on #466 (thread 4046811231).

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions