TiGa-RCE commited on
Commit
66e5842
·
verified ·
1 Parent(s): 93430c4

Clarify GPU quota rejection in hosted training UI

Browse files
Files changed (3) hide show
  1. FRONTEND_SOURCE.json +1 -1
  2. RELEASE_MANIFEST.json +2 -2
  3. client.js +5 -2
FRONTEND_SOURCE.json CHANGED
@@ -5,6 +5,6 @@
5
  "scope": "Frontend only; no engine, private data, track assets, API calls or storage copied",
6
  "status": "Hosted single-engine UI audited; star evaluation remains unconnected",
7
  "track_atlas_sha256": "d97c8900e3e5fb17734b5bd61d1f4f4b196d9be30af9848e2e273ae7e4079ae4",
8
- "client_sha256": "8d67f50574f7a97355c812730051ec8719c828fa7f4aa71b685473e648d7dbc6",
9
  "track_map_sha256": "ab5374aa49c7ccec90a787ee8c56cd71beb56b903bf2bbc322783e6f43c009f0"
10
  }
 
5
  "scope": "Frontend only; no engine, private data, track assets, API calls or storage copied",
6
  "status": "Hosted single-engine UI audited; star evaluation remains unconnected",
7
  "track_atlas_sha256": "d97c8900e3e5fb17734b5bd61d1f4f4b196d9be30af9848e2e273ae7e4079ae4",
8
+ "client_sha256": "ee070dcb67d62c9ee7905ecdd744192a7b35f0925c17f7235c7b50fe5ca463ca",
9
  "track_map_sha256": "ab5374aa49c7ccec90a787ee8c56cd71beb56b903bf2bbc322783e6f43c009f0"
10
  }
RELEASE_MANIFEST.json CHANGED
@@ -5,7 +5,7 @@
5
  "BETA_TESTING.md": "4868acab039a805b659c3830ebf96bc9427c6d3b5d2a911ff00e22762483ea22",
6
  "BINARY_PROVENANCE.json": "1116e1757afc6c8629cb2d957e3d77380fe4f7e3186c3832d16a5a08abce6aa8",
7
  "DATA_POLICY.md": "0daf1b835bf829c0974e6b566cb5a605c6f52dba4517cfd54bed044e8eaf4264",
8
- "FRONTEND_SOURCE.json": "c9c54621dc2e595b887c3782bf30e4f80e1fc3b4da03f69f189ea9ef2e590732",
9
  "GODOT_LICENSE": "fb2b3bb82c60f1e76841ba2122eb902f8e39c151476fe21ce10c9a05d1045304",
10
  "IMPORTER_BUILD_RECEIPT.json": "4ba5c533cc617105478e4d85c83f456a7dfa68b1388049624619871ba9e42e9d",
11
  "LICENSE": "53d5851b6440feeae36f72a5f57fcab37858c48b7084765ece4b0c54b9a28ed8",
@@ -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": "8d67f50574f7a97355c812730051ec8719c828fa7f4aa71b685473e648d7dbc6",
54
  "delivery.py": "07453999c3831a16e8b1fcc2b4ae5fb28beb7d3952a3fae8de65d16eb6f11e5b",
55
  "gpu_tickets.py": "b81aadb5ed42cec9212d44da7e7bbb7b413c5bd517383cac0b49ec9b4d659c92",
56
  "hf-auth.js": "b59691ce2c517f193a5d5141538ebe61c961bb163cefa1fcf09b414c388984c1",
 
5
  "BETA_TESTING.md": "4868acab039a805b659c3830ebf96bc9427c6d3b5d2a911ff00e22762483ea22",
6
  "BINARY_PROVENANCE.json": "1116e1757afc6c8629cb2d957e3d77380fe4f7e3186c3832d16a5a08abce6aa8",
7
  "DATA_POLICY.md": "0daf1b835bf829c0974e6b566cb5a605c6f52dba4517cfd54bed044e8eaf4264",
8
+ "FRONTEND_SOURCE.json": "4c82ae314b7fafe7cca76f4f0f0c2d80a4a5d46d6b761bd2c908c512de1a178e",
9
  "GODOT_LICENSE": "fb2b3bb82c60f1e76841ba2122eb902f8e39c151476fe21ce10c9a05d1045304",
10
  "IMPORTER_BUILD_RECEIPT.json": "4ba5c533cc617105478e4d85c83f456a7dfa68b1388049624619871ba9e42e9d",
11
  "LICENSE": "53d5851b6440feeae36f72a5f57fcab37858c48b7084765ece4b0c54b9a28ed8",
 
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": "ee070dcb67d62c9ee7905ecdd744192a7b35f0925c17f7235c7b50fe5ca463ca",
54
  "delivery.py": "07453999c3831a16e8b1fcc2b4ae5fb28beb7d3952a3fae8de65d16eb6f11e5b",
55
  "gpu_tickets.py": "b81aadb5ed42cec9212d44da7e7bbb7b413c5bd517383cac0b49ec9b4d659c92",
56
  "hf-auth.js": "b59691ce2c517f193a5d5141538ebe61c961bb163cefa1fcf09b414c388984c1",
client.js CHANGED
@@ -87,7 +87,7 @@ async function submit(body){
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
  }
@@ -171,7 +171,10 @@ $('run').onclick = async () => {
171
  clearInterval(progress);
172
  $('runState').textContent='ERROR — no successful result confirmed';
173
  $('runState').style.color='#ffb5a2';
174
- $('runSummary').textContent='Elapsed: '+((performance.now()-started)/1000).toFixed(1)+' s\nNo downloadable result was received. A connection error does not prove the server stopped.';
 
 
 
175
  say(displayError(error));
176
  }
177
  finally {clearInterval(progress);busy=false;$('keepServer').checked=false;buttons();}
 
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
+ : 'No pending upload remains for this request.';
91
  } catch {}
92
  throw Error(displayError(error)+' '+cleanup);
93
  }
 
171
  clearInterval(progress);
172
  $('runState').textContent='ERROR — no successful result confirmed';
173
  $('runState').style.color='#ffb5a2';
174
+ const quotaRejected=isGpuQuotaError(error)||String(error?.message??'').startsWith('GPU allowance is exhausted for this request.');
175
+ $('runSummary').textContent='Elapsed: '+((performance.now()-started)/1000).toFixed(1)+' s\n'+(quotaRejected
176
+ ? 'HF rejected this GPU request before a result was published.'
177
+ : 'No downloadable result was received. A connection error does not prove the server stopped.');
178
  say(displayError(error));
179
  }
180
  finally {clearInterval(progress);busy=false;$('keepServer').checked=false;buttons();}