Commit 659cabd
fix(concord): harden fetch_plane per pre-publish review; bump vector-core 0.4.0 / vector_sdk 0.5.0
Pre-publish review of the plane-key auth-fetch path surfaced fixable issues; the
core security properties (owner always protected, no cross-account client handoff,
escalation fix correct for the in-roster case) held.
- Tor: fetch_plane added relays BARE (ConnectionMode::Direct), so under active Tor
the plane fetch + its NIP-42 auth as the plane key could connect direct and tie
the user's IP to community membership. Now adds via pool().add_relay with the
Tor-aware community relay options, matching warm_client.
- Cross-swap: clear_plane_pool drained the map but left the generation stamp, so a
fetch_plane in flight during an account swap could re-pool a client still authed
as the swapped-out account's plane key. Now stamps the live generation on clear.
- Confident-empty: fetch_plane returned Ok(empty) when every relay refused/timed
out (indistinguishable from a genuinely empty plane). Now Err on zero EOSE.
- Pool insert no longer returns the in-use client for disconnect (only real LRU
victims), so a raced same-key miss can't tear down the connection it fetches on.
- disconnect_clients is runtime-guarded (clear_plane_pool is pub; a bot author may
call it off a non-tokio thread).
Documented residual (bounded, non-blocking): base_admissible reads the persisted
roster, so a superior whose grant hasn't folded yet is unprotected within the
grant-propagation window; the owner is always hard-protected and can counter-refound.
Version bump is minor: fetch_plane is a new required method on the public Transport
trait (breaking for external Transport impls).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent d3d7cf1 commit 659cabd
6 files changed
Lines changed: 60 additions & 22 deletions
File tree
- crates
- vector-core
- src/community
- v2
- vector-sdk
- src-tauri
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
420 | 420 | | |
421 | 421 | | |
422 | 422 | | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
423 | 426 | | |
424 | | - | |
425 | | - | |
426 | | - | |
427 | | - | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
428 | 439 | | |
429 | 440 | | |
430 | 441 | | |
| |||
433 | 444 | | |
434 | 445 | | |
435 | 446 | | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
436 | 452 | | |
437 | 453 | | |
438 | 454 | | |
| |||
467 | 483 | | |
468 | 484 | | |
469 | 485 | | |
470 | | - | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
471 | 491 | | |
472 | 492 | | |
473 | | - | |
474 | | - | |
475 | | - | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
476 | 497 | | |
477 | 498 | | |
478 | | - | |
479 | | - | |
480 | | - | |
481 | | - | |
482 | 499 | | |
483 | 500 | | |
484 | 501 | | |
| |||
1054 | 1071 | | |
1055 | 1072 | | |
1056 | 1073 | | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
1057 | 1078 | | |
1058 | | - | |
| 1079 | + | |
1059 | 1080 | | |
1060 | 1081 | | |
1061 | 1082 | | |
| |||
1072 | 1093 | | |
1073 | 1094 | | |
1074 | 1095 | | |
| 1096 | + | |
1075 | 1097 | | |
1076 | 1098 | | |
1077 | 1099 | | |
1078 | 1100 | | |
1079 | 1101 | | |
1080 | 1102 | | |
| 1103 | + | |
1081 | 1104 | | |
1082 | 1105 | | |
1083 | 1106 | | |
1084 | 1107 | | |
1085 | 1108 | | |
1086 | 1109 | | |
1087 | 1110 | | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
1088 | 1118 | | |
1089 | 1119 | | |
1090 | 1120 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3340 | 3340 | | |
3341 | 3341 | | |
3342 | 3342 | | |
3343 | | - | |
3344 | | - | |
3345 | | - | |
| 3343 | + | |
| 3344 | + | |
| 3345 | + | |
| 3346 | + | |
| 3347 | + | |
| 3348 | + | |
| 3349 | + | |
| 3350 | + | |
| 3351 | + | |
| 3352 | + | |
| 3353 | + | |
3346 | 3354 | | |
3347 | 3355 | | |
3348 | 3356 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments