Skip to content

Message Bus

Aiur uses a shared topic exchange for durable coordination between tickets, agents, and the Executor.

Topic shape

ScopePatternExample
Ticketticket.<id>.<surface>.<verb>ticket.142.agent.progress
Base branchsystem.<branch>.<surface>.<verb>system.main.branch.push
One segment*ticket.*.branch.push
Any remaining segments#ticket.142.#

Events are signals; consumers follow validated references or correlation fields to the durable source of truth.

Agent events

NameOperator meaning
progress / progress.checkinCurrent completion estimate for the Units progress bar.
progress.<slug>A named milestone inside the ticket.
decision.<slug>A ticket-level decision or design choice.
decision.acknowledgedThe target began applying a durable Executor answer.
decision.resolvedThe target finished the correlated answer.
blockedA named integration point cannot proceed.
unblockedA real dependency or declared temporary stub released work.
attention.<slug>A concrete condition needs Executor attention.
attention.resolvedThe named attention cleared.
pause.requestThe agent asks to pause at a safe checkpoint.
custom.<slug>Ticket-specific coordination outside the standard families.

Tracker and repository events

TopicMeaning
ticket.<id>.branch.pushA validated ticket branch ref and commit changed.
system.<branch>.branch.pushThe integration branch moved.
ticket.<id>.pr.openedThe ticket's pull request opened.
ticket.<id>.pr.mergedThe ticket's pull request merged.
ticket.<id>.issue.commentedA trusted issue comment arrived.
ticket.<id>.pr.review_commentA trusted PR review comment or thread arrived.
ticket.<id>.ci.passedTerminal CI passed.
ticket.<id>.ci.failedTerminal CI failed.

Automatic subscriptions

Agents automatically subscribe to events relevant to their ticket, pull request, base branch, and declared blockers.

SubscriptionWhy it is automatic
Own issue commentsDelivers operator direction.
Own PR reviewsRoutes trusted rework feedback.
Own terminal CIMoves between repair, CI wait, and human review.
Base-branch pushesWarns when the integration target moves.
Blocker lifecycle and branch pushesResumes the dependent ticket on explicit readiness.

Manual aiur_subscribe is for additional watch cases, not for the standard ticket lifecycle.

Manual subscription scope

Every manual aiur_subscribe pattern must start with one literal ticket identifier.

RequestResult
ticket.142.# or ticket.314.branch.pushAccepted; one named ticket.
ticket.*.branch.pushRefused; fleet-wide ticket patterns are out of scope.
executor.* or system.*Refused; control-plane topics are not agent-subscribable.
Bare * or #Refused.

Automatic own-ticket, blocker, CI, review, and base-branch subscriptions are trusted internal wiring and keep their purpose-specific topics. The Executor control-plane subscription under executor.# is distinct from this agent policy.

Dependencies

StepContract
Declareaiur_declare_blocker(N) records the native issue dependency and subscriptions.
PrepareThe blocked agent keeps independent work moving without duplicating blocker-owned code.
PushThe blocker publishes the promised code before announcing readiness.
Signalticket.N.agent.unblocked carries the validated ref and commit.
IntegrateThe dependent agent fetches that exact ref, inspects it, and removes provisional code.

A branch push alone never resumes a dependent ticket. Before the blocker merges, readiness comes from an explicit validated ticket.<id>.agent.unblocked event; reconciling the blocker as merged can also clear the dependency pause.

Commands and decisions

StepDurable correlation
RequestThe Command records an ID and expected version before projection.
AnswerA human or authorized Executor records one correlated action.
DeliveryAiur sends that action to the target.
AcknowledgeThe target repeats the decision ID, action ID, and expected version.
ResolveThe target repeats the same fields after finishing.
ReviseA new action is appended instead of rewriting history.

See Commands for the Executor view.

GitHub observation

SourceEvents it supplies
Repository eventsDefault-branch pushes and opened or merged PRs.
Ticket-branch watchValidated ticket ref changes.
Trusted comment pollingIssue comments, PR comments, reviews, and threads.
CI pollingTerminal results for agent:ci-wait tickets.

See GitHub for polling, rate budgets, and optional webhook setup.

Command macro, delegate micro, maximize APM.