York Reprice 2026 08

repo: ~/Projects/york-reprice-2026-08 · 89 commits · 0 in last 24h, 0 in last 7d ·

Search the build

89 commits indexed

  1. 8cd3aa3 2026-09-15 auto-data-snapshot: 2026-09-15T19:39:01 (1 data files) — cadence/data/latest.json
  2. a908d02 2026-09-15 Fix two reproduced defects: silent-degrade in york-cadence + hard-exit-on-missing-secret regression
  3. b984417 2026-09-15 Fix broken PGPASSWORD psql auth in 6 scripts; read dw_admin pw from secrets-manager/.env
  4. b9f39ac 2026-09-15 auto-data-snapshot: 2026-09-15T01:48:50 (1 data files) — cadence/data/latest.json
  5. 2827a4c 2026-09-12 TK-11547: weight go-live gate on the york publish cadence
  6. 9e6b918 2026-08-25 auto-data-snapshot: 2026-08-25T12:44:18 (1 data files) — __pycache__/enrich-onboard.cpython-314.pyc
  7. 3ac1f1c 2026-08-25 TK-10852 root-cause: strip upstream private-label names (Brewster etc) from JS import tags so re-imports don't re-leak
  8. 6cdd76b 2026-08-25 auto-data-snapshot: 2026-08-25T12:06:42 (1 data files) — cadence/data/latest.json
  9. b2c0e8f 2026-08-25 york-cadence: remove dead PG const (unused; q() is the only live psql path) [Cody gate]
  10. 9120fee 2026-08-25 york-cadence: connect PG over /tmp socket instead of TCP 127.0.0.1 (fixes transient connection-refused crash)
  11. 807f76a 2026-08-15 auto-data-snapshot: 2026-08-15T01:35:55 (1 data files) — cadence/data/latest.json
  12. b657aef 2026-08-12 auto-data-snapshot: 2026-08-12T06:49:51 (1 data files) — cadence/data/latest.json
  13. ef17d53 2026-08-11 auto-data-snapshot: 2026-08-11T07:04:50 (1 data files) — cadence/data/latest.json
  14. b727b04 2026-08-10 auto-data-snapshot: 2026-08-10T06:50:47 (1 data files) — cadence/data/latest.json
  15. 3134007 2026-08-09 auto-data-snapshot: 2026-08-09T06:41:43 (1 data files) — cadence/data/latest.json
  16. 13fda5a 2026-08-07 auto-data-snapshot: 2026-08-07T06:58:19 (1 data files) — cadence/data/latest.json
  17. fff1a7f 2026-08-06 auto-save: 2026-08-06T06:49:23 (1 files) — cadence/data/latest.json
  18. f3b7bd0 2026-08-05 auto-save: 2026-08-05T06:39:44 (1 files) — cadence/data/latest.json
  19. 32e1e58 2026-08-04 auto-save: 2026-08-04T07:00:57 (1 files) — cadence/data/latest.json
  20. 8df4eb0 2026-08-03 auto-save: 2026-08-03T06:51:19 (1 files) — cadence/data/latest.json
  21. 1a4f290 2026-08-02 auto-save: 2026-08-02T06:43:03 (1 files) — cadence/data/latest.json
  22. 73a43d1 2026-08-01 auto-save: 2026-08-01T07:04:40 (1 files) — cadence/data/latest.json
  23. d58a32a 2026-07-31 auto-save: 2026-07-31T06:54:53 (1 files) — cadence/data/latest.json
  24. 5a9d2ad 2026-07-30 TK-10058: fix 2 live settlement-risk images (Malin/Denim, Sheehan/Pearl) — wrong palm/leaf images swapped for correct grasscloth, verified live
  25. 8d97b4e 2026-07-30 TK-10058: recover+eyeball 7 settlement-risk — only 2 clean (Malin/Denim, Sheehan/Pearl); 3 color-fidelity fail, 2 no-image (colorway failure mode validated)
  26. 37c98bc 2026-07-30 TK-10058 sizing: live impact is BOUNDED — 27 ACTIVE products reliably show a wrong image (7 settlement-risk); 863 hash-named indeterminate
  27. bfaf1fb 2026-07-30 TK-10058: diagnose brewster image cross-link — 358 genuine; bulk relink UNSAFE (colorway fidelity); root cause = scraper
  28. 753ee99 2026-07-30 TK-10031: publish the 12 York New items DRAFT->ACTIVE (DWJS-92941..92952), verified 12/12 live
  29. ea979b9 2026-07-30 TK-10031: onboard-12 color-fail artifact (empty — all 12 images processed)
  30. d25b850 2026-07-30 Onboard 12 York 'New' items as DRAFT (DWJS-92941..92952) — TK-10031
  31. 15b3d86 2026-07-30 auto-save: 2026-07-30T06:45:19 (1 files) — cadence/data/latest.json
  32. d27f301 2026-07-29 auto-save: 2026-07-29T06:36:32 (1 files) — cadence/data/latest.json
  33. b192907 2026-07-28 TK-10031: onboard-17 plan + honest 87 breakdown (66 held / 4 settlement-flag / 17 clean)
  34. f8d24d3 2026-07-28 Fix onboard-17 staging file: screen full pattern+product+book text (was pattern-only) -> exactly 17, matches cadence
  35. 563cd8e 2026-07-28 York cadence onboard-ready: subtract deliberately-held items + patch leaky keyword filter -> 87->17
  36. 074152b 2026-07-28 Track York cadence staging+fixes note at repo root (cadence/data/ is gitignored) — TK-10026
  37. 2004540 2026-07-28 auto-save: 2026-07-28T16:01:35 (1 files) — data/bridge-reprice-plan.json
  38. d27db35 2026-07-28 bridge-reprice: valid-MAP-set guard (dup-MAP SKUs) + NaN/0 price skip -> WOULD WRITE 0
  39. 4b91284 2026-07-28 York cadence/bridge: fix scan-truncation cap (90x60=5400 -> 120x100) — JS catalog is 6193
  40. 25d9e88 2026-07-28 York cadence fixes: reprice valid-price-set (dup MAP rows) + bridge single-roll-aware + NO_WRITE test mode
  41. 9ee892f 2026-07-28 York cadence 7/28: verify+stage — NO-GO all 3 (reprice+onboard = cadence false-positives, disco 0)
  42. 83ab6af 2026-07-28 auto-save: 2026-07-28T06:58:06 (1 files) — cadence/data/latest.json
  43. 18d9978 2026-07-27 auto-save: 2026-07-27T06:48:37 (1 files) — cadence/data/latest.json
  44. b044161 2026-07-26 auto-save: 2026-07-26T06:41:11 (1 files) — cadence/data/latest.json
  45. d939397 2026-07-25 auto-save: 2026-07-25T07:04:29 (1 files) — cadence/data/latest.json
  46. c586db9 2026-07-24 auto-save: 2026-07-24T06:55:55 (1 files) — cadence/data/latest.json
  47. ca5e035 2026-07-23 auto-save: 2026-07-23T06:49:07 (1 files) — cadence/data/latest.json
  48. 53bfee2 2026-07-22 auto-save: 2026-07-22T06:41:50 (1 files) — cadence/data/latest.json
  49. 3dba77a 2026-07-21 auto-save: 2026-07-21T06:36:08 (1 files) — cadence/data/latest.json
  50. 295a715 2026-07-20 auto-save: 2026-07-20T07:00:33 (1 files) — cadence/data/latest.json
  51. 16723a9 2026-07-19 auto-save: 2026-07-19T06:55:10 (1 files) — cadence/data/latest.json
  52. df0406d 2026-07-18 auto-save: 2026-07-18T06:50:05 (1 files) — cadence/data/latest.json
  53. 0366b1b 2026-07-17 auto-save: 2026-07-17T06:45:36 (1 files) — cadence/data/latest.json
  54. cfb9ff3 2026-07-16 auto-save: 2026-07-16T06:41:42 (1 files) — cadence/data/latest.json
  55. ab7f712 2026-07-15 auto-save: 2026-07-15T07:05:05 (1 files) — cadence/data/latest.json
  56. 367e82b 2026-07-14 Remove onboard-set publish cadence plist (Steve's call)
  57. 572076f 2026-07-14 Onboard-set publisher + weekly cadence (batches)
  58. a3b8a4f 2026-07-14 York publish on a weekly cadence (100/wk) instead of big-bang
  59. 58207a7 2026-07-14 auto-save: 2026-07-14T08:29:59 (1 files) — cadence/york-cadence.mjs
  60. a192374 2026-07-14 Fix York auto-onboard silent failure: use process.execPath not bare node
  61. a116034 2026-07-14 auto-save: 2026-07-14T06:59:38 (1 files) — cadence/data/latest.json
  62. 2ee4bcf 2026-07-13 chore: fail-fast token guard in york-new-create (session-close lint); no behavior change
  63. e2a5144 2026-07-13 York cadence auto-onboard: DRAFT drip cap 100/run (Steve-approved), --limit now caps NEW creates for daily advance; smoke-3 verified live
  64. fe390d8 2026-07-13 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
  65. d6153c5 2026-07-13 auto-save: 2026-07-13T06:53:18 (1 files) — cadence/data/latest.json
  66. 7e445e0 2026-07-13 York onboard: compute 806-ready set (live-crawl + image-flag-exclude), build 801 per-UOM-priced DRAFT payloads (5 corrupt rows skipped)
  67. 4be4147 2026-07-12 cadence: add settlement-review worksheet (513) + image-integrity flags (39 cross-wired images) as pre-onboard controls
  68. 27f6dd0 2026-07-12 cadence: fix swallowed-SQL-error false-zero — onboard-ready was 0, is really 822
  69. 9ee51a3 2026-07-12 cadence: dual image-drawer onboard lookup + naturals-aware drift (no false MAP re-break) + collision-aware 2-factor onboard
  70. 40d2167 2026-07-12 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)
  71. b3345ad 2026-07-12 auto-save: 2026-07-12T10:47:45 (1 files) — show-grass.mjs
  72. dc28b44 2026-07-12 auto-save: 2026-07-12T09:47:28 (1 files) — bolt-check.mjs
  73. 989c0ef 2026-07-12 auto-save: 2026-07-12T08:17:05 (1 files) — clear-cadence-4.mjs
  74. 7b9b7d0 2026-07-12 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
  75. 3725ed7 2026-07-12 Fix collectionAddProducts mutation (var name) + treat smart-collection errors as expected; smoke-5 verified (correct UOM labels, MAP price, DRAFT, collections)
  76. ea13512 2026-07-11 FIX-THEN-REGATE (contrarian): UOM-branch 289 YD/EA items (roll/yard/each), executor adds collectionAddProducts + SKU idempotency; re-validated
  77. 97acab1 2026-07-11 Phase-1 create executor (gated, dry-run-first, productSet, typed metafields) + enrichment; 632 validated well-formed
  78. 91b99af 2026-07-11 York Phase-1 enrich: PIL median-cut color-hex, live-verified collection routing, tag derivation, local settlement screen (0 prohibited / 11 REVIEW)
  79. 04ce3dc 2026-07-11 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
  80. e2b607e 2026-07-11 Generate 632 Phase-1 create payloads (DWJS-91508..92139, DRAFT, MAP-priced, 23 metafields each, image+desc complete)
  81. 62b5b2b 2026-07-11 Onboarding Phase-1 dry-run: sample create payload (Loom Wheat), 25 deterministic metafields mapped, 4 enrichment gaps flagged; next SKU DWJS-91508
  82. c296ecb 2026-07-11 Onboarding scope (read-only): 2134 genuinely-new, settlement pre-screen + image/price inventory, phase1-ready list
  83. 57bd6a8 2026-07-11 Relink analysis: 745 'quarantine' = true cross-brand collisions (non-York), correctly excluded; York MAP coverage complete (548 done, 0 increases remain, 3 optional decreases)
  84. a3f51c8 2026-07-11 York PL: metafield-bridge recovery — +51 York Wallcoverings patterns (Jeffrey Stevens vendor) raised to MAP; 745 collision-prone quarantined
  85. 36e96cb 2026-07-11 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
  86. 550ab88 2026-07-10 York PL reprice APPLIED live: 497 roll prices set to MAP (0 err, verified); disco no-op (392 already inactive)
  87. 4d1b7d1 2026-07-10 York PL live reprice: brewster_catalog bridge, dry-run (497 live→MAP, +43 avg, 253 stale ids)
  88. ed0777e 2026-07-10 York+PL Aug-2026 reprice prep: master load, verdict-A pricing, reprice/new/disco plans
  89. 29cfbe2 2026-07-10 auto-save: 2026-07-10T17:39:43 (1 files) — data/

Authors

Agents used

  • secrets-manager3

Skills used

  • /data35
  • /latest34
  • /york-cadence3
  • /disco3
  • /catch2
  • /bridge-reprice-plan2
  • /empty1
  • /secrets-manager1
  • /claude1
  • /code1
  • /enrich-onboard1
  • /leaf1
  • /image-held1
  • /color-fail1
  • /image1
  • /deciduous1
  • /egret1
  • /crane1
  • /heron1
  • /peacock1
  • /feather1
  • /bridge1
  • /memo1
  • /auto-onboard1
  • /on-demand1
  • /week1
  • /morning1
  • /run1
  • /onboard-payloads1
  • /onboard-color-fail-list1

Creative ideas + design notes

Commits with substantial prose (≥120 chars) — the rationale behind each move.

a908d02 · 2026-09-15 · Fix two reproduced defects: silent-degrade in york-cadence + hard-exit-on-missing-secret regression
1. cadence/york-cadence.mjs: the bare try{}catch(e){} wrapping the naturals
   single-roll (RPS) query and the onboard-candidate query silently emptied
   both on a transient PG hiccup, letting the daily cadence run on degraded
   data with no signal (silent-MAP-overprice class). Both catches now log an
   explicit error naming the failed query and process.exit(1) instead of
   proceeding on empty data. Pricing math unchanged.

2. All 6 scripts (bridge-reprice, build-rows-17, cadence/york-cadence,
   diag-brewster-images, recover-7-settlement, recover-images-17): the prior
   fix made a missing DW_ADMIN_PG_PASSWORD a hard process.exit(1). dw_admin on
   127.0.0.1 is TRUST auth, so a wrong/empty password still connects — the
   hard-exit was a new regression where the job previously ran. Softened to
   WARN-and-proceed: wrap the .env read in try/catch, warn, set PGPASSWORD='',
   and let the actual psql call fail loudly only if a password is truly
   required on the host. Still reads the pw from secrets-manager/.env when present.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b984417 · 2026-09-15 · Fix broken PGPASSWORD psql auth in 6 scripts; read dw_admin pw from secrets-manager/.env
The inline `PGPASSWORD=` prefix sent libpq an empty password (nothing exports
PGPASSWORD, and ~/.pgpass has no dw_unified/dw_admin line to fall back to), which
in bridge-reprice was swallowed and silently degraded pricing to MAP-only
(overpricing naturals). Now each script reads the real DW_ADMIN_PG_PASSWORD from
~/Projects/secrets-manager/.env (same pattern as SHOPIFY_ADMIN_TOKEN) and passes
it via execSync's env option (no shell-quoting risk). bridge-reprice now aborts
LOUDLY (console.error + exit 1) if the single-roll or valid-MAP DB load fails
instead of falling back to MAP-only. Removed a leftover hardcoded pw and repaired
a corrupted import line. Pricing math unchanged. Verified: node --check all 6 +
read-only `select 1` over TCP and the /tmp socket.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pnon7dut9MfPekhhm9YY4Q
2827a4c · 2026-09-12 · TK-11547: weight go-live gate on the york publish cadence
publish-632.mjs flips York DRAFTs to ACTIVE on com.steve.york-publish-cadence. It already
held for settlement REVIEW but had no weight condition, so it could publish a product live
at zero weight — which collapses the order into the lowest weight tier / free-shipping band
and mis-costs DW freight (Steve's TK-11414 rule).

Found by shopify-activator-register (TK-11498) on its first run, not by hand — this file was
never in the TK-11414/TK-11471 field of view.

- The Sku query now selects inventoryItem measurement weight value+unit, and widens
  first:1 -> first:10. Without the select the gate would read a response that never carried
  weight and pass 100%; without the widen a zero-weight SAMPLE sibling would be invisible,
  and dw-active-weight-canary FAILs on those too (43 of the 83 live offenders were samples).
- HOLD, not self-heal, for two reasons: this script only ever flips status (weight belongs
  upstream at create, and a zero here means the upstream payload regressed and should be
  seen), and it authenticates with the NARROW SHOPIFY_ADMIN_TOKEN which lacks
  write_inventory — a heal would 403 and, if swallowed, publish at zero weight anyway.
- Held items are counted and named in the run summary, so this cannot become a silent stall.

test-weight-gate.mjs — 11/11, offline. Injected faults (zero sellable, zero SAMPLE, null,
absent measurement, negative, NaN) all HOLD; GRAMS/KILOGRAMS/OUNCES convert and do not
falsely hold; plus four structural checks that the gate cannot be vacuous — the query really
selects weight, it is no longer first:1, the hold precedes the mutation, and held items are
surfaced rather than silently dropped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
d25b850 · 2026-07-30 · Onboard 12 York 'New' items as DRAFT (DWJS-92941..92952) — TK-10031
- Diagnosed the 17 'onboard-ready': brewster_catalog.image_url is CROSS-LINKED (wrong image per SKU) for all 17
  (incl. a butterfly image on Abilene-Ikat = settlement risk). Recovered correct CDN URLs by name-slug match
  for 12; visually inspected all 12 = settlement-clean + name-correct. 5 have no findable correct image -> held.
- Collision-safe SKU alloc (start DWJS-92941; true max live = 92940; the stock builder only scanned the phase-1
  632 and would collide). Separate -12 pipeline files so the live 735 queue + held-lists are never clobbered.
- Created 12 DRAFT, 0 err, verified 12/12 (DRAFT + correct image + mfr metafield + collections). Publish DRAFT->ACTIVE
  remains a separate gated step. Added the 5 image-corrupt SKUs to onboard-image-held.json.
563cd8e · 2026-07-28 · York cadence onboard-ready: subtract deliberately-held items + patch leaky keyword filter -> 87->17
- Subtract onboard-settlement-held(59)/image-held/color-fail(7) mfrs: the keyword filter was weaker than
  the real settlement/image gate, so 66 held items were re-proposed daily. + add leaves/deciduous/egret/
  flamingo/crane/heron/peacock/feather to the pre-screen (Egret/Flamingo/Coleus-Leaves/Greenwood-Deciduous
  leaked past 'leaf'/'bird'). onboard-ready 87->17 (17 genuinely-new settlement-keyword-clear imaged).
- Staged the 17 clean candidates to data-onboard17-candidates.json (tracked).
d27db35 · 2026-07-28 · bridge-reprice: valid-MAP-set guard (dup-MAP SKUs) + NaN/0 price skip -> WOULD WRITE 0
- VMAP: load all us_map values per SKU from york_master_aug2026; skip when live matches ANY (the deduped
  CSV kept only one, so bridge was pushing correctly-priced dup-MAP rolls to the other value: NW3503/04/93).
- NaN/0 guard: dirty master-priced-by-sku.csv rows no longer pollute the held DOWN bucket (46 skipped).
- Full-scan dry-run: UP 0 / DOWN 0 / WOULD WRITE 0 — now agrees with york-cadence (0 legit reprice).
4b91284 · 2026-07-28 · York cadence/bridge: fix scan-truncation cap (90x60=5400 -> 120x100) — JS catalog is 6193
Root cause of the chronic onboard-ready=619 false alarm: the vendor:'Jeffrey Stevens' live scan
capped at 90 pages x 60 = 5400 products but the catalog is ~6193, silently missing ~793 late-page
products (AH295100 is #5944). Their live SKUs went unrecognized -> inflated onboard-ready AND could
mask real reprice/disco in the tail. Full-scan re-test: live JS 5367->6141, onboard-ready 619->87
(87 spot-verified genuinely un-onboarded, not false positives), reprice-drift 0, disco 0.
25d9e88 · 2026-07-28 · York cadence fixes: reprice valid-price-set (dup MAP rows) + bridge single-roll-aware + NO_WRITE test mode
- 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)
- 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)
- york-cadence: add YORK_CADENCE_NO_WRITE=1 read-only test mode (no latest.json/memo/CNCP/auto-onboard writes)
367e82b · 2026-07-14 · Remove onboard-set publish cadence plist (Steve's call)
Deletes com.steve.york-onboard-publish-cadence.plist. Was never armed (RunAtLoad=false,
never bootstrapped). publish-onboard.mjs kept for manual/on-demand DRAFT->ACTIVE publishing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
572076f · 2026-07-14 · Onboard-set publisher + weekly cadence (batches)
publish-onboard.mjs: DRAFT->ACTIVE for the onboard-payloads generation (735 eligible),
nets its OWN exclusion lists (settlement+image+colorfail=66, verified 0 overlap =
pre-excluded, defensive no-op). DRY-RUN default, --apply --i-am-steve gate, --limit=N
batch cap from the start, idempotent + miss-tolerant (only flips already-created DRAFTs,
so it tracks the nightly onboard creation drip). Distinct set from publish-632 (phase1) —
never cross the exclusion lists.

Weekly LaunchAgent (Tue 07:00, --limit=100, RunAtLoad=false, launchd-safe abs node path +
WorkingDirectory). Mirrors the York phase1 publish cadence, offset one day.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
a3b8a4f · 2026-07-14 · York publish on a weekly cadence (100/wk) instead of big-bang
Steve's call: do NOT flip all 621 York DRAFTs live at once. Added --limit=N cap to
publish-632.mjs (bounds NEW publishes per run; skips already-ACTIVE, holds the 11
settlement-REVIEW flags) and a weekly LaunchAgent (Mon 07:00, --limit=100) that drips
DRAFT->ACTIVE ~100/week to exhaust the 621 eligible set over ~7 weeks. RunAtLoad=false
(no big-bang, no fire-on-reboot). Absolute node path + WorkingDirectory set (launchd-safe).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
a192374 · 2026-07-14 · Fix York auto-onboard silent failure: use process.execPath not bare node
launchd's stripped PATH has no Homebrew node, so execSync('node york-new-create.mjs')
threw 'node: command not found' every 6:35am run — caught+logged as 'skipped', so the
Steve-authorized ~100/morning DRAFT drip created zero drafts unnoticed. Verified fixed
under realistic launchd env (HOME set, minimal PATH): creator now resolves, validates
735 queued payloads, dry-runs clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
27f6dd0 · 2026-07-12 · cadence: fix swallowed-SQL-error false-zero — onboard-ready was 0, is really 822
The onboardCand query is multi-line; q() ran it via 'psql -c "<sql>"' which
throws 'invalid command \n' on embedded newlines. That throw was caught by the
query's try/catch and returned [], so onboardReady reported 0 for months while
822 imaged+settlement-clear New SKUs sat genuinely un-onboarded. Route q()
through a temp .sql file + -f so multi-line SQL is safe. Verified: onboard-ready 0 -> 822.

File tree

703 files tracked. Click any to browse the source at HEAD.

Other build journals

← Yolo Agent Tasks Staging  ·  all 4 projects  ·  York Yardgood Exec →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 3ms