Correct three claims a reader would have built on
Test / lint (pull_request) Successful in 29s
Test / test (18) (pull_request) Successful in 30s
Test / test (20) (pull_request) Successful in 29s
Test / test (22) (pull_request) Successful in 29s
Test / test (24) (pull_request) Successful in 29s
Test / test (26) (pull_request) Successful in 30s
Mirror / push (push) Successful in 5s
Test / lint (pull_request) Successful in 29s
Test / test (18) (pull_request) Successful in 30s
Test / test (20) (pull_request) Successful in 29s
Test / test (22) (pull_request) Successful in 29s
Test / test (24) (pull_request) Successful in 29s
Test / test (26) (pull_request) Successful in 30s
Mirror / push (push) Successful in 5s
This commit was merged in pull request #18.
This commit is contained in:
@@ -189,6 +189,17 @@ and is also what the panel ranked hardest — two methods, one answer.
|
||||
|
||||
### Correctness, ahead of everything below
|
||||
|
||||
- [ ] **Take the maintainer's call on whether goal 2 covers a value we could not send as given.**
|
||||
Goal 2's four clauses are one family — an undeterminable outcome, a non-final report, a
|
||||
re-send, dropped work — and none of them covers *the wire carried a value the caller did not
|
||||
write, and the call reported success*, which is the `NaN` sender, the `sm_length: 0` body and
|
||||
`1e+21`. Items below cite goal 2 for exactly that, and the DLR-merge item concedes it "is
|
||||
stated in no file today either way". Proposed clause, after "…is not dropped": "; a call that
|
||||
reports a message as sent asserts that the wire carried what the caller wrote, so a value we
|
||||
cannot send as given is refused before anything goes out rather than coerced into one the
|
||||
caller never wrote." A goal is the maintainer's, so nothing edits README until that is
|
||||
answered. From the prose pass of #18.
|
||||
|
||||
- [ ] **Answer `alert_notification` and `outbind` by not answering them.** Both are response-less in
|
||||
SMPP 3.4, both fall through `route()`'s default into `unhandled()`, which calls
|
||||
`sendReturn(pduObj, 'ESME_RINVCMDID')`; `pduReturn()` then finds no response command, and the
|
||||
@@ -411,6 +422,18 @@ and is also what the panel ranked hardest — two methods, one answer.
|
||||
creation rule and the FIFO one, which nothing else states, and drop "CI's ten-minute cap" —
|
||||
that number lives in `.gitea/workflows/test.yaml`. Raised by the prose pass, 2026-09-20.
|
||||
|
||||
- [ ] **Leave AGENTS.md hard rule 1 the rule, and the decision log its reasoning.** Rule 1's fourth
|
||||
sentence — "a function whose argument types are a closed set is guarded by the compiler and
|
||||
stays total, which is why the encoding helpers return plainly, and the check belongs at
|
||||
whichever boundary the argument arrives untyped at" — is the reasoning of the
|
||||
`bitCount()`/`encodeMessage()`/`splitMessage()` entry in `docs/decisions.md`, which AGENTS.md's
|
||||
own Documentation section makes a defect: it scopes AGENTS.md to an index of the decisions. It
|
||||
also reads two ways — "wherever the types admit one" as an exemption for a typed field,
|
||||
"the check belongs at whichever boundary the argument arrives untyped at" as a requirement at
|
||||
`sendSms()` — and the `message` `TypeError` item sits exactly between them, so one rewrite
|
||||
settles both. Maintainer's call, since it changes what a hard rule asks. From the prose pass
|
||||
of #18.
|
||||
|
||||
- [ ] **Refuse a delay Node's timers cannot hold, in `checkLimits`.** `idleTimeout`,
|
||||
`reassemblyTimeout`, `responseTimeout` and `shutdownTimeout` take any integer, and `setTimeout`
|
||||
fires after 1 ms for anything above 2147483647 — so a value in the wrong unit gets the inverse
|
||||
|
||||
Reference in New Issue
Block a user