Turn the interoperability plan into the suite's README now that every phase has run

This commit is contained in:
2026-09-09 14:06:34 +02:00
parent 9673af67b6
commit bd466d393a
4 changed files with 120 additions and 281 deletions
+12 -3
View File
@@ -113,9 +113,18 @@ session message is a change to every call site.
- [ ] Create the `@larvit/smpp` package on npm and add `NPM_TOKEN` to the repository secrets, which
`.github/workflows/release.yaml` needs.
- [ ] Run the interoperability plan, [interop-tests/PLAN.md](interop-tests/PLAN.md), and fix or
document what it finds. Its last phase is one product-owner pass over everything those fixes
moved on the public surface, and it runs after the last of them lands.
- [ ] Decide whether `smsIds` should be `(string | undefined)[]`. An SMSC that names an id for the
first segment of a concatenated message only — Telesign documents exactly that — leaves the
rest empty, so `string[]` 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. The cost is that every consumer narrows, including
the majority whose SMSC always names an id. Raised by the phase 11 product review, 2026-09-08.
**This one is 1.0.0-or-never** — after release it needs a major version.
- [ ] `sms.flash` is true only for the 0x10 coding group, never for 0xF0. GSM 03.38 gives 0xF00xF3
as data coding plus message class, where class 0 is immediate display — flash. `encodings.ts`
already reads the 0xF0 group for the alphabet; `sms.ts` does not read it for flash. SMPPSim
observed and recorded it as not-flash (`findings/02-smppsim.md`, C17), so it is measured, not
suspected. Either read the group or say in the README that `flash` means the 0x10 spelling.
- [ ] Tag `v1.0.0` to publish.
- [ ] `npm deprecate larvitsmpp` pointing at `@larvit/smpp`. Maintainer's call to run it; not
something CI should do.