Commit 927b48e
committed
Tighten the dispatcher seam edges
Four small hardenings around the per-request seams:
- on_success_frame is invoked through fire_success_frame, which contains a
raising observer (log and continue, the same boundary as the subscription
bus's listeners) so an observer bug cannot convert the success it is
observing into an error response. The only observer today cannot raise;
this makes the contract structural.
- suppress_cancel_answer / observe_success_frames now reach through
NoServerRequestsDispatchContext instead of silently no-oping on it: the
wrapper delegates wire I/O to the loop context it wraps, so per-request
facts attached through it must land there. The wrapper moves from
server/runner.py to shared/dispatcher.py - it was never server-specific,
and the shared setters can only name it without a layering violation from
there. The no-op remains for genuinely structurally-silent contexts
(single-exchange HTTP, direct dispatch).
- The legacy code-0 cancel answer template is never written to the wire:
the one site that writes a cancel answer sends a fresh model_copy.
ErrorData is mutable and frames cross in-memory transports by reference,
so sharing the instance would let a consumer's mutation corrupt every
later cancel answer process-wide.
- ListenHandler's class docstring states the actual transport requirement
(any dispatch context that forwards request-scoped notifications: HTTP
SSE and the stream-pair dual-era loop) instead of naming SSE alone.1 parent 4932a44 commit 927b48e
6 files changed
Lines changed: 284 additions & 91 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
39 | 38 | | |
40 | 39 | | |
41 | 40 | | |
| |||
56 | 55 | | |
57 | 56 | | |
58 | 57 | | |
59 | | - | |
60 | | - | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
61 | 66 | | |
62 | 67 | | |
63 | 68 | | |
64 | 69 | | |
65 | 70 | | |
66 | 71 | | |
67 | 72 | | |
68 | | - | |
| 73 | + | |
69 | 74 | | |
70 | 75 | | |
71 | 76 | | |
| |||
490 | 495 | | |
491 | 496 | | |
492 | 497 | | |
493 | | - | |
494 | | - | |
495 | | - | |
496 | | - | |
497 | | - | |
498 | | - | |
499 | | - | |
500 | | - | |
501 | | - | |
502 | | - | |
503 | | - | |
504 | | - | |
505 | | - | |
506 | | - | |
507 | | - | |
508 | | - | |
509 | | - | |
510 | | - | |
511 | | - | |
512 | | - | |
513 | | - | |
514 | | - | |
515 | | - | |
516 | | - | |
517 | | - | |
518 | | - | |
519 | | - | |
520 | | - | |
521 | | - | |
522 | | - | |
523 | | - | |
524 | | - | |
525 | | - | |
526 | | - | |
527 | | - | |
528 | | - | |
529 | | - | |
530 | | - | |
531 | | - | |
532 | | - | |
533 | | - | |
534 | | - | |
535 | | - | |
536 | | - | |
537 | | - | |
538 | | - | |
539 | | - | |
540 | | - | |
541 | | - | |
542 | | - | |
543 | | - | |
544 | 498 | | |
545 | 499 | | |
546 | 500 | | |
| |||
704 | 658 | | |
705 | 659 | | |
706 | 660 | | |
707 | | - | |
| 661 | + | |
708 | 662 | | |
709 | 663 | | |
710 | 664 | | |
| |||
772 | 726 | | |
773 | 727 | | |
774 | 728 | | |
775 | | - | |
| 729 | + | |
776 | 730 | | |
777 | 731 | | |
778 | 732 | | |
| |||
832 | 786 | | |
833 | 787 | | |
834 | 788 | | |
835 | | - | |
| 789 | + | |
836 | 790 | | |
837 | 791 | | |
838 | 792 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
167 | | - | |
168 | | - | |
169 | | - | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
170 | 171 | | |
171 | 172 | | |
172 | 173 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| 28 | + | |
27 | 29 | | |
28 | 30 | | |
29 | 31 | | |
| |||
33 | 35 | | |
34 | 36 | | |
35 | 37 | | |
| 38 | + | |
36 | 39 | | |
37 | 40 | | |
38 | 41 | | |
| |||
218 | 221 | | |
219 | 222 | | |
220 | 223 | | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
221 | 278 | | |
222 | 279 | | |
223 | 280 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| 46 | + | |
46 | 47 | | |
47 | 48 | | |
48 | 49 | | |
| |||
134 | 135 | | |
135 | 136 | | |
136 | 137 | | |
137 | | - | |
| 138 | + | |
138 | 139 | | |
139 | 140 | | |
140 | | - | |
141 | | - | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
142 | 147 | | |
143 | 148 | | |
144 | 149 | | |
| |||
158 | 163 | | |
159 | 164 | | |
160 | 165 | | |
161 | | - | |
162 | | - | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
163 | 169 | | |
164 | 170 | | |
165 | 171 | | |
| |||
168 | 174 | | |
169 | 175 | | |
170 | 176 | | |
171 | | - | |
| 177 | + | |
| 178 | + | |
172 | 179 | | |
173 | 180 | | |
174 | 181 | | |
| |||
193 | 200 | | |
194 | 201 | | |
195 | 202 | | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
196 | 217 | | |
197 | 218 | | |
198 | 219 | | |
199 | 220 | | |
200 | | - | |
201 | | - | |
| 221 | + | |
202 | 222 | | |
203 | 223 | | |
204 | 224 | | |
| |||
225 | 245 | | |
226 | 246 | | |
227 | 247 | | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
228 | 265 | | |
229 | 266 | | |
230 | 267 | | |
| |||
234 | 271 | | |
235 | 272 | | |
236 | 273 | | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
241 | 279 | | |
242 | | - | |
243 | | - | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
244 | 283 | | |
245 | 284 | | |
246 | 285 | | |
| |||
250 | 289 | | |
251 | 290 | | |
252 | 291 | | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
257 | 300 | | |
258 | 301 | | |
259 | | - | |
260 | | - | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
261 | 305 | | |
262 | 306 | | |
263 | 307 | | |
| |||
795 | 839 | | |
796 | 840 | | |
797 | 841 | | |
798 | | - | |
799 | | - | |
| 842 | + | |
800 | 843 | | |
801 | 844 | | |
802 | 845 | | |
803 | 846 | | |
804 | 847 | | |
805 | 848 | | |
806 | 849 | | |
807 | | - | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
808 | 853 | | |
809 | | - | |
| 854 | + | |
810 | 855 | | |
811 | 856 | | |
812 | 857 | | |
| |||
0 commit comments