← back to Carnegie Reprice
add 429 retry-with-backoff in shop(); errored SKUs auto-retry via ledger last-write-wins
7ecf829b08695d3568a6556041551edf25d9cc1f · 2026-08-18 13:25:35 -0700 · steve
Files touched
M rebuild-ledger.jsonlM rebuild-line.mjs
Diff
commit 7ecf829b08695d3568a6556041551edf25d9cc1f
Author: steve <steve@designerwallcoverings.com>
Date: Tue Aug 18 13:25:35 2026 -0700
add 429 retry-with-backoff in shop(); errored SKUs auto-retry via ledger last-write-wins
---
rebuild-ledger.jsonl | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++
rebuild-line.mjs | 11 ++++++-
2 files changed, 95 insertions(+), 1 deletion(-)
diff --git a/rebuild-ledger.jsonl b/rebuild-ledger.jsonl
index cf185ac..e9ff77d 100644
--- a/rebuild-ledger.jsonl
+++ b/rebuild-ledger.jsonl
@@ -5,3 +5,88 @@
{"dw_sku":"DWAG-381681","product_id":7923106021427,"handle":"carnegie-abbey-oatmeal-dwag-381681","color":"Oatmeal","retail":58,"imgExpected":2,"imgAttached":2,"status":"active","mf_ok":116,"mf_err":7,"at":"2026-08-18T20:20:52.297Z"}
{"dw_sku":"DWAG-381682","product_id":7923106709555,"handle":"carnegie-abbey-oatmeal-dwag-381682","color":"Oatmeal","retail":58,"imgExpected":2,"imgAttached":2,"status":"active","mf_ok":116,"mf_err":7,"at":"2026-08-18T20:21:29.689Z"}
{"dw_sku":"DWAG-381784","product_id":7923109036083,"handle":"carnegie-abyss-charcoal-dwag-381784","color":"Charcoal","retail":132,"imgExpected":3,"imgAttached":3,"status":"active","mf_ok":127,"mf_err":6,"at":"2026-08-18T20:22:11.601Z"}
+{"dw_sku":"DWAG-378329","product_id":7923112149043,"handle":"carnegie-acapella-beige-dwag-378329","color":"Beige","retail":76,"imgExpected":3,"imgAttached":3,"status":"active","mf_ok":55,"mf_err":68,"at":"2026-08-18T20:23:05.054Z"}
+{"dw_sku":"DWAG-378338","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:05.484Z"}
+{"dw_sku":"DWAG-378340","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:05.670Z"}
+{"dw_sku":"DWAG-378335","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:05.845Z"}
+{"dw_sku":"DWAG-381741","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:06.049Z"}
+{"dw_sku":"DWAG-380998","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:06.250Z"}
+{"dw_sku":"DWAG-378336","product_id":7923112181811,"handle":"carnegie-acapella-beige-dwag-378336","color":"Beige","retail":76,"imgExpected":4,"imgAttached":4,"status":"active","mf_ok":48,"mf_err":70,"at":"2026-08-18T20:23:06.267Z"}
+{"dw_sku":"DWAG-381002","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:06.470Z"}
+{"dw_sku":"DWAG-376513","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:06.688Z"}
+{"dw_sku":"DWAG-378331","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:06.705Z"}
+{"dw_sku":"DWAG-378333","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:06.870Z"}
+{"dw_sku":"DWAG-376514","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:06.886Z"}
+{"dw_sku":"DWAG-378342","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:07.036Z"}
+{"dw_sku":"DWAG-376565","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:07.132Z"}
+{"dw_sku":"DWAG-376567","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:07.334Z"}
+{"dw_sku":"DWAG-376518","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:07.531Z"}
+{"dw_sku":"DWAG-376569","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:07.724Z"}
+{"dw_sku":"DWAG-378330","product_id":7923112214579,"handle":"carnegie-acapella-khaki-dwag-378330","color":"Khaki","retail":76,"imgExpected":3,"imgAttached":3,"status":"active","mf_ok":45,"mf_err":78,"at":"2026-08-18T20:23:08.635Z"}
+{"dw_sku":"DWAG-378339","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:09.070Z"}
+{"dw_sku":"DWAG-381785","product_id":7923112247347,"handle":"carnegie-abyss-black-dwag-381785","color":"Black","retail":132,"imgExpected":4,"imgAttached":4,"status":"active","mf_ok":56,"mf_err":77,"at":"2026-08-18T20:23:13.514Z"}
+{"dw_sku":"DWAG-378337","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:13.964Z"}
+{"dw_sku":"DWAG-378332","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:14.140Z"}
+{"dw_sku":"DWAG-378334","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:14.326Z"}
+{"dw_sku":"DWAG-381740","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:14.511Z"}
+{"dw_sku":"DWAG-380997","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:14.702Z"}
+{"dw_sku":"DWAG-381001","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:14.885Z"}
+{"dw_sku":"DWAG-381005","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:15.063Z"}
+{"dw_sku":"DWAG-376464","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:15.237Z"}
+{"dw_sku":"DWAG-378341","product_id":7923113328691,"handle":"carnegie-acapella-sage-dwag-378341","color":"Sage","retail":76,"imgExpected":4,"imgAttached":4,"status":"active","mf_ok":26,"mf_err":92,"at":"2026-08-18T20:23:43.586Z"}
+{"dw_sku":"DWAG-381739","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:44.032Z"}
+{"dw_sku":"DWAG-381742","product_id":7923113295923,"handle":"carnegie-aerial-slate-dwag-381742","color":"Slate","retail":92,"imgExpected":4,"imgAttached":4,"status":"active","mf_ok":43,"mf_err":90,"at":"2026-08-18T20:23:45.010Z"}
+{"dw_sku":"DWAG-380999","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:45.508Z"}
+{"dw_sku":"DWAG-376471","product_id":7923113263155,"handle":"carnegie-alex-alabaster-dwag-376471","color":"Alabaster","retail":206,"imgExpected":2,"imgAttached":2,"status":"active","mf_ok":43,"mf_err":105,"at":"2026-08-18T20:23:47.857Z"}
+{"dw_sku":"DWAG-376515","product_id":7923113361459,"handle":"carnegie-alex-brown-dwag-376515","color":"Brown","retail":206,"imgExpected":2,"imgAttached":2,"status":"active","mf_ok":29,"mf_err":114,"at":"2026-08-18T20:23:52.765Z"}
+{"dw_sku":"DWAG-376566","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:23:53.194Z"}
+{"dw_sku":"DWAG-381743","product_id":7923113394227,"handle":"carnegie-aerial-slate-dwag-381743","color":"Slate","retail":92,"imgExpected":3,"imgAttached":3,"status":"active","mf_ok":31,"mf_err":102,"at":"2026-08-18T20:24:20.241Z"}
+{"dw_sku":"DWAG-381003","product_id":7923113426995,"handle":"carnegie-alder-graphite-dwag-381003","color":"Graphite","retail":81,"imgExpected":3,"imgAttached":3,"status":"active","mf_ok":29,"mf_err":99,"at":"2026-08-18T20:24:20.277Z"}
+{"dw_sku":"DWAG-381000","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:20.687Z"}
+{"dw_sku":"DWAG-376463","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:20.705Z"}
+{"dw_sku":"DWAG-376564","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:20.869Z"}
+{"dw_sku":"DWAG-381004","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:20.872Z"}
+{"dw_sku":"DWAG-376516","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:21.038Z"}
+{"dw_sku":"DWAG-376563","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:21.047Z"}
+{"dw_sku":"DWAG-376517","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:21.213Z"}
+{"dw_sku":"DWAG-376465","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:21.247Z"}
+{"dw_sku":"DWAG-376468","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:21.385Z"}
+{"dw_sku":"DWAG-376570","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:21.559Z"}
+{"dw_sku":"DWAG-376521","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:21.739Z"}
+{"dw_sku":"DWAG-376572","product_id":7923113459763,"handle":"carnegie-alex-greige-dwag-376572","color":"Greige","retail":206,"imgExpected":3,"imgAttached":3,"status":"active","mf_ok":36,"mf_err":102,"at":"2026-08-18T20:24:26.769Z"}
+{"dw_sku":"DWAG-376523","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:27.200Z"}
+{"dw_sku":"DWAG-376475","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:27.387Z"}
+{"dw_sku":"DWAG-376476","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:27.567Z"}
+{"dw_sku":"DWAG-376527","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:27.749Z"}
+{"dw_sku":"DWAG-376568","product_id":7923113492531,"handle":"carnegie-alex-taupe-dwag-376568","color":"Taupe","retail":206,"imgExpected":3,"imgAttached":3,"status":"active","mf_ok":44,"mf_err":94,"at":"2026-08-18T20:24:31.890Z"}
+{"dw_sku":"DWAG-376519","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:32.336Z"}
+{"dw_sku":"DWAG-376470","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:32.507Z"}
+{"dw_sku":"DWAG-376522","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:32.695Z"}
+{"dw_sku":"DWAG-376573","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:32.861Z"}
+{"dw_sku":"DWAG-376574","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:33.075Z"}
+{"dw_sku":"DWAG-376576","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:24:33.270Z"}
+{"dw_sku":"DWAG-376472","product_id":7923113656371,"handle":"carnegie-alex-greige-dwag-376472","color":"Greige","retail":206,"imgExpected":2,"imgAttached":2,"status":"active","mf_ok":40,"mf_err":108,"at":"2026-08-18T20:25:00.243Z"}
+{"dw_sku":"DWAG-376524","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:00.682Z"}
+{"dw_sku":"DWAG-376466","product_id":7923113623603,"handle":"carnegie-alex-khaki-dwag-376466","color":"Khaki","retail":206,"imgExpected":2,"imgAttached":2,"status":"active","mf_ok":35,"mf_err":113,"at":"2026-08-18T20:25:00.723Z"}
+{"dw_sku":"DWAG-376525","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:00.853Z"}
+{"dw_sku":"DWAG-376526","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:01.014Z"}
+{"dw_sku":"DWAG-376467","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:01.155Z"}
+{"dw_sku":"DWAG-376528","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:01.179Z"}
+{"dw_sku":"DWAG-376469","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:01.337Z"}
+{"dw_sku":"DWAG-376529","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:01.350Z"}
+{"dw_sku":"DWAG-376580","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:01.533Z"}
+{"dw_sku":"DWAG-376520","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:01.535Z"}
+{"dw_sku":"DWAG-376571","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:01.704Z"}
+{"dw_sku":"DWAG-376582","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:01.711Z"}
+{"dw_sku":"DWAG-376533","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:01.881Z"}
+{"dw_sku":"DWAG-376473","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:01.896Z"}
+{"dw_sku":"DWAG-376534","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:02.053Z"}
+{"dw_sku":"DWAG-376474","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:02.075Z"}
+{"dw_sku":"DWAG-376575","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:02.262Z"}
+{"dw_sku":"DWAG-376577","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:02.458Z"}
+{"dw_sku":"DWAG-376578","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:02.624Z"}
+{"dw_sku":"DWAG-376579","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:02.791Z"}
+{"dw_sku":"DWAG-376481","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:02.979Z"}
+{"dw_sku":"DWAG-376479","product_id":7923113689139,"handle":"carnegie-alex-graphite-dwag-376479","color":"Graphite","retail":206,"imgExpected":2,"imgAttached":2,"status":"active","mf_ok":27,"mf_err":121,"at":"2026-08-18T20:25:07.794Z"}
+{"dw_sku":"DWAG-376477","product_id":7923113787443,"handle":"carnegie-alex-graphite-dwag-376477","color":"Graphite","retail":206,"imgExpected":2,"imgAttached":2,"status":"active","mf_ok":44,"mf_err":104,"at":"2026-08-18T20:25:13.050Z"}
+{"dw_sku":"DWAG-376478","error":"create: HTTP 429 /products.json :: {\"errors\":\"Exceeded 4 calls per second for api client. Reduce request rates to resume uninterrupted service.\"}","at":"2026-08-18T20:25:13.507Z"}
diff --git a/rebuild-line.mjs b/rebuild-line.mjs
index 38c0f9c..6a2a377 100644
--- a/rebuild-line.mjs
+++ b/rebuild-line.mjs
@@ -48,7 +48,16 @@ if(args.includes('--status')){
}
if(fs.existsSync(HALT)){ console.error('REFUSING TO RUN — halt flag present:', fs.readFileSync(HALT,'utf8')); process.exit(2); }
-async function shop(p,opts={}){ const r=await fetch(`${API}${p}`,{headers:H,...opts}); const t=await r.text(); if(!r.ok) throw new Error(`HTTP ${r.status} ${p} :: ${t.slice(0,300)}`); return t?JSON.parse(t):{}; }
+async function shop(p,opts={}){
+ for(let attempt=0;attempt<6;attempt++){
+ const r=await fetch(`${API}${p}`,{headers:H,...opts});
+ if(r.status===429){ const ra=+(r.headers.get('retry-after')||2); await sleep(Math.max(ra*1000, 1000*(attempt+1))); continue; }
+ const t=await r.text();
+ if(!r.ok) throw new Error(`HTTP ${r.status} ${p} :: ${t.slice(0,300)}`);
+ return t?JSON.parse(t):{};
+ }
+ throw new Error(`HTTP 429 exhausted ${p}`);
+}
// ---- image selection: robust, priority-ordered, NEVER zero ----
const bump = u => u ? u.replace(/height=\d*&width=\d*/,'height=1400&width=1400').replace(/height=&width=/,'height=1400&width=1400') : null;
← c0e7acb add --shard N/M for parallel disjoint workers (4x throughput
·
back to Carnegie Reprice
·
auto-data-snapshot: 2026-08-18T13:28:17 (1 data files) — reb 118abdc →