be0f2c33c9
Amend plan 3: a file keeps its export's name until the export is renamed
lilleman2026-09-30 20:35:46 +02:00
bf1bddba3b
Name files for what they export, and move the session files into session/
lilleman2026-09-30 20:33:13 +02:00
92479d697d
Record the layered src decision and the pdu-to-message edge
lilleman2026-09-30 20:21:59 +02:00
980e9d4569
Move src into codec, protocol, messages, session, client and server
lilleman2026-09-30 20:15:04 +02:00
108eb1e5b2
Record the answers to plan 3's public API questions
main
lilleman2026-09-30 16:58:20 +02:00
d9da3cebab
Amend plan 3 with its architecture review
lilleman2026-09-30 15:12:09 +02:00
576b713af4
Plan the comprehension rewrite and file its background
lilleman2026-09-30 12:04:56 +02:00
1b075bf5d2
Give the held-message flow one owner
lilleman2026-09-29 18:43:44 +02:00
57f53d56f1
Give the link's liveness one owner
lilleman2026-09-28 21:55:46 +02:00
8721491cd5
Drop the store operator from the README's personas until the store ships
lilleman2026-09-28 21:05:05 +02:00
fd3b08435a
Hand IncomingRequests the session in place of sixteen closures
lilleman2026-09-28 18:53:20 +02:00
0bea36c069
Give the held-message flow one place a reader can follow it
lilleman2026-09-28 10:54:55 +02:00
1aadcbe3c9
Name what each of the three request paths skips
lilleman2026-09-28 10:42:18 +02:00
469a91b9bb
File the two spellings of a bind command
lilleman2026-09-28 10:16:25 +02:00
e4ff71a86b
Tie the bind-state decision to its goal, and drop what MIGRATION holds
lilleman2026-09-28 04:11:55 +02:00
3f736ff440
Quote a string connectTimeout through quoted() too
lilleman2026-09-28 04:11:23 +02:00
80dc263915
Name strict-mode code as where a getter-only assignment throws
lilleman2026-09-28 04:09:40 +02:00
2142c2e3bb
Spell out the hand-wired ESME's bind, and where a getter-only assignment throws
lilleman2026-09-28 04:08:53 +02:00
4bdb1e64b0
Take bound()'s bind type as a string, name the fix in its refusals, and show the ESME's spelling
lilleman2026-09-28 04:07:44 +02:00
9eebd42887
Test that bound() takes a bind type as a string and names the fix for a wrong one
lilleman2026-09-28 04:07:02 +02:00
9a07f75bdf
Refuse a bind the server cannot record as it refuses one authenticate turns down
lilleman2026-09-28 04:05:07 +02:00
2ac72fb3f4
Refuse a bind bound() cannot record, and document it for a 0.4.0 consumer
lilleman2026-09-28 04:01:51 +02:00
3cc38325cc
Test that bound() refuses a bind type or version it cannot record
lilleman2026-09-28 04:00:13 +02:00
b70f0d6ade
Let the session own its bind state, written by bound() alone
lilleman2026-09-28 03:55:40 +02:00
ebc5db5a00
Test that the session owns its bind state and keeps it through a reconnect's gap
lilleman2026-09-28 03:55:40 +02:00
b0b7404477
Name the session-options hooks that import Session
lilleman2026-09-28 02:40:13 +02:00
c32c1bc65b
Name the session's lifecycle state and the invariant that keeps ended final
lilleman2026-09-28 02:39:49 +02:00
20aa2828c2
Fold the session's closed and ended flags into one link state, and split Locality by the scoring run
lilleman2026-09-28 02:36:32 +02:00
af29846544
Reflow the Self-sufficiency item
lilleman2026-09-28 02:10:02 +02:00
65fadfc93a
Narrow CodingSource to the two bodies, and file Locality's remaining work
lilleman2026-09-28 02:09:42 +02:00
2a6df3ffe2
Name which body settles data_coding in resolveBody
lilleman2026-09-28 02:02:53 +02:00
30245bda21
Move the gate's teardown invariant to retrying()
lilleman2026-09-28 01:50:33 +02:00
5e132977f4
Reflow the gate decision after the rename
lilleman2026-09-28 01:48:32 +02:00
669cbde9d0
Drop carry()'s misstated exit line
lilleman2026-09-28 01:48:02 +02:00
696562daec
Name carry()'s retry condition and what ends its loop
lilleman2026-09-28 01:45:31 +02:00
bfd0ed1b98
Say only what canCarry() and droppedWhileDraining() can know
lilleman2026-09-28 01:34:55 +02:00
8d443bf670
Split linkDown() into canCarry() and droppedWhileDraining()
lilleman2026-09-28 01:31:39 +02:00
1371137fef
Branch once on a dest_address's kind when sizing it
lilleman2026-09-28 01:25:31 +02:00
809acd487e
Size the address arrays' C-Octet Strings through cstring.size()
lilleman2026-09-28 01:22:54 +02:00
acad60c889
Say what ExpiringGroups leaves to its owners
lilleman2026-09-28 01:16:06 +02:00
b1a4201a7d
Record a group's weight through weigh() alone
lilleman2026-09-28 01:13:51 +02:00
7117c91eab
Assert a replaced held message leaves its octets with it
lilleman2026-09-28 01:13:51 +02:00
91c155175f
Derive the retained octets from ExpiringGroups' weight
lilleman2026-09-28 01:09:12 +02:00
0b9b210fb2
Keep a hold's release behind MessageHold, and require its listener count
lilleman2026-09-28 01:03:15 +02:00
9dda1a6917
Release a held message through the hold it was given
lilleman2026-09-28 01:02:43 +02:00
bd1284b661
Give the held-message protocol one home in MessageHold
lilleman2026-09-28 00:59:38 +02:00
76c6783317
Route sms.ts through its handlers, all of it
lilleman2026-09-28 00:54:01 +02:00
4031cfadf1
Stub the handlers an Sms answers and receipts through
lilleman2026-09-28 00:52:39 +02:00
efb59b6cff
Pin only the unbind ordering, type peerUnbound, and drop what the port made stale
lilleman2026-09-28 00:43:26 +02:00
b2183ea30e
Give IncomingRequests a port instead of the Session it drives
lilleman2026-09-28 00:38:41 +02:00
b90c2647be
Record the TLV keying decision as the maintainer's
lilleman2026-09-27 23:48:05 +02:00
b9f278b0b0
Open every todo item with a bold one-sentence tagline
lilleman2026-09-27 23:37:38 +02:00
ac9cb40d69
Reflow the under-floor decision
lilleman2026-09-27 16:41:53 +02:00
9724dd1751
Record #30 merging under the comprehension floor, and put Locality first in 0.6.0
lilleman2026-09-27 16:41:47 +02:00
dd09a27dc6
Export isTlvName, so a string can be narrowed into tlvs
lilleman2026-09-27 15:39:43 +02:00
4094949917
Say tlvs is typed by TlvName
lilleman2026-09-27 15:38:17 +02:00
ac6206dfec
Type tlvs by its own names, so a dropped alternate fails to compile
lilleman2026-09-27 15:38:09 +02:00
9fb8f348c8
Drop the alternate TLV names from tlvs, correct the false doc claims the prose pass found, and file the moves
lilleman2026-09-27 15:36:56 +02:00
01891bc764
Word a disagreeing tagId as a mismatch, and record how a TLV input is keyed
lilleman2026-09-27 15:33:35 +02:00
9379212c68
Read an undefined tagId as absent
lilleman2026-09-27 15:31:21 +02:00
cda8e9b112
Relay a parsed PDU's TLVs as they are, refuse only a tagId that disagrees with its key, and refuse a number for an octet TLV
lilleman2026-09-27 15:29:31 +02:00
58e622143b
Drop an assertion that always passes, and reflow a decision
lilleman2026-09-27 15:27:25 +02:00
138464ad0f
Refuse a TLV input that is no { tagValue }, and the alternate tag names, keep numbers out of octet TLVs, and pin that a TLV is copied off its chunk
lilleman2026-09-27 15:25:49 +02:00
c4b0437323
Read a named tag's definition once in tagIdOf()
lilleman2026-09-27 15:18:49 +02:00
939eda7269
Key a TLV input like the read side, drop tagId, copy TLV octets at parse, and export only Tlvs, TlvInputs and Tlv
lilleman2026-09-27 15:18:08 +02:00
75d4794522
Type each known TLV's value by its tag, on read and on write
lilleman2026-09-27 15:12:09 +02:00
42b1239f3d
Name the retry status by direction, and correct what the held-message decision claims
lilleman2026-09-26 14:53:09 +02:00
f2977638f2
Stop refusing only once the held messages are down to half, so a full window warns once, and name the octets in the warning
lilleman2026-09-26 14:44:00 +02:00
b9167073d4
Warn once at the held-message bound, tell receivers sendResp() is what releases a message, and pin that a refused segment joins no group
lilleman2026-09-26 14:41:10 +02:00
fb6b125aab
Give the dumbclient peers a namespace owner that outlives them, count window 2000's throttled messages, and correct what the findings blamed on the peer
lilleman2026-09-26 14:37:20 +02:00
855ccbe75f
Refuse a message past the held-message bound with ESME_RTHROTTLED, and answer a full reassembly buffer the same way
lilleman2026-09-26 13:18:56 +02:00
d8232bcd67
Split the held-message bounds and the shutdownTimeout fallback into decisions of their own, and drop what code and README say
lilleman2026-09-25 19:32:59 +02:00
dba95d9524
Test the held octet accounting and the detach through a session, and file the application-held gap
lilleman2026-09-25 19:28:08 +02:00
c3ebd6d6bc
Cap the heap unanswered messages hold, and detach them from the chunk they arrived in
lilleman2026-09-25 19:22:31 +02:00
d8d0947e1f
Drop an edge-false fraction from the changelog
lilleman2026-09-25 19:07:11 +02:00
72b400e661
Name the per-occurrence charge exactly
lilleman2026-09-25 19:06:20 +02:00
f1ef6b6643
State the octet cap's charge as a rule a consumer can size with
lilleman2026-09-25 19:05:48 +02:00
fd6ce16325
Drop a false multiple from the changelog, and name the new per-segment charge
lilleman2026-09-25 19:04:28 +02:00
f9c53aa576
Charge each held segment for its objects, at the measured cost, and file the held-message gap
lilleman2026-09-25 19:02:07 +02:00
92456b6f6e
Charge every TLV a held segment carries against the reassembly cap
lilleman2026-09-25 18:57:10 +02:00
01210e734a
Correct the doc claims the prose pass found, and move two decisions into the log
lilleman2026-09-24 00:31:49 +02:00
e83ed1451c
Have the typed-TLV item prove the changelog's advice compiles
lilleman2026-09-24 00:28:47 +02:00
11ff349333
Lead the changelog with the read-side break, and show each repeatable TLV's shape
lilleman2026-09-24 00:27:01 +02:00
f2ee8aa016
Drop a false claim about the server's answers, and file what the panel found
lilleman2026-09-24 00:24:49 +02:00
2476684f24
Charge each listed TLV occurrence against the reassembly cap, and file the unknown-tag gap
lilleman2026-09-24 00:24:35 +02:00
a885913ecb
Link AGENTS.md absolutely, as npm renders the README
lilleman2026-09-24 00:19:28 +02:00
befa648991
Point goal 1 at the defect table where it lives
lilleman2026-09-24 00:19:23 +02:00
cbfd6e0fbe
Count ten goals, and point at where the hard rules live
lilleman2026-09-24 00:19:19 +02:00
5cdd3ccdae
Say tlvs.ts reads a TLV stream too
lilleman2026-09-24 00:18:13 +02:00
f6a66336cd
Count and detach a repeatable TLV's occurrences in reassembly, and let only byte or integer tags repeat
lilleman2026-09-24 00:17:19 +02:00
10877c9f5f
Read every occurrence of a repeatable TLV, and drop the unread tlvMap
lilleman2026-09-24 00:13:38 +02:00
c5ef4c4703
Pin that maxOctets refuses Infinity, and say refuse where the changelog said drop
lilleman2026-09-24 00:06:22 +02:00
80f77afa0f
Refuse a maxOctets below 1 at startup, like the other limits
lilleman2026-09-23 23:48:18 +02:00
228b81aa5e
Say where a failed send's taken segments report, and that an unanswered one fails it too
lilleman2026-09-23 23:29:59 +02:00
e725f62b95
Make a failed send the whole message's answer, with no merged report after it
lilleman2026-09-23 23:29:08 +02:00
0ee7bbbaf0
Make goal 2 cover a value we could not send as the caller wrote it
lilleman2026-09-23 23:06:35 +02:00
b105752d53
Log an ignored response-less command at verbose, since a peer drives it
lilleman2026-09-23 22:46:13 +02:00
65ac3a3fd7
Register the raw peer's teardown, and keep the changelog line to what changed
lilleman2026-09-22 21:49:25 +02:00
b54f5b02f3
Leave alert_notification and outbind unanswered
lilleman2026-09-22 21:43:57 +02:00