diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-10-09 18:23:52 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-10-09 18:23:56 +0200 |
| commit | c85c7f48e8f29923038d4c90cc1a6f9b8bcd7673 (patch) | |
| tree | 10a5a62416bafd58c891e1fff290036bb75c7318 /packages/meshbay-hub/src/meshbay_hub/static/transport-upload.js | |
| parent | fbc2c5d86aed931be38c5fccfff75190eb4d16d1 (diff) | |
| download | meshbay-c85c7f48e8f29923038d4c90cc1a6f9b8bcd7673.tar.gz | |
feat(node): refuse an upload on a full disk with a stated reason
Nothing on the upload path knew about ENOSPC: a write that found no room
raised out of the handler, the catch-all answered "Request failed", and the
.part stayed behind holding the space that had run out. The node now refuses
with `disk_full` at chunk 0 when the announced size would leave less than
1 GiB free, and at any write that fails with ENOSPC/EDQUOT, dropping the
partial. The client carries the code on the error and the transfers panel
says "The node's disk is full" in every catalogue.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/transport-upload.js')
| -rw-r--r-- | packages/meshbay-hub/src/meshbay_hub/static/transport-upload.js | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/transport-upload.js b/packages/meshbay-hub/src/meshbay_hub/static/transport-upload.js index a8f039d..e11613d 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/transport-upload.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/transport-upload.js @@ -80,6 +80,10 @@ extendTransport(class { // this client did before there was anything to ask. if (answerProbe(0)) return; failure = new Error(msg.detail || 'Upload refused'); + // Carried so a caller can tell a refusal it can act on (`disk_full`: + // stop, nothing will fit until the operator makes room) from one it + // cannot. The detail is English; whoever shows it translates by code. + if (msg.code) failure.code = msg.code; wake(); return; } |