Skip to content

feat: inject_internal_message — public profile-aware injection API (AL17) - #82915

Closed
randlee wants to merge 10000 commits into
NousResearch:mainfrom
randlee:feat/al16-clean
Closed

feat: inject_internal_message — public profile-aware injection API (AL17)#82915
randlee wants to merge 10000 commits into
NousResearch:mainfrom
randlee:feat/al16-clean

Conversation

@randlee

@randlee randlee commented Aug 10, 2026

Copy link
Copy Markdown

AL17 Deployable Hermes Host Contract

fork:   randlee/hermes-agent
branch: feat/al16-clean
SHA:    82b12f91858fefc66bdb33ff16441d86aa9eaba5
tests:  22/22 passed in 0.95s

Evidence

  • Candidate venv built from fork, all dependencies installed
  • 22 tests covering: adapter resolution, structured errors, isolation (queue + steer + active profile), notice_text, gateway_runner hook, steer mode with fallback
  • uv.lock clean — zero diff from upstream main

API

GatewayRunner.inject_internal_message(platform, chat_id, text, notice_text=None, profile="", mode="queue")

Modes

  • mode="queue" (default): MessageEvent(internal=True), queues behind active turns
  • mode="steer": non-interrupting session.steer, falls back to queue

Errors

InjectInternalMessageError(code, chat_id, detail) for unknown profile, missing adapter, profile map empty

Isolation

Queue and steer scoped to target session — no cross-profile delivery

Hook

gateway:startup context includes gateway_runner for plugin access

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

Labels

comp/gateway Gateway runner, session dispatch, delivery duplicate This issue or pull request already exists P3 Low — cosmetic, nice to have sweeper:risk-session-state Sweeper risk: may lose/corrupt/mis-associate session or context state type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.