Pin the spent-base cap and state the boundary the merge rule covers

This commit is contained in:
2026-08-30 11:39:09 +02:00
parent 5c797f5383
commit c06eda4582
2 changed files with 8 additions and 3 deletions
+4 -3
View File
@@ -247,9 +247,10 @@ exactly 140.
straggler for a message whose group is gone cannot be told from a receipt for a later message the straggler for a message whose group is gone cannot be told from a receipt for a later message the
peer handed the same ids — an SMSC whose id counter restarts with its process is the realistic peer handed the same ids — an SMSC whose id counter restarts with its process is the realistic
case. `DlrMerger` remembers the bases it has finished with, capped and expiring exactly like the case. `DlrMerger` remembers the bases it has finished with, capped and expiring exactly like the
groups, and refuses to open one a second time. Neither message merges: the later one gets no groups, and refuses to open one a second time: the later message gets no `messageDlr`, and an
`messageDlr`, and an earlier one whose receipts are still arriving is dropped rather than left to earlier one whose receipts are still arriving is dropped rather than left to collect the later
collect the later one's. Every segment still reaches the application as a `dlr`. one's. Every segment still reaches the application as a `dlr`. The rule covers the bases the
merger opened — `expect()` ignores a lone id, so a single-part message never claims one.
- **The TLS tests build their own self-signed certificate in DER** (`test/tls.test.ts`) instead of - **The TLS tests build their own self-signed certificate in DER** (`test/tls.test.ts`) instead of
adding a devDependency or shelling out to openssl. Maintainer's call, 2026-08-26: the dev image adding a devDependency or shelling out to openssl. Maintainer's call, 2026-08-26: the dev image
+4
View File
@@ -1621,6 +1621,10 @@ describe('merged delivery report bounds', () => {
dlrMerger.expect(['reused-1', 'reused-2']); dlrMerger.expect(['reused-1', 'reused-2']);
assert.equal(dlrMerger.size, 0); assert.equal(dlrMerger.size, 0);
dlrMerger.expect(['other-1', 'other-2']);
assert.equal(dlrMerger.size, 1);
}); });
test('keeps another message when a held base is opened again', () => { test('keeps another message when a held base is opened again', () => {