Skip to content

[Bug] ASK has no way to deliver the approver's answer to the Guardian #175

Description

@President

What is broken

ASK pauses a step until an approver answers. The approver answers to the Observed Agent. The spec does not say how that answer gets back to the Guardian.

Where

specification/v0.1.0/ask-details.json, and §6 and §9 of docs/spec/instrument/specification.md

What the specification says, and what happens instead

ask-details.json requires approver, question and timeout_seconds, and offers options. So the Guardian can say:

  • who should answer
  • what is being asked
  • which answers are acceptable

Nothing says how the answer comes back. There is no method for it, and no field to put it in. timeout_seconds and timeout_disposition only cover the case where nobody answers.

In practice the agent can send the step again, with the chosen option somewhere in the payload. The Guardian binds it to the ASK it raised and answers allow or deny. I tested this on top of the Go port (#87) and it works.

The spec gives no name to the field that carries the chosen option. So it only works between one agent and one Guardian.

#14 is the mirror of this on DEFER. There the Guardian side decides, and the agent is the one left without a way to learn the answer.

Impact on implementers

Two implementations that both support ASK cannot work together on it. Each picks its own name for the answer. An agent built against one Guardian will not resolve an ASK raised by another.

ASK is one of the five dispositions §6 makes mandatory, so this affects every conformant pair.

Current Priority Scope

This is deferred or out of scope and I am filing it to be tracked

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

    status:needs-triageNot yet triaged. Applied by the issue formstype:bugSomething isn't working

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions