Commit dcf02f4
fix(network): warn once when ProtocolRouter.send() runs without peerResolver (Codex PR #497 round 5)
Codex review feedback: keeping peerResolver optional makes the cold-
peer priming guarantee implicit. Any future `new ProtocolRouter(node)`
on an outbound path would compile and silently skip priming,
reintroducing PR-448's class of relay-route failures.
Two mitigations are now in place:
1. CI grep gate (`scripts/audit-dial-protocol.mjs` from PR #499)
bans raw `dialProtocol(peerId)` calls outside an allowlist, so
any new outbound path is forced through ProtocolRouter.
2. (this commit) `send()` emits a one-time `console.warn` the
first time it runs without a peerResolver, surfacing
misconfiguration loudly at first cold dial rather than silently
regressing.
The full enforcement (`peerResolver` becoming required) is intentionally
deferred — it would be a breaking change to test fixtures and edge
callers that legitimately route over warm connections only. The
warn+grep combo turns the silent-bypass risk into a build-time +
first-call-time surface.
Adds a test that asserts: (a) the warn fires, (b) only once across
multiple sends, and (c) references RFC 07 / PR #448 in the message.
Co-authored-by: Cursor <cursoragent@cursor.com>1 parent 68f08cd commit dcf02f4
2 files changed
Lines changed: 76 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
45 | 57 | | |
46 | 58 | | |
47 | 59 | | |
| |||
50 | 62 | | |
51 | 63 | | |
52 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
53 | 72 | | |
54 | 73 | | |
55 | 74 | | |
| |||
122 | 141 | | |
123 | 142 | | |
124 | 143 | | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
125 | 159 | | |
126 | 160 | | |
127 | 161 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
211 | 247 | | |
0 commit comments