Skip to content

Expose atomic session-event admission to integrations #2756

Description

@yjjoeathome-byte

External routing integrations sometimes need to know, before a user message is
persisted, whether the runner will open a new turn, steer the active turn, or
buffer the message for the next turn. Omnigent already makes that decision
atomically inside its per-session FIFO gate, but the public server surface does
not expose the decision to REQUEST policies or callbacks.

I propose a narrow, experimental opt-in seam:

  • the runner reserves its existing decision and returns an opaque admission ID,
    monotonic input sequence, disposition, stable lineage ID, and active response
    ID;
  • an optional public app-factory admitter selects which sessions use the seam;
  • REQUEST policy receives the frozen admission data before persistence;
  • ALLOW consumes the reservation exactly once, while DENY, timeout, or
    disconnect cancels it; and
  • the opt-in acknowledgement and callback expose the same correlation joined
    to the persisted item ID.

The default remains fully stock: no extra runner call, response field, timing
change, persistence, or migration. A selected session fails closed if admission
is unavailable rather than silently running without correlation.

The prototype includes race coverage for concurrent idle inputs, live steering,
buffered continuation ordering, cancellation and TTL, duplicate or foreign
consumption, fork and resume isolation, and a zero-call control path.

Metadata

Metadata

Assignees

Labels

FeatureNew feature or requestP2-mediumPriority: bug with workaround, important feature requestcomp:policiesComponent: safety policies, guardrailscomp:runnerComponent: agent runner, execution enginecomp:serverComponent: server, API, session managementtriagedIssue has been triaged by the bot

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions