swarm-controller: add GET /api/agents/{hive}/{name}/term/stream

hive-agent already publishes classified TermMsg rows to the core NATS
subject $SWARM.term.{hive}.{agent} -- live only, no retention, by
design. This endpoint subscribes that subject per request and relays
each row over SSE, opaque to this daemon (no TermMsg dependency, same
pass-through shape crate::status already uses for hive snapshots).

No replay/history: the publish side never grew JetStream retention, and
this route's own job (a live tail) never needed it.
This commit is contained in:
iris 2026-09-13 17:42:32 +02:00 committed by mara
commit 1d902a0992
2 changed files with 103 additions and 0 deletions

View file

@ -50,6 +50,7 @@ mod otel_http_client;
mod read_policy;
mod status;
mod store;
mod term_stream;
mod vcs_metrics;
mod wanted;
mod webhook;
@ -1674,6 +1675,7 @@ fn build_app(state: AppState) -> axum::Router {
.routes(routes!(set_agent_state))
.routes(routes!(matrix_account::put_matrix_account))
.routes(routes!(get_hive_wanted))
.routes(routes!(term_stream::stream_agent_term))
.routes(routes!(issue_report::get_repos))
.routes(routes!(issue_report::get_issue_report_all))
.routes(routes!(issue_report::get_issue_report))