From 877136aa616712ed6bf19c4c1c5a568f067083f1 Mon Sep 17 00:00:00 2001 From: kami Date: Fri, 3 Jul 2026 13:07:53 +0200 Subject: [PATCH] spec: item 2 clarify ErrNoSession gap vs store.Away routing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dispatcher already routes sev4-away → telegram. The gap is purely the runtime ErrNoSession fallthrough in voicesink.go. Points agent at the existing TODO, tells it to converge not duplicate. --- SPEC.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/SPEC.md b/SPEC.md index 8c66f7e..554d9f4 100644 --- a/SPEC.md +++ b/SPEC.md @@ -188,6 +188,13 @@ sev3 nudge lands on ntfy, sev4 on telegram-repeat-til-ack, sev1–2 drops silently. Existing delivery test patterns in `internal/delivery/` show the shape. +Note: the `store.Away` routing path is already built and tested +(`TestDispatchNudgeOpsHardAwayTelegramRepeatUntilAck` passes). The gap is +the **runtime** `ErrNoSession` path — when the dispatcher chose voice +(severity table said voice was available) but no session is live at push +time. `voicesink.go:62` has a TODO for this. Wire the fallthrough onto the +same routing table the Away path uses; converge, don't duplicate. + --- ### 3. CalDAV poller (`cmd/mavcaldav`)