{"slug":"york-reprice-2026-08","total":58,"limit":100,"offset":0,"since":null,"commits":[{"hash":"d27f301","date":"2026-07-29 06:36:36 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-29T06:36:32 (1 files) — cadence/data/latest.json","body":""},{"hash":"b192907","date":"2026-07-28 16:39:09 -0700","author":"Steve Abrams","subject":"TK-10031: onboard-17 plan + honest 87 breakdown (66 held / 4 settlement-flag / 17 clean)","body":""},{"hash":"f8d24d3","date":"2026-07-28 16:37:43 -0700","author":"Steve Abrams","subject":"Fix onboard-17 staging file: screen full pattern+product+book text (was pattern-only) -> exactly 17, matches cadence","body":""},{"hash":"563cd8e","date":"2026-07-28 16:37:14 -0700","author":"Steve Abrams","subject":"York cadence onboard-ready: subtract deliberately-held items + patch leaky keyword filter -> 87->17","body":"- Subtract onboard-settlement-held(59)/image-held/color-fail(7) mfrs: the keyword filter was weaker than\n  the real settlement/image gate, so 66 held items were re-proposed daily. + add leaves/deciduous/egret/\n  flamingo/crane/heron/peacock/feather to the pre-screen (Egret/Flamingo/Coleus-Leaves/Greenwood-Deciduous\n  leaked past 'leaf'/'bird'). onboard-ready 87->17 (17 genuinely-new settlement-keyword-clear imaged).\n- Staged the 17 clean candidates to data-onboard17-candidates.json (tracked)."},{"hash":"074152b","date":"2026-07-28 16:01:54 -0700","author":"Steve Abrams","subject":"Track York cadence staging+fixes note at repo root (cadence/data/ is gitignored) — TK-10026","body":""},{"hash":"2004540","date":"2026-07-28 16:01:40 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T16:01:35 (1 files) — data/bridge-reprice-plan.json","body":""},{"hash":"d27db35","date":"2026-07-28 16:00:29 -0700","author":"Steve Abrams","subject":"bridge-reprice: valid-MAP-set guard (dup-MAP SKUs) + NaN/0 price skip -> WOULD WRITE 0","body":"- VMAP: load all us_map values per SKU from york_master_aug2026; skip when live matches ANY (the deduped\n  CSV kept only one, so bridge was pushing correctly-priced dup-MAP rolls to the other value: NW3503/04/93).\n- NaN/0 guard: dirty master-priced-by-sku.csv rows no longer pollute the held DOWN bucket (46 skipped).\n- Full-scan dry-run: UP 0 / DOWN 0 / WOULD WRITE 0 — now agrees with york-cadence (0 legit reprice)."},{"hash":"4b91284","date":"2026-07-28 15:57:01 -0700","author":"Steve Abrams","subject":"York cadence/bridge: fix scan-truncation cap (90x60=5400 -> 120x100) — JS catalog is 6193","body":"Root cause of the chronic onboard-ready=619 false alarm: the vendor:'Jeffrey Stevens' live scan\ncapped at 90 pages x 60 = 5400 products but the catalog is ~6193, silently missing ~793 late-page\nproducts (AH295100 is #5944). Their live SKUs went unrecognized -> inflated onboard-ready AND could\nmask real reprice/disco in the tail. Full-scan re-test: live JS 5367->6141, onboard-ready 619->87\n(87 spot-verified genuinely un-onboarded, not false positives), reprice-drift 0, disco 0."},{"hash":"25d9e88","date":"2026-07-28 15:52:59 -0700","author":"Steve Abrams","subject":"York cadence fixes: reprice valid-price-set (dup MAP rows) + bridge single-roll-aware + NO_WRITE test mode","body":"- york-cadence: collect ALL master MAP rows per SKU into a set; live matching any is not drift -> reprice-drift 3->0 (was false-positive on 39 dup-MAP SKUs)\n- bridge-reprice: load roll_price_single, skip when live already at single-roll -> WOULD WRITE 279->3 (135 naturals no longer wrongly pushed to MAP)\n- york-cadence: add YORK_CADENCE_NO_WRITE=1 read-only test mode (no latest.json/memo/CNCP/auto-onboard writes)"},{"hash":"9ee892f","date":"2026-07-28 14:24:37 -0700","author":"Steve Abrams","subject":"York cadence 7/28: verify+stage — NO-GO all 3 (reprice+onboard = cadence false-positives, disco 0)","body":""},{"hash":"83ab6af","date":"2026-07-28 06:58:10 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T06:58:06 (1 files) — cadence/data/latest.json","body":""},{"hash":"18d9978","date":"2026-07-27 06:48:41 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T06:48:37 (1 files) — cadence/data/latest.json","body":""},{"hash":"b044161","date":"2026-07-26 06:41:15 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T06:41:11 (1 files) — cadence/data/latest.json","body":""},{"hash":"d939397","date":"2026-07-25 07:04:34 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-25T07:04:29 (1 files) — cadence/data/latest.json","body":""},{"hash":"c586db9","date":"2026-07-24 06:55:58 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-24T06:55:55 (1 files) — cadence/data/latest.json","body":""},{"hash":"ca5e035","date":"2026-07-23 06:49:12 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-23T06:49:07 (1 files) — cadence/data/latest.json","body":""},{"hash":"53bfee2","date":"2026-07-22 06:41:54 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-22T06:41:50 (1 files) — cadence/data/latest.json","body":""},{"hash":"3dba77a","date":"2026-07-21 06:36:11 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-21T06:36:08 (1 files) — cadence/data/latest.json","body":""},{"hash":"295a715","date":"2026-07-20 07:00:36 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-20T07:00:33 (1 files) — cadence/data/latest.json","body":""},{"hash":"16723a9","date":"2026-07-19 06:55:13 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-19T06:55:10 (1 files) — cadence/data/latest.json","body":""},{"hash":"df0406d","date":"2026-07-18 06:50:07 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-18T06:50:05 (1 files) — cadence/data/latest.json","body":""},{"hash":"0366b1b","date":"2026-07-17 06:45:39 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-17T06:45:36 (1 files) — cadence/data/latest.json","body":""},{"hash":"cfb9ff3","date":"2026-07-16 06:41:45 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-16T06:41:42 (1 files) — cadence/data/latest.json","body":""},{"hash":"ab7f712","date":"2026-07-15 07:05:08 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-15T07:05:05 (1 files) — cadence/data/latest.json","body":""},{"hash":"367e82b","date":"2026-07-14 13:08:03 -0700","author":"Steve","subject":"Remove onboard-set publish cadence plist (Steve's call)","body":"Deletes com.steve.york-onboard-publish-cadence.plist. Was never armed (RunAtLoad=false,\nnever bootstrapped). publish-onboard.mjs kept for manual/on-demand DRAFT->ACTIVE publishing.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"572076f","date":"2026-07-14 13:05:41 -0700","author":"Steve","subject":"Onboard-set publisher + weekly cadence (batches)","body":"publish-onboard.mjs: DRAFT->ACTIVE for the onboard-payloads generation (735 eligible),\nnets its OWN exclusion lists (settlement+image+colorfail=66, verified 0 overlap =\npre-excluded, defensive no-op). DRY-RUN default, --apply --i-am-steve gate, --limit=N\nbatch cap from the start, idempotent + miss-tolerant (only flips already-created DRAFTs,\nso it tracks the nightly onboard creation drip). Distinct set from publish-632 (phase1) —\nnever cross the exclusion lists.\n\nWeekly LaunchAgent (Tue 07:00, --limit=100, RunAtLoad=false, launchd-safe abs node path +\nWorkingDirectory). Mirrors the York phase1 publish cadence, offset one day.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"a3b8a4f","date":"2026-07-14 08:50:36 -0700","author":"Steve","subject":"York publish on a weekly cadence (100/wk) instead of big-bang","body":"Steve's call: do NOT flip all 621 York DRAFTs live at once. Added --limit=N cap to\npublish-632.mjs (bounds NEW publishes per run; skips already-ACTIVE, holds the 11\nsettlement-REVIEW flags) and a weekly LaunchAgent (Mon 07:00, --limit=100) that drips\nDRAFT->ACTIVE ~100/week to exhaust the 621 eligible set over ~7 weeks. RunAtLoad=false\n(no big-bang, no fire-on-reboot). Absolute node path + WorkingDirectory set (launchd-safe).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"58207a7","date":"2026-07-14 08:30:03 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-14T08:29:59 (1 files) — cadence/york-cadence.mjs","body":""},{"hash":"a192374","date":"2026-07-14 07:44:47 -0700","author":"Steve","subject":"Fix York auto-onboard silent failure: use process.execPath not bare node","body":"launchd's stripped PATH has no Homebrew node, so execSync('node york-new-create.mjs')\nthrew 'node: command not found' every 6:35am run — caught+logged as 'skipped', so the\nSteve-authorized ~100/morning DRAFT drip created zero drafts unnoticed. Verified fixed\nunder realistic launchd env (HOME set, minimal PATH): creator now resolves, validates\n735 queued payloads, dry-runs clean.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"a116034","date":"2026-07-14 06:59:41 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-14T06:59:38 (1 files) — cadence/data/latest.json","body":""},{"hash":"2ee4bcf","date":"2026-07-13 15:46:02 -0700","author":"Steve","subject":"chore: fail-fast token guard in york-new-create (session-close lint); no behavior change","body":""},{"hash":"e2a5144","date":"2026-07-13 10:31:53 -0700","author":"Steve","subject":"York cadence auto-onboard: DRAFT drip cap 100/run (Steve-approved), --limit now caps NEW creates for daily advance; smoke-3 verified live","body":""},{"hash":"fe390d8","date":"2026-07-13 10:24:21 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-13T10:24:15 (7 files) — data/onboard-payloads.json york-new-create.mjs data/onboard-color-fail-list.json data/onboard-image-held.json data/onboard-payloads-enriched.json","body":""},{"hash":"d6153c5","date":"2026-07-13 06:53:21 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-13T06:53:18 (1 files) — cadence/data/latest.json","body":""},{"hash":"7e445e0","date":"2026-07-13 02:04:39 -0700","author":"Steve Abrams","subject":"York onboard: compute 806-ready set (live-crawl + image-flag-exclude), build 801 per-UOM-priced DRAFT payloads (5 corrupt rows skipped)","body":""},{"hash":"4be4147","date":"2026-07-12 19:19:49 -0700","author":"Steve","subject":"cadence: add settlement-review worksheet (513) + image-integrity flags (39 cross-wired images) as pre-onboard controls","body":""},{"hash":"27f6dd0","date":"2026-07-12 12:06:16 -0700","author":"Steve","subject":"cadence: fix swallowed-SQL-error false-zero — onboard-ready was 0, is really 822","body":"The onboardCand query is multi-line; q() ran it via 'psql -c \"<sql>\"' which\nthrows 'invalid command \\n' on embedded newlines. That throw was caught by the\nquery's try/catch and returned [], so onboardReady reported 0 for months while\n822 imaged+settlement-clear New SKUs sat genuinely un-onboarded. Route q()\nthrough a temp .sql file + -f so multi-line SQL is safe. Verified: onboard-ready 0 -> 822."},{"hash":"9ee51a3","date":"2026-07-12 11:43:47 -0700","author":"Steve","subject":"cadence: dual image-drawer onboard lookup + naturals-aware drift (no false MAP re-break) + collision-aware 2-factor onboard","body":""},{"hash":"40d2167","date":"2026-07-12 11:12:52 -0700","author":"Steve Abrams","subject":"DTD-A grasscloth model: naturals-fix (revert 16 + relabel/reprice 257 to single-roll@roll_price_single/min2, 0 err) + publish-632 (holds 11 settlement)","body":""},{"hash":"b3345ad","date":"2026-07-12 10:47:50 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-12T10:47:45 (1 files) — show-grass.mjs","body":""},{"hash":"dc28b44","date":"2026-07-12 09:47:32 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-12T09:47:28 (1 files) — bolt-check.mjs","body":""},{"hash":"989c0ef","date":"2026-07-12 08:17:08 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-12T08:17:05 (1 files) — clear-cadence-4.mjs","body":""},{"hash":"7b9b7d0","date":"2026-07-12 08:06:06 -0700","author":"Steve Abrams","subject":"York CADENCE: daily launchd runner (read-only diff master vs live JS → reprice-drift/onboard-ready/disco, propose-only to pending-approval); installed com.steve.york-cadence 6:35am","body":""},{"hash":"3725ed7","date":"2026-07-12 07:06:11 -0700","author":"Steve Abrams","subject":"Fix collectionAddProducts mutation (var name) + treat smart-collection errors as expected; smoke-5 verified (correct UOM labels, MAP price, DRAFT, collections)","body":""},{"hash":"ea13512","date":"2026-07-11 09:29:25 -0700","author":"Steve Abrams","subject":"FIX-THEN-REGATE (contrarian): UOM-branch 289 YD/EA items (roll/yard/each), executor adds collectionAddProducts + SKU idempotency; re-validated","body":""},{"hash":"97acab1","date":"2026-07-11 09:18:20 -0700","author":"Steve Abrams","subject":"Phase-1 create executor (gated, dry-run-first, productSet, typed metafields) + enrichment; 632 validated well-formed","body":""},{"hash":"91b99af","date":"2026-07-11 09:16:18 -0700","author":"Steve","subject":"York Phase-1 enrich: PIL median-cut color-hex, live-verified collection routing, tag derivation, local settlement screen (0 prohibited / 11 REVIEW)","body":""},{"hash":"04ce3dc","date":"2026-07-11 09:12:42 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-11T09:12:35 (9 files) — data/color-fail-list.json data/img-cache/ data/live-collections.json data/york-new-phase1-payloads-enriched.json data/york-new-phase1-settlement-flags.json","body":""},{"hash":"e2b607e","date":"2026-07-11 08:56:04 -0700","author":"Steve Abrams","subject":"Generate 632 Phase-1 create payloads (DWJS-91508..92139, DRAFT, MAP-priced, 23 metafields each, image+desc complete)","body":""},{"hash":"62b5b2b","date":"2026-07-11 08:53:18 -0700","author":"Steve Abrams","subject":"Onboarding Phase-1 dry-run: sample create payload (Loom Wheat), 25 deterministic metafields mapped, 4 enrichment gaps flagged; next SKU DWJS-91508","body":""},{"hash":"c296ecb","date":"2026-07-11 08:31:28 -0700","author":"Steve Abrams","subject":"Onboarding scope (read-only): 2134 genuinely-new, settlement pre-screen + image/price inventory, phase1-ready list","body":""},{"hash":"57bd6a8","date":"2026-07-11 08:24:15 -0700","author":"Steve Abrams","subject":"Relink analysis: 745 'quarantine' = true cross-brand collisions (non-York), correctly excluded; York MAP coverage complete (548 done, 0 increases remain, 3 optional decreases)","body":""},{"hash":"a3f51c8","date":"2026-07-11 08:14:55 -0700","author":"Steve Abrams","subject":"York PL: metafield-bridge recovery — +51 York Wallcoverings patterns (Jeffrey Stevens vendor) raised to MAP; 745 collision-prone quarantined","body":""},{"hash":"36e96cb","date":"2026-07-11 07:12:14 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-11T07:12:11 (11 files) — bridge-reprice.mjs data/bridge-reprice-plan.json data/live-js-index.csv data/live-pl-index.csv data/master-priced-by-sku.csv","body":""},{"hash":"550ab88","date":"2026-07-10 22:53:46 -0700","author":"Steve Abrams","subject":"York PL reprice APPLIED live: 497 roll prices set to MAP (0 err, verified); disco no-op (392 already inactive)","body":""},{"hash":"4d1b7d1","date":"2026-07-10 21:29:57 -0700","author":"Steve Abrams","subject":"York PL live reprice: brewster_catalog bridge, dry-run (497 live→MAP, +43 avg, 253 stale ids)","body":""},{"hash":"ed0777e","date":"2026-07-10 19:26:11 -0700","author":"Steve Abrams","subject":"York+PL Aug-2026 reprice prep: master load, verdict-A pricing, reprice/new/disco plans","body":""},{"hash":"29cfbe2","date":"2026-07-10 17:39:46 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-10T17:39:43 (1 files) — data/","body":""}]}