Skip to content

Add operator dispatch pipeline#21

Merged
mdheller merged 2 commits intomainfrom
work/operator-dispatch-pipeline
May 2, 2026
Merged

Add operator dispatch pipeline#21
mdheller merged 2 commits intomainfrom
work/operator-dispatch-pipeline

Conversation

@mdheller
Copy link
Copy Markdown
Contributor

@mdheller mdheller commented May 2, 2026

Summary

Adds the first tested operator dispatch pipeline for AgentTerm.

This PR wires the existing scaffolds together without creating a new authority plane. The pipeline records every input, gate, decision, adapter result, and TUI snapshot source event in the local event log.

It adds:

  • pipeline.py with OperatorDispatchPipeline, DispatchPipelineConfig, and DispatchOutcome.
  • Matrix E2EE posture gate before sensitive context release.
  • Agent Registry identity/tool-grant gates for non-human participants.
  • Policy Fabric admission gate for side-effecting and sensitive events.
  • Adapter selection and fail-closed no-adapter handling.
  • EventStore persistence for the original event plus all gate/result events.
  • TUI snapshot generation after dispatch.
  • Tests for successful dispatch, unknown participant blocking, registered participant flow, policy denial, Matrix E2EE blocking, no-adapter fail-closed behavior, and full sensitive-context allowed flow.

Boundary decisions

  • The pipeline is orchestration only. It does not own Matrix, Agent Registry, Policy Fabric, AgentPlane, cloudshell-fog, or any SourceOS plane authority.
  • Every gate/result is recorded as an event; no hidden decisions.
  • Matrix posture blocks before policy/adapters when sensitive context is unsafe.
  • Agent Registry blocks before policy/adapters for unresolved participants.
  • Policy Fabric blocks before adapter dispatch for side-effecting or sensitive events.
  • Missing adapter is a fail-closed event, not a silent no-op.

Validation

Expected CI:

ruff check .
pytest

Next lane after merge: add a thin operator CLI command for dispatching through the pipeline with configured in-memory/default adapters, then evolve toward live service-backed adapters.

@mdheller mdheller merged commit a25d8b2 into main May 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant