[object Object]

← back to Pattern Vault

STATUS: Spoonflower WORKS (id 22723313 proven); note test artifact

27a5610af00bb67a87c1ace0e52e7a1c16e77c04 · 2026-07-09 18:22:49 -0700 · Steve

Files touched

Diff

commit 27a5610af00bb67a87c1ace0e52e7a1c16e77c04
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu Jul 9 18:22:49 2026 -0700

    STATUS: Spoonflower WORKS (id 22723313 proven); note test artifact
---
 wpb-uploaders/STATUS.md | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/wpb-uploaders/STATUS.md b/wpb-uploaders/STATUS.md
index 348b036..722afe6 100644
--- a/wpb-uploaders/STATUS.md
+++ b/wpb-uploaders/STATUS.md
@@ -5,15 +5,19 @@ blocker clears AND Steve arms it (`touch platforms/<key>.ARMED`).
 
 | Platform | Code state | Exact blocker to arming | Type |
 |----------|-----------|--------------------------|------|
-| **Spoonflower** (Fernwick) | fail-loud ✓, filechooser ✓, consent net-block + iframe-dismiss ✓ | **File doesn't register post-filechooser** — the "Choose Files" native chooser fires and `setFiles` runs, but the upload never starts (stays on the empty `/new` form, no preview/Save). Needs a **HEADED watch session** to see the post-select state (preview? validation reject? anti-automation no-op?). | web (armed) |
+| **Spoonflower** (Fernwick) | ✅ **WORKS — PROVEN** (real design id 22723313 landed) | NONE for the upload itself. Fix chain: filechooser registers the file → a late "Agree & Continue" consent gate (appears AFTER staging) is dismissed → fail-loud id capture. The armed daily cron will now upload for real. Remaining: for-sale flip still OFF (payout/tax gated). | web (armed) |
 | **Etsy** (SteveAbramsStudios) | `createDraftListing` payload mapping ✓ (38 built, `--dry-run` proves it) | **(1) ETSY_OAUTH_TOKEN** (Steve-gated OAuth for the shop); **(2) taxonomy_id unresolved** (`plan.taxonomyIdResolved` is null — resolve via getSellerTaxonomyNodes once authed) | API |
 | **Creative Market** | disarmed stub (navigates to upload URL, fail-loud) | **Session capture** — need Steve to log in once → `sessions/creativemarket-state.json`; then live DOM calibration | web |
 | **Redbubble** | disarmed stub, fail-loud | **Session capture** + calibration; **AI-hostile** → anti-bot cadence critical (ban risk) | web |
 | **Society6** | disarmed stub, fail-loud | **Account still PENDING confirmation** — cannot even session-capture yet | web |
 | **Patternbank** | disarmed stub, fail-loud | **Account still PENDING confirmation** — cannot even session-capture yet | web |
 
+## Calibration artifact
+- Spoonflower design **22723313** ("…fix-test PRIVATE") is a REAL private design created to prove the
+  fix. It's a real generated pattern with a test title — Steve can delete it or keep it; it's PRIVATE.
+
 ## What's autonomously reversible from here
-- Spoonflower: nothing more headless — needs the headed session (Steve or a watched run).
+- Spoonflower: DONE — upload works; the armed cron now lands real ids. (Was: "needs headed session".)
 - Etsy: once Steve provides OAuth, wire the real `fetch` POST behind the token check + resolve taxonomy — the mapping is done.
 - CM/Redbubble: once Steve captures a session, calibrate each `uploadFn` against the live DOM.
 - Society6/Patternbank: blocked on account confirmation — nothing to do until then.

← f72c062 SPOONFLOWER UPLOAD WORKS (real id 22723313 proven): late-con  ·  back to Pattern Vault  ·  wpb-uploaders: generic session-capture (CM/Redbubble/Society e610955 →