refactor: remove hyperhive.role option — there is only one role: agent

This commit is contained in:
damocles 2026-06-04 12:40:24 +02:00 committed by mara
commit 41eb3f806c
23 changed files with 105 additions and 229 deletions

View file

@ -198,7 +198,6 @@ trait Surface {
struct AgentSurface;
impl Surface for AgentSurface {
async fn ack_turn(socket: &Path) {
match client::request::<_, AgentResponse>(socket, &AgentRequest::AckTurn).await {
Ok(AgentResponse::Ok) => {}

View file

@ -269,13 +269,7 @@ shared closer
// Real template's first agent line — keeps the renderer
// honest about the {label} / {operator_pronouns} pair the
// harness already relied on.
let rendered = render(
&PRODUCTION_TEMPLATE,
"alice",
"they/them",
None,
None,
);
let rendered = render(&PRODUCTION_TEMPLATE, "alice", "they/them", None, None);
assert!(rendered.contains("hyperhive agent `alice`"));
assert!(rendered.contains("**they/them** pronouns"));
assert!(!rendered.contains("{label}"));
@ -285,13 +279,7 @@ shared closer
#[test]
fn render_no_role_markers_in_output() {
// No raw role markers should survive into the rendered prompt.
let rendered = render(
&PRODUCTION_TEMPLATE,
"alice",
"she/her",
None,
None,
);
let rendered = render(&PRODUCTION_TEMPLATE, "alice", "she/her", None, None);
assert!(!rendered.contains("<!-- role:"));
assert!(!rendered.contains("<!-- /role:"));
// Shared tools appear.
@ -301,13 +289,7 @@ shared closer
#[test]
fn render_uses_agent_opener() {
let rendered = render(
&PRODUCTION_TEMPLATE,
"alice",
"she/her",
None,
None,
);
let rendered = render(&PRODUCTION_TEMPLATE, "alice", "she/her", None, None);
assert!(rendered.starts_with("You are hyperhive agent"));
}
@ -326,13 +308,7 @@ You are hyperhive agent `{label}` (qualified: `{qualified_label}`){hive_identity
#[test]
fn render_substitutes_hive_identity_when_set() {
let rendered = render(
IDENTITY_FIXTURE,
"alice",
"she/her",
Some("pr1ma"),
None,
);
let rendered = render(IDENTITY_FIXTURE, "alice", "she/her", Some("pr1ma"), None);
assert!(rendered.contains("on hive `pr1ma`"), "{rendered}");
// swarm clause stays absent when only hive is set.
assert!(!rendered.contains("in swarm"));

View file

@ -62,7 +62,6 @@ struct AppState {
gui_vnc_port: Option<u16>,
}
/// Bind the per-container web listener and serve the SPA.
///
/// `HIVE_WEB_SOCKET` opt-in selects unix-socket vs TCP binding; the
@ -737,7 +736,11 @@ async fn events_history(
// window is "drop buffered events you've already seen in history",
// never "lose an event that fired between the read and the seq."
// On paginated loads (`before` is set) seq is not needed.
let seq = if is_initial { Some(state.bus.current_seq()) } else { None };
let seq = if is_initial {
Some(state.bus.current_seq())
} else {
None
};
let (events, min_id, has_more) = state.bus.history_page(before, limit);
let mut resp = serde_json::json!({