hive-subagent-mcp: trim the running-status liveness clause

The 'Last event Ns ago' line used to repeat the full working-vs-wedged
explanation on every single status call. That's already covered by
the status tool's own MCP description and by docs/tools/subagent.md's
'Is it working, or is it wedged?' section, so restating it every call
was pure repetition on a line meant to be skimmed, possibly several
times a minute. Down to just the number and the state name.
This commit is contained in:
iris 2026-09-20 22:27:55 +02:00
commit 8614cb2613

View file

@ -1630,11 +1630,18 @@ pub fn status(state: &State, name: &str, dir: Option<&str>) -> anyhow::Result<St
}) })
} }
/// The liveness sentence appended to a *running* answer, and the whole point /// The liveness clause appended to a *running* answer, and the whole point
/// of recording the timestamp: an age in seconds a caller can read a verdict /// of recording the timestamp: an age in seconds a caller can read a verdict
/// off directly, rather than one it has to go and measure itself with `ps` /// off directly, rather than one it has to go and measure itself with `ps`
/// and CPU-time deltas. /// and CPU-time deltas.
/// ///
/// Deliberately just the number now — the full "seconds means working,
/// minutes means wedged, resets each turn" explanation used to repeat here
/// on every single call. It already lives in the `status` tool description
/// and in `docs/tools/subagent.md`'s "Is it working, or is it wedged?"
/// section, so restating it in a line meant to be skimmed, possibly several
/// times a minute, was pure repetition.
///
/// Empty when there's no age to report — a turn that ended between `status` /// Empty when there's no age to report — a turn that ended between `status`
/// reading `running` and reading the clock. Saying nothing is right there: /// reading `running` and reading the clock. Saying nothing is right there:
/// the alternative is an age that describes a turn which has already /// the alternative is an age that describes a turn which has already
@ -1642,13 +1649,7 @@ pub fn status(state: &State, name: &str, dir: Option<&str>) -> anyhow::Result<St
fn describe_liveness(age: Option<Duration>) -> String { fn describe_liveness(age: Option<Duration>) -> String {
match age { match age {
None => String::new(), None => String::new(),
Some(age) => format!( Some(age) => format!(" Last event {}s ago.", age.as_secs()),
" Last event {}s ago — how long since this turn's claude process produced any output \
at all, whatever it was: a few seconds means it's working, an age that keeps \
climbing into the minutes means it's wedged. It resets at each turn's spawn, so on a \
goal run it describes the turn in flight, not the run.",
age.as_secs()
),
} }
} }