Problem
Split from protoLabsAI/protoAgent#1702 (the plugin half). st_navigate/st_travel return the arrival as an ISO timestamp, so the agent must diff it against current_time itself — in practice it lowballs, waits ~30s of a ~200s transit, wakes early, and re-waits. On hosts without the core wait-dedup fix each short wait scheduled ANOTHER stacked wake (see the core issue); even with dedup, under-waiting burns iteration budget for nothing.
st_ship already computes arriving in Ns via _eta_seconds — the nav tools should too.
Proposed fix
st_navigate/st_travel (and any tool returning an arrival/cooldown) also return the remaining time in seconds (arriving in Ns), reusing _eta_seconds.
- Append an explicit nudge to the tool output — e.g.
wait(<N>, "...") — so the agent waits the full transit in one call instead of polling.
Acceptance
🤖 Generated with Claude Code
Problem
Split from protoLabsAI/protoAgent#1702 (the plugin half).
st_navigate/st_travelreturn the arrival as an ISO timestamp, so the agent must diff it againstcurrent_timeitself — in practice it lowballs, waits ~30s of a ~200s transit, wakes early, and re-waits. On hosts without the core wait-dedup fix each short wait scheduled ANOTHER stacked wake (see the core issue); even with dedup, under-waiting burns iteration budget for nothing.st_shipalready computesarriving in Nsvia_eta_seconds— the nav tools should too.Proposed fix
st_navigate/st_travel(and any tool returning an arrival/cooldown) also return the remaining time in seconds (arriving in Ns), reusing_eta_seconds.wait(<N>, "...")— so the agent waits the full transit in one call instead of polling.Acceptance
🤖 Generated with Claude Code