Close the interoperability plan and leave the one open decision on it

This commit is contained in:
2026-09-08 19:45:28 +02:00
parent 079d833ea8
commit 9673af67b6
+12 -1
View File
@@ -250,7 +250,7 @@ defect; each is a claim resting on the specification and on Node rather than on
| 8 | dropped | [Untested](#untested) |
| 9 | done | [09-operator-fixtures.md](findings/09-operator-fixtures.md) |
| 10 | done | Targets 2, 3 and 4 fixed; target 5 answered by the `messagingMode` send option, maintainer's call 2026-09-06 |
| 11 | not started | — |
| 11 | done | Surface judged sound. Its documentation findings and the unmergeable-receipt log line shipped in #94; one item, the typing of `smsIds`, is the maintainer's and is open below |
Phases 1 to 5 were graded before `run.py` learned to fail an empty capture, so a run whose capture
never started would have scored green on the wire checks while its own assertions carried it. Every
@@ -258,6 +258,17 @@ phase has since been re-run under the stricter grading and every one holds: Kann
175, Cloudhopper 88, each with its bind and response decoded and both error counts zero. The zeros
were real.
## Open for the maintainer
**`smsIds` is typed as `string[]` and can hold an empty entry.** An SMSC that names an id for the
first segment of a concatenated message only — Telesign documents exactly that — leaves the rest
empty, so the type promises what the value does not keep. Taking the first id, or building a map
from the array, compiles and then misbehaves, and an empty string collides with another message's in
a correlation table. `(string | undefined)[]` makes the compiler point at the place the mistake
happens; the cost is that every consumer narrows, including the majority whose SMSC always names an
id. Raised by the phase 11 review, 2026-09-08. It is the last thing 1.0.0 locks: after release it
needs a major version.
Research notes behind this plan, 2026-09-05, are in `research/`: SMSC simulators, ESME clients
and validators, and operator quirks with one source URL per claim. Ask before trusting a claim here
that a peer's own docs would settle.