diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-09-09 01:15:42 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-09-09 01:15:42 +0200 |
| commit | 9563dff61b61681fed27673afd7c7b6ed30eb176 (patch) | |
| tree | fb7d14b47bf685670977127f30058193d378f3d5 /packages/meshbay-node/tests/transfer_probe.py | |
| parent | b3ea222ca8b6218e0187070fe94bc8fed7059a90 (diff) | |
| download | meshbay-9563dff61b61681fed27673afd7c7b6ed30eb176.tar.gz | |
fix(node): push the grants a per-member cap change produces
Raising the per-member cap from 2 to 4 left both waiting transfers on
"waiting". The pool granted them correctly and nobody told the peers:
`ops.set_transfer_limits` computed `granted` and never sent a `transfer_state`,
where the node-wide path (`WebRTCTransport.set_capacity`) does.
That is the first row of §5.2 of ~/next/improve-downloads.md — "node granted a
slot, the push was lost" — reached by writing the decision and forgetting the
send. It is the same omission as the missing `touch()` call one layer up, on the
same day: a mechanism that is right everywhere except at the seam where it has
to reach somebody.
The client recovered after its 60-second watchdog re-asked, which is why this
looked like a slow queue rather than a lost message.
`transfer_probe.py --operator` covers it now, separately from the node-wide
hot-swap it already covered — different door, different code path, and only one
of them was tested. Verified failing with the push removed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HCGdheDLxGReuKHga3BtST
Diffstat (limited to 'packages/meshbay-node/tests/transfer_probe.py')
0 files changed, 0 insertions, 0 deletions