Make a failed send the whole message's answer, with no merged report after it
Mirror / push (push) Has been cancelled
Test / lint (pull_request) Successful in 23s
Test / test (18) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 29s
Test / test (22) (pull_request) Successful in 30s
Test / test (24) (pull_request) Successful in 35s
Test / test (26) (pull_request) Successful in 31s

This commit is contained in:
2026-09-23 23:29:08 +02:00
parent 0ee7bbbaf0
commit e725f62b95
2 changed files with 6 additions and 9 deletions
+2 -7
View File
@@ -202,13 +202,8 @@ and is also what the panel ranked hardest — two methods, one answer.
`broadcast_sm_resp` is declared, set once and read nowhere. This is the "Dormant filters" row
of the 0.4.0 defect table in a new spelling — metadata that reads as a guarantee.
- [ ] **Arm the merge for the segments the SMSC did take, or say why not.** `collectSent()` sets
`failure` if any segment errored, including the `UnansweredError` a mid-send drop produces, and
`session.ts` only calls `dlrMerger.expect(sent.smsIds)` when `!sent.err`. So a link drop during
a multipart send leaves per-segment `dlr` events firing while `messageDlr` never can, traced
only by one `debug` line. `session-extras.test.ts` has the adjacent case — a drop *after* the
send — and not this one. If goal 2 forbids reporting on a message we cannot fully account for,
that is the answer; it is stated in no file today either way.
- [ ] **Test that a multipart send which errors never fires `messageDlr`.** Goal 2 now says so and
README promises it; `session-extras.test.ts` covers a drop *after* the send, not one during it.
- [ ] **Return an `err` where `message` is not a string, rather than throwing.**
`sendSms({ message: undefined })` — a forgotten property — reaches `value.replace()` in