diff --git a/fleetd/src/main/java/dev/ltms/fleet/msg/MessageService.java b/fleetd/src/main/java/dev/ltms/fleet/msg/MessageService.java index 9ce814d..5dc3e92 100644 --- a/fleetd/src/main/java/dev/ltms/fleet/msg/MessageService.java +++ b/fleetd/src/main/java/dev/ltms/fleet/msg/MessageService.java @@ -94,16 +94,22 @@ public final class MessageService { TIMED_OUT_WORKING, /** * Timed out with no confirmed delivery. Despite the name, this does not mean the message - * is sitting in a queue — on every route it will not arrive later. {@link #send} reaches - * this outcome through {@link Injector#cancel}, whose result tells the routes apart: + * is sitting in a queue. {@link #send} reaches this outcome through {@link Injector#cancel}, + * whose result tells three routes apart: * {@link Injector.Cancellation#CANCELLED} means the message was still queued and this call - * removed it, so the target saw nothing; {@link Injector.Cancellation#NOT_DELIVERED} means - * an earlier attempt already decided the message's fate — the injector's call to the - * target's terminal ({@link dev.ltms.fleet.herdr.AgentControl#send}) threw, or the queue - * was cleared because the target never became ready or was abandoned — and {@code cancel} - * is only reporting that pre-existing state. On the failed-attempt route the terminal may - * already hold a partial paste from before the call threw, so only the {@code CANCELLED} - * case establishes that the target saw nothing. + * removed it, so the target saw nothing and it will not arrive later; + * {@link Injector.Cancellation#NOT_DELIVERED} means nothing was ever sent — the queue was + * cleared because the target never became ready or was abandoned, or the injector's call to + * the target's terminal ({@link dev.ltms.fleet.herdr.AgentControl#send}) failed with a herdr + * error that this codebase already treats as a confirmed absence — so this route too + * establishes that the target saw nothing and it will not arrive later; but + * {@link Injector.Cancellation#ATTEMPTED} (fleetd #551) means that call was made and its + * outcome is unknown. {@code agent.prompt} pastes and submits in one call, so on + * this route the target may hold a complete, already-submitted turn and be working on it + * right now — {@link Outcome#TIMED_OUT_WORKING}'s meaning, reported here as + * {@code TIMED_OUT_QUEUED} only because this caller never observed the pickup. Only + * {@code CANCELLED} and {@code NOT_DELIVERED} establish that the target saw nothing; + * {@code ATTEMPTED} does not. */ TIMED_OUT_QUEUED, /** Another send to this session was in flight for the whole window. */