Commit Graph

  • 1c0b4bef34 Tick off the 0.5.0 cleanup in todo.md, and decline a token expiry check main lilleman 2026-09-14 21:19:17 +02:00
  • c5adfd8e39 Say what the mirror's concurrency group does, and name every way a stale ref survives lilleman 2026-09-14 20:54:04 +02:00
  • 14b114afda Split the GitHub mirror so Gitea creates its runs and no delete is dropped lilleman 2026-09-14 20:38:46 +02:00
  • 27e8f288ec Mirror every branch and tag to GitHub from CI, keeping what only GitHub has lilleman 2026-09-14 19:36:44 +02:00
  • e1999a7305 Let a registered encoding claim a data_coding a built-in already uses, in todo.md lilleman 2026-09-14 20:38:02 +02:00
  • baa0ad553a Set failover's options, and decide to test on Linux only while keeping macOS and Windows unbroken lilleman 2026-09-14 17:26:46 +02:00
  • e32f9ccf46 Plan failover, an optional store for pooling and restarts, shipping src, and Gitea runners for macOS and Windows lilleman 2026-09-14 17:08:54 +02:00
  • b3cbbba615 Record the gaps found against other SMPP libraries, and make configurable and extendable a goal lilleman 2026-09-14 16:32:23 +02:00
  • 95e1f910a3 Track the peer's address on every log message in todo.md, and keep Renovate's dashboard open lilleman 2026-09-14 15:04:12 +02:00
  • 0f14ca85c2 Plan 0.5.0 in todo.md, holding the GitHub work until it is published v0.5.0 lilleman 2026-09-14 14:09:58 +02:00
  • e8558aa471 Release as 0.5.0, and file issues on the GitHub mirror lilleman 2026-09-14 14:09:58 +02:00
  • 773db43305 Record the move to Gitea and the GitHub retirement in todo.md lilleman 2026-09-13 17:57:10 +02:00
  • 793839d0e0 Point the package and README at Gitea lilleman 2026-09-13 17:57:10 +02:00
  • 68cd8e3f31 Run CI, releases and Renovate on Gitea lilleman 2026-09-13 17:57:10 +02:00
  • 8315f1882a Keep todo.md, and plan the backlog close-out and the move to Gitea in it lilleman 2026-09-13 16:31:07 +02:00
  • 311ee7c677 Name the branches as the rename leaves them lilleman 2026-09-13 16:31:07 +02:00
  • e3062066c1 Pin the Node version the lint and release jobs run on lilleman 2026-09-13 16:30:58 +02:00
  • 7310634d7d Rewrite the README task-first for 1.0.0 and move the 0.4.0 guide to MIGRATION.md (#102) lilleman 2026-09-13 12:05:13 +02:00
  • 549b3260c9 Record the smsIds decision under the surface it changes lilleman 2026-09-12 22:41:02 +02:00
  • 13e3ff8f1f Say undefined where the SMSC named no id for a segment it took (#101) lilleman 2026-09-12 22:37:55 +02:00
  • ca1a7473ed Declare the alphabet a GSM message is actually written in (#100) lilleman 2026-09-09 21:30:55 +02:00
  • 989eb01763 Name the refusal rule, and refuse a period the encoder cannot spell (#99) lilleman 2026-09-09 20:36:13 +02:00
  • ef13290230 Refuse a body the PDU's own data_coding cannot carry (#98) lilleman 2026-09-09 19:33:36 +02:00
  • c06cc0648b Refuse what we cannot send: an alphabet that cannot carry the message, and a time nobody can read (#97) lilleman 2026-09-09 18:16:08 +02:00
  • cced03767e Cover a multi-segment Latin-1 message against a real peer, and correct the flash row it left stale lilleman 2026-09-09 17:26:40 +02:00
  • 7d6039796d Fit every concatenated segment in an SMS, and close the encoding helpers' throw (#96) lilleman 2026-09-09 17:21:51 +02:00
  • ff6ba9f825 Assert 0xF0 is flash, now that it is read as the spec puts it lilleman 2026-09-09 16:43:39 +02:00
  • e80b07167c Read the GSM 03.38 message class where the spec puts it (#95) lilleman 2026-09-09 16:40:32 +02:00
  • bd466d393a Turn the interoperability plan into the suite's README now that every phase has run lilleman 2026-09-09 14:06:34 +02:00
  • 9673af67b6 Close the interoperability plan and leave the one open decision on it lilleman 2026-09-08 19:45:28 +02:00
  • 079d833ea8 Fix what the product-owner pass found in the README, and log an unmergeable receipt (#94) lilleman 2026-09-08 19:43:23 +02:00
  • 7937534677 Close the scope decision and add the last two questions for the product-owner pass lilleman 2026-09-08 18:58:46 +02:00
  • 5a0cf56754 Fixtures for the receipt bodies operator documentation publishes (#93) lilleman 2026-09-08 18:56:57 +02:00
  • 83176f53b0 Let sendSms() name the esm_class messaging mode (#92) lilleman 2026-09-08 17:30:20 +02:00
  • 5e53fad802 Run the load generators against our server: the window holds, memory returns to baseline, no defects lilleman 2026-09-06 22:25:29 +02:00
  • a7f3ea70d7 Run python-smpplib and php-smpp against our server: encodings and bind direction hold, no defects lilleman 2026-09-06 22:15:20 +02:00
  • ab93833cee Drop the hosted simulators and name what goes untested with them lilleman 2026-09-06 21:46:43 +02:00
  • ffda0e9c98 Record the Jasmin re-run that the deadlock fix made pass lilleman 2026-09-06 21:05:03 +02:00
  • 18de565aad Reassemble a concatenated message segmented with the sar_* TLVs (#91) lilleman 2026-09-06 21:03:14 +02:00
  • 061c1871bd Record that every phase holds under the stricter capture check lilleman 2026-09-06 19:50:58 +02:00
  • 30eedc81ee Let a signal abort a send queued behind a full send window (#90) lilleman 2026-09-06 18:17:01 +02:00
  • 0a7c491e55 Say what the capture check really requires, and what it cannot express yet lilleman 2026-09-06 18:03:55 +02:00
  • 039951e69b Refuse a PDU whose optional parameters do not end on command_length (#87) lilleman 2026-09-06 18:01:35 +02:00
  • c89005168d Note which phases need re-grading under the stricter capture check lilleman 2026-09-06 17:41:40 +02:00
  • 9a312e5126 Harden the interop capture analysis and smppsim capture readiness (#89) lilleman 2026-09-06 17:38:14 +02:00
  • ad094b3897 Record the two version-gate asks left open on the rewrite PR lilleman 2026-09-06 17:26:44 +02:00
  • d21df7c04b Plan one product-owner pass over the surface the interoperability fixes moved lilleman 2026-09-06 17:24:41 +02:00
  • c22dce53cf Tighten release tag glob, pin runner and action versions, skip main on push, add Node 26 (#88) lilleman 2026-09-06 17:22:43 +02:00
  • bcbb042c1b Give server() consumers the onRequest hook the docs promise (#86) lilleman 2026-09-06 17:20:45 +02:00
  • 0d1da1dc87 Run jsmpp and Cloudhopper against our server: sar_* fragmentation confirmed and a truncated TLV tail silently accepted lilleman 2026-09-06 07:00:45 +02:00
  • 4194816d6b Document answeredOnArrival for client receivers and onRequest refusal (#85) lilleman 2026-09-06 06:30:18 +02:00
  • 184d1dc7af Read a body from message_payload and accept data_sm (#84) lilleman 2026-09-06 05:59:27 +02:00
  • 5b7b563dc2 Answer every segment of an inbound concatenated message as it arrives (#83) lilleman 2026-09-06 04:16:11 +02:00
  • 66b49ebfb3 Run Jasmin in both directions: message_payload, data_sm and a multipart deadlock confirmed against a production gateway lilleman 2026-09-06 02:24:32 +02:00
  • db02f0058d Tell a refused PDU apart from a session that failed (#82) lilleman 2026-09-05 23:16:59 +02:00
  • afe188eecd Retry the first connect and bind on reconnect fromStart (#80) lilleman 2026-09-05 22:47:06 +02:00
  • 45d2f5548e Read a delivery receipt's body as the octets that arrived (#81) lilleman 2026-09-05 22:37:05 +02:00
  • ea42bc6d20 Refuse a single unreadable PDU instead of the whole link (#79) lilleman 2026-09-05 21:00:52 +02:00
  • fec4fda082 Run SMPPSim 2.6.11 as the SMSC with nine fault-injection variants: 25 scenarios pass, two defects recorded lilleman 2026-09-05 20:08:39 +02:00
  • 05ea90afeb Run Kannel 1.4.5 as the ESME against our server: 21 scenarios pass, no defects found lilleman 2026-09-05 20:03:58 +02:00
  • 9c4939f5cf Fix every defect a phase finds before the next phase runs lilleman 2026-09-05 18:48:57 +02:00
  • 1723a0381c Add the interoperability harness and the smscsim experiment, which confirms the one-bad-PDU link drop lilleman 2026-09-05 18:40:56 +02:00
  • 7d855cfa5d Set the conventions the interoperability experiments run and record under lilleman 2026-09-05 17:53:33 +02:00
  • 8a565cf557 Plan the interoperability tests against real-world SMPP peers before 1.0.0 lilleman 2026-09-05 17:31:02 +02:00
  • 9ca83ac05c Order the README by what a first read needs, and drop the pre-release notice lilleman 2026-09-04 11:59:05 +02:00
  • 2e422c7584 Contain a throw from the application's logger instead of letting it escape lilleman 2026-09-04 11:33:20 +02:00
  • 80530c6265 Ignore a delivery receipt for a part the send never registered lilleman 2026-09-04 11:33:17 +02:00
  • 8c46e925a1 Record the branch renames: master to v0.4.0, typescript to main as default lilleman 2026-09-04 11:16:54 +02:00
  • 4d91240e62 Merge pull request #78 from larvit/intermediate-delivery-reports lilleman 2026-09-04 10:47:50 +02:00
  • 8717cedfb6 Merge pull request #76 from larvit/hold-until-answered lilleman 2026-09-04 10:43:44 +02:00
  • 144567c294 Claim an error only where the state failed, and freeze the two state lists lilleman 2026-09-04 08:51:13 +02:00
  • 54493c12b2 Write a transient state as an intermediate delivery notification lilleman 2026-09-04 08:38:29 +02:00
  • 2936c7060d Justify the state test by what peers write, not by what this library happens to write lilleman 2026-09-03 21:17:39 +02:00
  • e28b219a4f Record that message_state 0 is read as the transient state 5.0 names it lilleman 2026-09-03 21:05:40 +02:00
  • fa40bb486c Re-wrap the decision paragraphs and cut the narration from the finality record lilleman 2026-09-03 19:39:53 +02:00
  • 42e6e97447 Read a receipt reporting a transient state as non-final too, so the merge waits for the real one lilleman 2026-09-03 19:28:08 +02:00
  • dd458bfa53 Say only what the SMSC marked, and trim the comments the review found redundant lilleman 2026-09-03 19:16:13 +02:00
  • 50679ec2fe Read an intermediate delivery notification as a report, and keep it out of the merge lilleman 2026-09-03 17:30:09 +02:00
  • 94184a9c63 Re-wrap the shutdown paragraph and leave the throw-versus-rejection note in one place lilleman 2026-09-02 12:40:51 +02:00
  • 0d30864886 Say in goal 7 that the scope floor covers the seam too, and decline merge-state persistence lilleman 2026-09-02 12:36:06 +02:00
  • 3eeb0b82c0 Give a message up only once every listener has, and only count a response the wire took lilleman 2026-09-02 12:36:01 +02:00
  • 3aadb64df8 Release a message's hold when the response goes out, or when its listener failed lilleman 2026-09-02 08:15:26 +02:00
  • 6cb186d38a Merge pull request #75 from larvit/receipt-field-separators lilleman 2026-09-01 22:15:04 +02:00
  • 66fac3768d Merge remote-tracking branch 'origin/typescript' into receipt-field-separators lilleman 2026-09-01 22:14:00 +02:00
  • 8de65fd0e4 Merge pull request #74 from larvit/answer-without-a-link lilleman 2026-09-01 22:13:37 +02:00
  • f10c8e58cb Read a valueless count as unstated, and pin a CRLF receipt end to end lilleman 2026-09-01 21:48:07 +02:00
  • 0fd6da1542 Separate a receipt's fields on any whitespace, not only a space lilleman 2026-09-01 21:37:19 +02:00
  • 471923a7b6 Log the dropped request, and scope the receipt sentence to a reconnect lilleman 2026-09-01 20:53:58 +02:00
  • e6250ef44e Drop a request whose link went while onRequest ran, and pin the wire in the test lilleman 2026-09-01 20:40:17 +02:00
  • c8d265d5fa Tie the refusal to the link, not to the hold, so a released message is refused too lilleman 2026-09-01 20:25:57 +02:00
  • 82a95593bd Refuse to answer a message whose link went, instead of reporting it delivered lilleman 2026-09-01 19:16:21 +02:00
  • a91c55cc64 Merge pull request #72 from larvit/sms-id-format lilleman 2026-09-01 18:20:09 +02:00
  • 8a8d6faccf Merge pull request #73 from larvit/reconnect-by-default lilleman 2026-09-01 18:19:19 +02:00
  • f0327044b1 Cover the receipt refusal and the sweep that wakes a drain lilleman 2026-09-01 18:13:35 +02:00
  • 042a62be97 Sweep held messages before each hold, so expiry needs no live timer lilleman 2026-09-01 18:02:15 +02:00
  • 61985fb914 Say what a peer did with each receipt segment, and leave no drop unlogged lilleman 2026-09-01 17:59:37 +02:00
  • 67c0402def Bound the messages held for a shutdown, and report a partial receipt lilleman 2026-09-01 17:42:22 +02:00
  • 1e7e113bd7 Put a receipt's segments on the wire together, like a message's lilleman 2026-09-01 17:03:33 +02:00
  • 8becbc0ab6 Give the gate, the window and the pending map one owner lilleman 2026-09-01 16:52:15 +02:00
  • 3bcea108e3 Wait out the messages the application holds before shutting a session down lilleman 2026-09-01 13:58:28 +02:00