{"slug":"eur-recrawl","total":23,"limit":100,"offset":0,"since":null,"commits":[{"hash":"373c73c","date":"2026-08-18 11:50:15 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-08-18T11:49:58 (4 data files) — osborne-pricelists-2026-08/RESTORE-MAP-osborne-pricing.json osborne-pricelists-2026-08/_revert.csv osborne-pricelists-2026-08/osborne-price-diff.csv osborne-pricelists-2026-08/osborne_fabrics_2026-08.csv","body":""},{"hash":"bf250ee","date":"2026-08-18 10:46:33 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-08-18T10:46:23 (3 data files) — osborne-pricelists-2026-08/OL_INC_PriceList_April2026.pdf osborne-pricelists-2026-08/full.txt osborne-pricelists-2026-08/osborne_wallpapers_2026-08.csv","body":""},{"hash":"611948c","date":"2026-07-30 21:34:56 -0700","author":"Steve","subject":"chore: session close — archive_disco.py syntax-clean + v0.1.1 -> v0.1.2","body":""},{"hash":"bab6a63","date":"2026-07-30 21:27:11 -0700","author":"Steve","subject":"archive_disco.py (gated): archive 188 vendor-discontinued EUR- (Osborne 147/DG 37/Lacroix 3/Nina 1); status->ARCHIVED, reversible; matched via Discontinued PDFs (not Limited)","body":""},{"hash":"83fd205","date":"2026-07-30 21:13:25 -0700","author":"Steve","subject":"chore: session-close — syntax-clean + version bump v0.1.0 -> v0.1.1 (my py scripts only; .mjs are claude-eur's)","body":""},{"hash":"86d80b8","date":"2026-07-30 20:17:23 -0700","author":"Steve","subject":"REMEDIATION: restore_samples.py — the 5 default-Title stragglers lost their Sample when the Roll variant replaced the sole default variant; restore Sample @ original price; also fixed write_reonboard option-name logic","body":""},{"hash":"35f0725","date":"2026-07-30 19:56:39 -0700","author":"Steve","subject":"Fix CREATE option-name (use product's actual option, not hardcoded Size) — resolves the 5 'Option does not exist' errors; re-run is idempotent (skips the 1404 done)","body":""},{"hash":"2d6a7b7","date":"2026-07-30 19:44:40 -0700","author":"Steve","subject":"Gated panel write (write_panels.py): CREATE 'Complete Set — N Panels' variant @ set x1.810, sample preserved; DRY_RUN default, dry-run validated","body":""},{"hash":"b47e0ec","date":"2026-07-30 19:42:02 -0700","author":"Steve","subject":"DTD: panels = PER-SET (5/5 + 3 lenses unanimous). Cody must-fix applied: truthful label 'Complete Set — N Panels' (was ambiguous 'Sold Per Panel or Panel Set'); x1.810 validated by same-source (no live mural canary, all sample-only)","body":""},{"hash":"d7a1336","date":"2026-07-30 19:28:44 -0700","author":"Steve Abrams","subject":"Add EUR panel dry-run CSV + findings: 154 held panels priced per-SET at trade x1.810","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"07eec6d","date":"2026-07-30 19:20:40 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-30T19:20:32 (2 files) — write-results.json roll","body":""},{"hash":"7c4b477","date":"2026-07-30 19:04:03 -0700","author":"Steve","subject":"Cycle 6: coordinate lanes w/ claude-eur, verify held sets (disco=no price source, panels=sample-only need Steve unit decision); loop paused idle-on-gated","body":""},{"hash":"82449aa","date":"2026-07-30 19:01:28 -0700","author":"Steve","subject":"Gated reonboard write (write_reonboard.py): UPDATE below-cost rolls + CREATE sample-only rolls -> trade x1.810; dry-run validated (EUR-80210 $120->$336.65). CRITICAL: live rolls priced below cost, this fixes them","body":""},{"hash":"e7fc236","date":"2026-07-30 18:53:47 -0700","author":"Steve","subject":"Cody-gate fixes: hold 154 Panel/Mural (sold as sets not rolls) + 165 absent-colorway-in-disco-list; priceable 1729->1410 (correct); canary still $590.05; disco_codes.txt","body":""},{"hash":"eac2a37","date":"2026-07-30 18:50:21 -0700","author":"Steve Abrams","subject":"Front-end recon: osborneandlittle.com=Magento(Lilo), no public API/sitemap; trade portal image-poor; DG consumer CF-walled (WebKit intermittent)","body":""},{"hash":"6173d1a","date":"2026-07-30 18:45:00 -0700","author":"Steve","subject":"Reonboard dry-run: 1729 priceable (456 exact + 1273 pattern-single, all 4 brands) x1.810, 370 held (368 disco + 2 ambiguous); canary EUR-71216 $590.05 exact. build_reonboard.py + reonboard.csv","body":""},{"hash":"d728197","date":"2026-07-30 18:39:01 -0700","author":"Steve","subject":"BREAKTHROUGH: authed Osborne PRICE LISTS -> April-2026 US trade price list PDF covers ALL 11 brands (O&L/Nina/DG/Lacroix/...); parsed 5425 colorway-SKUs, canary W7907-03=$326.00->$590.05 exact. Obsoletes per-SKU crawl + DG Cloudflare login. probe.mjs (login+session+pricelist download), parse_pricelist.py, prices.csv, pdfs/","body":""},{"hash":"54ef49f","date":"2026-07-30 18:22:18 -0700","author":"Steve","subject":"Price basis RESOLVED (retail=trade/0.65/0.85=x1.810, verified vs canary EUR-71216 $590.05); login delegated to claude-eur; await authed session","body":""},{"hash":"9834b9e","date":"2026-07-30 18:20:16 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-30T18:20:08 (5 files) — login.mjs probe-dg.mjs inspect-dg.mjs inspect.mjs reset-dg.mjs","body":""},{"hash":"1a1804f","date":"2026-07-30 18:05:28 -0700","author":"Steve","subject":"Osborne portal probe: reachable, clean login form (no CF), but stored creds (acct 1433803) rejected -> 'Login Failed'. Stopped after 1 attempt (account-lock risk). Blocked on current creds.","body":""},{"hash":"7a59e04","date":"2026-07-30 18:00:30 -0700","author":"Steve","subject":"Cycle 4 ledger + loop HOLD-FOR-STEVE on price basis (5/5 DTD SHIP+HOLD)","body":""},{"hash":"8563be9","date":"2026-07-30 17:58:45 -0700","author":"Steve","subject":"Cody gate (verified): price-basis unknown (trade>retail backwards), 729 colorway-ambiguous codes, normalize recovers 0, CF feasibility unproven — FIX FIRST, blocked on Steve for price basis","body":""},{"hash":"e22b931","date":"2026-07-30 17:52:24 -0700","author":"Steve","subject":"EUR recrawl scaffold: target list (2099) + plan (real-browser trade-portal crawl, creds mapped, Cloudflare=real-browser-only, crawl gated)","body":""}]}