Spaces:
Running on Zero
Running on Zero
Clarify GPU quota cleanup status
Browse filesDistinguish a ticket explicitly deleted before dispatch from one already consumed by dispatch. Keep CPU and GPU frontend copy aligned.
- BETA_TESTING.md +3 -2
- DATA_POLICY.md +2 -1
- RELEASE_MANIFEST.json +3 -3
- client.js +5 -3
BETA_TESTING.md
CHANGED
|
@@ -38,8 +38,9 @@ Before remote testers receive the expanded interface:
|
|
| 38 |
- Use CPU first; it does not acquire a GPU lease. GPU is explicit and has no
|
| 39 |
automatic CPU fallback. A failed/quota-limited GPU call is not a successful run.
|
| 40 |
- When HF rejects a staged GPU run for exhausted allowance, confirm the page
|
| 41 |
-
gives CPU/account guidance without a personal-token prompt,
|
| 42 |
-
|
|
|
|
| 43 |
- Check that a loaded recipe changes the echoed effective settings and generation
|
| 44 |
results, not just the form. Reload and load again to check browser persistence.
|
| 45 |
- Export/import a recipe backup. Imported data must not contain tracks, networks,
|
|
|
|
| 38 |
- Use CPU first; it does not acquire a GPU lease. GPU is explicit and has no
|
| 39 |
automatic CPU fallback. A failed/quota-limited GPU call is not a successful run.
|
| 40 |
- When HF rejects a staged GPU run for exhausted allowance, confirm the page
|
| 41 |
+
gives CPU/account guidance without a personal-token prompt, reports that the
|
| 42 |
+
ticket was deleted or is no longer pending, and allows another visitor to
|
| 43 |
+
prepare a request immediately.
|
| 44 |
- Check that a loaded recipe changes the echoed effective settings and generation
|
| 45 |
results, not just the form. Reload and load again to check browser persistence.
|
| 46 |
- Export/import a recipe backup. Imported data must not contain tracks, networks,
|
DATA_POLICY.md
CHANGED
|
@@ -22,7 +22,8 @@ queue receives a random one-use ticket, not the uploaded track or network bytes.
|
|
| 22 |
Inputs are released from the pending store on dispatch, expiry or shutdown. When
|
| 23 |
HF explicitly rejects a request for exhausted GPU allowance, the browser asks
|
| 24 |
the app to discard that pending ticket immediately and reports whether deletion
|
| 25 |
-
was confirmed. If that request fails, the
|
|
|
|
| 26 |
The framework may retain ticket and result metadata in its transient queue/session
|
| 27 |
buffers; result metadata includes the temporary job access key. Framework file
|
| 28 |
uploads and run history are disabled. These restrictions are not secure RAM erasure.
|
|
|
|
| 22 |
Inputs are released from the pending store on dispatch, expiry or shutdown. When
|
| 23 |
HF explicitly rejects a request for exhausted GPU allowance, the browser asks
|
| 24 |
the app to discard that pending ticket immediately and reports whether deletion
|
| 25 |
+
was confirmed or the ticket was already consumed. If that request fails, the
|
| 26 |
+
fixed 120-second expiry still applies to any ticket that remains pending.
|
| 27 |
The framework may retain ticket and result metadata in its transient queue/session
|
| 28 |
buffers; result metadata includes the temporary job access key. Framework file
|
| 29 |
uploads and run history are disabled. These restrictions are not secure RAM erasure.
|
RELEASE_MANIFEST.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
| 2 |
"backend": "cpu+zerogpu",
|
| 3 |
"files": {
|
| 4 |
".gitattributes": "c2ad16718fc51c888d32efc88c8f6e23ebe5fcf6f48e2954f896ba9770f24d72",
|
| 5 |
-
"BETA_TESTING.md": "
|
| 6 |
"BINARY_PROVENANCE.json": "1116e1757afc6c8629cb2d957e3d77380fe4f7e3186c3832d16a5a08abce6aa8",
|
| 7 |
-
"DATA_POLICY.md": "
|
| 8 |
"FRONTEND_SOURCE.json": "0b9d9983a6feb93ae56ea95c037d7f744ade111824617785a0cd9f7e2f61308e",
|
| 9 |
"GODOT_LICENSE": "fb2b3bb82c60f1e76841ba2122eb902f8e39c151476fe21ce10c9a05d1045304",
|
| 10 |
"IMPORTER_BUILD_RECEIPT.json": "4ba5c533cc617105478e4d85c83f456a7dfa68b1388049624619871ba9e42e9d",
|
|
@@ -50,7 +50,7 @@
|
|
| 50 |
"builtin_tracks/tracks/Replica R08 Demolition Derby.track": "6f11a9ffbcb477c9d19964566b1b612d2a94675605246e93e21f27bbbdb357ef",
|
| 51 |
"builtin_tracks/tracks/Replica R09 Eau Noir.track": "3ec0a78478cca1a4f0d2d98ac81f40783928adf271b70f0c32d295a6da2cdaa9",
|
| 52 |
"builtin_tracks/tracks/Replica The Champions Trial.track": "a3bfb76422affc774b44c739b0636d08acb901fa7615b9adcb52c069f79834e1",
|
| 53 |
-
"client.js": "
|
| 54 |
"delivery.py": "07453999c3831a16e8b1fcc2b4ae5fb28beb7d3952a3fae8de65d16eb6f11e5b",
|
| 55 |
"gpu_tickets.py": "b81aadb5ed42cec9212d44da7e7bbb7b413c5bd517383cac0b49ec9b4d659c92",
|
| 56 |
"hf-auth.js": "b59691ce2c517f193a5d5141538ebe61c961bb163cefa1fcf09b414c388984c1",
|
|
|
|
| 2 |
"backend": "cpu+zerogpu",
|
| 3 |
"files": {
|
| 4 |
".gitattributes": "c2ad16718fc51c888d32efc88c8f6e23ebe5fcf6f48e2954f896ba9770f24d72",
|
| 5 |
+
"BETA_TESTING.md": "4868acab039a805b659c3830ebf96bc9427c6d3b5d2a911ff00e22762483ea22",
|
| 6 |
"BINARY_PROVENANCE.json": "1116e1757afc6c8629cb2d957e3d77380fe4f7e3186c3832d16a5a08abce6aa8",
|
| 7 |
+
"DATA_POLICY.md": "0daf1b835bf829c0974e6b566cb5a605c6f52dba4517cfd54bed044e8eaf4264",
|
| 8 |
"FRONTEND_SOURCE.json": "0b9d9983a6feb93ae56ea95c037d7f744ade111824617785a0cd9f7e2f61308e",
|
| 9 |
"GODOT_LICENSE": "fb2b3bb82c60f1e76841ba2122eb902f8e39c151476fe21ce10c9a05d1045304",
|
| 10 |
"IMPORTER_BUILD_RECEIPT.json": "4ba5c533cc617105478e4d85c83f456a7dfa68b1388049624619871ba9e42e9d",
|
|
|
|
| 50 |
"builtin_tracks/tracks/Replica R08 Demolition Derby.track": "6f11a9ffbcb477c9d19964566b1b612d2a94675605246e93e21f27bbbdb357ef",
|
| 51 |
"builtin_tracks/tracks/Replica R09 Eau Noir.track": "3ec0a78478cca1a4f0d2d98ac81f40783928adf271b70f0c32d295a6da2cdaa9",
|
| 52 |
"builtin_tracks/tracks/Replica The Champions Trial.track": "a3bfb76422affc774b44c739b0636d08acb901fa7615b9adcb52c069f79834e1",
|
| 53 |
+
"client.js": "8d67f50574f7a97355c812730051ec8719c828fa7f4aa71b685473e648d7dbc6",
|
| 54 |
"delivery.py": "07453999c3831a16e8b1fcc2b4ae5fb28beb7d3952a3fae8de65d16eb6f11e5b",
|
| 55 |
"gpu_tickets.py": "b81aadb5ed42cec9212d44da7e7bbb7b413c5bd517383cac0b49ec9b4d659c92",
|
| 56 |
"hf-auth.js": "b59691ce2c517f193a5d5141538ebe61c961bb163cefa1fcf09b414c388984c1",
|
client.js
CHANGED
|
@@ -82,12 +82,14 @@ async function submit(body){
|
|
| 82 |
return result.data[0];
|
| 83 |
} catch(error) {
|
| 84 |
if(isGpuQuotaError(error)){
|
| 85 |
-
let
|
| 86 |
try {
|
| 87 |
const response=await request('/api/gpu/prepare/'+encodeURIComponent(prepared.ticket),{method:'DELETE'});
|
| 88 |
-
|
|
|
|
|
|
|
| 89 |
} catch {}
|
| 90 |
-
throw Error(displayError(error)+
|
| 91 |
}
|
| 92 |
throw error;
|
| 93 |
}
|
|
|
|
| 82 |
return result.data[0];
|
| 83 |
} catch(error) {
|
| 84 |
if(isGpuQuotaError(error)){
|
| 85 |
+
let cleanup='If dispatch did not start, staged inputs expire within two minutes.';
|
| 86 |
try {
|
| 87 |
const response=await request('/api/gpu/prepare/'+encodeURIComponent(prepared.ticket),{method:'DELETE'});
|
| 88 |
+
cleanup=(await response.json()).deleted===true
|
| 89 |
+
? 'Staged inputs were deleted.'
|
| 90 |
+
: 'The staging ticket is no longer pending.';
|
| 91 |
} catch {}
|
| 92 |
+
throw Error(displayError(error)+' '+cleanup);
|
| 93 |
}
|
| 94 |
throw error;
|
| 95 |
}
|