aboutsummaryrefslogtreecommitdiffstats
path: root/docs/MESHBAY_DESIGN.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/MESHBAY_DESIGN.md')
-rw-r--r--docs/MESHBAY_DESIGN.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/docs/MESHBAY_DESIGN.md b/docs/MESHBAY_DESIGN.md
index 92c3021..b3b44b3 100644
--- a/docs/MESHBAY_DESIGN.md
+++ b/docs/MESHBAY_DESIGN.md
@@ -2504,6 +2504,18 @@ Two rules for a new application here:
function. A copy keeps agreeing until one of them changes, and the symptom is a
show whose episodes stream from two different nodes.
+**Search dials many nodes at once, so its deadline measures stalling rather than
+elapsed time.** Opening one group from the sidebar waits out the transport's own
+budgets; Search opens up to a poolful, three at a time, and waits for the slowest
+of each batch — so the deadline it imposes is what a page of unreachable groups
+costs in spinner, and raising it to accommodate a slow link taxes every dead one.
+A node that is not there reports no progress and fails in one window. A node that
+answers ICE, then opens a channel, buys another window at each step, to a ceiling,
+because a deadline that only ever resets has none. A flat budget cannot tell a
+slow link from a node that is not answering, and set low enough for the fan-out it
+cuts off connections that are still arriving: the same group then fails in Search
+and opens from the sidebar, against the same node.
+
**The Files explorer is deliberately not merged**, and not "mostly not": there each
group is a top-level folder, and merging would remove a file from one of them. A
test refuses a build that changes this.