← back to Dw Design Bridge
snapshot: 17 file(s) changed, +16 new, ~1 modified
dd16961706a9d34a333f2940a86892ba53a3b006 · 2026-05-13 08:57:52 -0700 · Steve
Files touched
A ecosystem.config.cjsA jobs/2026-05-08-07-03-19-03daf5.jsonA jobs/2026-05-08-07-03-19-564a39.jsonA jobs/2026-05-08-07-03-20-162d0e.jsonA jobs/2026-05-08-07-03-20-162d0e/0.svgA jobs/2026-05-08-07-03-20-162d0e/2.svgA jobs/2026-05-08-07-03-20-4243ca.jsonA jobs/2026-05-08-07-03-20-4306e5.jsonA jobs/2026-05-08-07-03-20-4306e5/2.svgA jobs/2026-05-08-07-03-20-659a24.jsonA jobs/2026-05-08-07-03-20-949b50.jsonA jobs/2026-05-08-07-03-20-965d68.jsonA jobs/2026-05-08-07-03-20-acdb90.jsonA jobs/2026-05-08-07-03-20-cef268.jsonA jobs/2026-05-08-07-03-20-cef268/2.svgA public/favicon.svgM public/index.htmlA seed-briefs.sh
Diff
commit dd16961706a9d34a333f2940a86892ba53a3b006
Author: Steve <steve@designerwallcoverings.com>
Date: Wed May 13 08:57:52 2026 -0700
snapshot: 17 file(s) changed, +16 new, ~1 modified
---
ecosystem.config.cjs | 19 +++++++++
jobs/2026-05-08-07-03-19-03daf5.json | 30 ++++++++++++++
jobs/2026-05-08-07-03-19-564a39.json | 30 ++++++++++++++
jobs/2026-05-08-07-03-20-162d0e.json | 76 +++++++++++++++++++++++++++++++++++
jobs/2026-05-08-07-03-20-162d0e/0.svg | 13 ++++++
jobs/2026-05-08-07-03-20-162d0e/2.svg | 13 ++++++
jobs/2026-05-08-07-03-20-4243ca.json | 30 ++++++++++++++
jobs/2026-05-08-07-03-20-4306e5.json | 52 ++++++++++++++++++++++++
jobs/2026-05-08-07-03-20-4306e5/2.svg | 15 +++++++
jobs/2026-05-08-07-03-20-659a24.json | 30 ++++++++++++++
jobs/2026-05-08-07-03-20-949b50.json | 30 ++++++++++++++
jobs/2026-05-08-07-03-20-965d68.json | 30 ++++++++++++++
jobs/2026-05-08-07-03-20-acdb90.json | 30 ++++++++++++++
jobs/2026-05-08-07-03-20-cef268.json | 52 ++++++++++++++++++++++++
jobs/2026-05-08-07-03-20-cef268/2.svg | 9 +++++
public/favicon.svg | 6 +++
public/index.html | 2 +
seed-briefs.sh | 25 ++++++++++++
18 files changed, 492 insertions(+)
diff --git a/ecosystem.config.cjs b/ecosystem.config.cjs
new file mode 100644
index 0000000..811a0e4
--- /dev/null
+++ b/ecosystem.config.cjs
@@ -0,0 +1,19 @@
+module.exports = {
+ apps: [{
+ name: "dw-design-bridge",
+ script: "server.js",
+ cwd: __dirname,
+ env: {
+ NEXT_TELEMETRY_DISABLED: "1",
+ VITE_HOST: "0.0.0.0",
+ HOSTNAME: "0.0.0.0",
+ GUNICORN_BIND: "0.0.0.0:8000",
+ UVICORN_HOST: "0.0.0.0",
+ FLASK_RUN_HOST: "0.0.0.0",
+ BIND: "0.0.0.0",
+ HOST: "0.0.0.0",
+ },
+ autorestart: true,
+ max_memory_restart: "300M",
+ }],
+};
diff --git a/jobs/2026-05-08-07-03-19-03daf5.json b/jobs/2026-05-08-07-03-19-03daf5.json
new file mode 100644
index 0000000..1a15b63
--- /dev/null
+++ b/jobs/2026-05-08-07-03-19-03daf5.json
@@ -0,0 +1,30 @@
+{
+ "id": "2026-05-08-07-03-19-03daf5",
+ "brief": "Cork wallcovering · Sherman Oaks office reception · sustainable · earthy palette · acoustic damping · medium-scale woven",
+ "count": 3,
+ "status": "done",
+ "created_at": "2026-05-08T07:03:19.954Z",
+ "progress": "3/3",
+ "designs": [
+ {
+ "idx": 0,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:06:20.117Z"
+ },
+ {
+ "idx": 1,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:09:13.991Z"
+ },
+ {
+ "idx": 2,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:11:53.027Z"
+ }
+ ],
+ "started_at": "2026-05-08T07:03:19.963Z",
+ "finished_at": "2026-05-08T07:11:53.030Z"
+}
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-19-564a39.json b/jobs/2026-05-08-07-03-19-564a39.json
new file mode 100644
index 0000000..40f50c7
--- /dev/null
+++ b/jobs/2026-05-08-07-03-19-564a39.json
@@ -0,0 +1,30 @@
+{
+ "id": "2026-05-08-07-03-19-564a39",
+ "brief": "Silk wallpaper · Beverly Hills mansion entry foyer · jewel-toned · Chinese chinoiserie hand-painted · dramatic",
+ "count": 3,
+ "status": "done",
+ "created_at": "2026-05-08T07:03:19.994Z",
+ "progress": "3/3",
+ "designs": [
+ {
+ "idx": 0,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:05:41.261Z"
+ },
+ {
+ "idx": 1,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:08:24.340Z"
+ },
+ {
+ "idx": 2,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:11:06.554Z"
+ }
+ ],
+ "started_at": "2026-05-08T07:03:19.995Z",
+ "finished_at": "2026-05-08T07:11:06.557Z"
+}
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-162d0e.json b/jobs/2026-05-08-07-03-20-162d0e.json
new file mode 100644
index 0000000..fe7d625
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-162d0e.json
@@ -0,0 +1,76 @@
+{
+ "id": "2026-05-08-07-03-20-162d0e",
+ "brief": "Atomic-age 50s diner revival · boomerang starburst · turquoise coral cream · midcentury optimistic",
+ "count": 3,
+ "status": "done",
+ "created_at": "2026-05-08T07:03:20.313Z",
+ "progress": "3/3",
+ "designs": [
+ {
+ "idx": 0,
+ "ok": true,
+ "design": {
+ "name": "Atomic Starburst Diner",
+ "pattern_concept": "Dynamic boomerang starbursts in midcentury atomic motifs",
+ "palette": [
+ "#00CEDB",
+ "#FF7F50",
+ "#FFFDD0",
+ "#000080"
+ ],
+ "scale": "medium",
+ "repeat": "drop match 21in vertical",
+ "material_pairing": "vinyl",
+ "style_tags": [
+ "midcentury",
+ "atomic age",
+ "retro diner"
+ ],
+ "use_case": "hotel lobby feature wall",
+ "marketing_copy": "Radiate 50s optimism with boomerang starbursts in vibrant turquoise and coral",
+ "trade_grade": "class A",
+ "price_band": "$$$"
+ },
+ "preview_url": "/jobs/2026-05-08-07-03-20-162d0e/0.svg",
+ "generated_at": "2026-05-08T07:04:27.416Z"
+ },
+ {
+ "idx": 1,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:06:46.648Z"
+ },
+ {
+ "idx": 2,
+ "ok": true,
+ "design": {
+ "name": "Atomic Starburst Diner",
+ "pattern_concept": "Dynamic boomerang-shaped starbursts in turquoise, coral, and cream on a cream background, evoking 1950s diner optimism",
+ "palette": [
+ "#00CEDB",
+ "#FF7F50",
+ "#FFF8DC",
+ "#8B8B8B"
+ ],
+ "scale": "medium",
+ "repeat": "drop match 21in vertical",
+ "material_pairing": "mylar",
+ "style_tags": [
+ "midcentury",
+ "retro",
+ "diner",
+ "atomic",
+ "starburst"
+ ],
+ "use_case": "hotel lobby feature wall",
+ "marketing_copy": "Revive 1950s diner charm with vibrant boomerang starbursts and optimistic color",
+ "trade_grade": "class A",
+ "price_band": "$$$"
+ },
+ "preview_url": "/jobs/2026-05-08-07-03-20-162d0e/2.svg",
+ "generated_at": "2026-05-08T07:09:41.985Z"
+ }
+ ],
+ "started_at": "2026-05-08T07:03:20.315Z",
+ "finished_at": "2026-05-08T07:09:41.989Z"
+}
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-162d0e/0.svg b/jobs/2026-05-08-07-03-20-162d0e/0.svg
new file mode 100644
index 0000000..c76a03b
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-162d0e/0.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 280 280" width="100%" height="auto" preserveAspectRatio="xMidYMid slice">
+ <defs>
+ <pattern id="p2026-05-08-07-03-20-162d0e-0" x="0" y="0" width="140" height="140" patternUnits="userSpaceOnUse">
+ <rect width="140" height="140" fill="#00CEDB"/>
+
+ <polygon points="70,0 140,70 70,140 0,70" fill="#FF7F50" opacity="0.85"/>
+ <polygon points="70,25.2 114.8,70 70,114.8 25.2,70" fill="#FFFDD0"/>
+ <circle cx="70" cy="70" r="8.4" fill="#000080"/>
+
+ </pattern>
+ </defs>
+ <rect width="280" height="280" fill="url(#p2026-05-08-07-03-20-162d0e-0)"/>
+ </svg>
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-162d0e/2.svg b/jobs/2026-05-08-07-03-20-162d0e/2.svg
new file mode 100644
index 0000000..d52b2fc
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-162d0e/2.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 280 280" width="100%" height="auto" preserveAspectRatio="xMidYMid slice">
+ <defs>
+ <pattern id="p2026-05-08-07-03-20-162d0e-2" x="0" y="0" width="140" height="140" patternUnits="userSpaceOnUse">
+ <rect width="140" height="140" fill="#00CEDB"/>
+
+ <polygon points="70,0 140,70 70,140 0,70" fill="#FF7F50" opacity="0.85"/>
+ <polygon points="70,25.2 114.8,70 70,114.8 25.2,70" fill="#FFF8DC"/>
+ <circle cx="70" cy="70" r="8.4" fill="#8B8B8B"/>
+
+ </pattern>
+ </defs>
+ <rect width="280" height="280" fill="url(#p2026-05-08-07-03-20-162d0e-2)"/>
+ </svg>
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-4243ca.json b/jobs/2026-05-08-07-03-20-4243ca.json
new file mode 100644
index 0000000..6e5db47
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-4243ca.json
@@ -0,0 +1,30 @@
+{
+ "id": "2026-05-08-07-03-20-4243ca",
+ "brief": "Architectural specifier · class A commercial · minimal geometric · architectural concrete + warm bronze",
+ "count": 3,
+ "status": "done",
+ "created_at": "2026-05-08T07:03:20.353Z",
+ "progress": "3/3",
+ "designs": [
+ {
+ "idx": 0,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:06:20.360Z"
+ },
+ {
+ "idx": 1,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:09:20.379Z"
+ },
+ {
+ "idx": 2,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:12:20.385Z"
+ }
+ ],
+ "started_at": "2026-05-08T07:03:20.354Z",
+ "finished_at": "2026-05-08T07:12:20.386Z"
+}
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-4306e5.json b/jobs/2026-05-08-07-03-20-4306e5.json
new file mode 100644
index 0000000..2b84f42
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-4306e5.json
@@ -0,0 +1,52 @@
+{
+ "id": "2026-05-08-07-03-20-4306e5",
+ "brief": "Restaurant private dining · moody · velvet-noir botanical · candle-lit · class A vinyl scrubbable",
+ "count": 3,
+ "status": "done",
+ "created_at": "2026-05-08T07:03:20.218Z",
+ "progress": "3/3",
+ "designs": [
+ {
+ "idx": 0,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:04:51.522Z"
+ },
+ {
+ "idx": 1,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:07:34.099Z"
+ },
+ {
+ "idx": 2,
+ "ok": true,
+ "design": {
+ "name": "Nocturne Velvet Botanical",
+ "pattern_concept": "Deep, velvety botanicals in noir hues with subtle candlelight glow effects",
+ "palette": [
+ "#1a1a1a",
+ "#2c1414",
+ "#4a2d2d",
+ "#333333"
+ ],
+ "scale": "medium",
+ "repeat": "drop match 21in vertical",
+ "material_pairing": "vinyl",
+ "style_tags": [
+ "moody",
+ "luxury",
+ "botanical"
+ ],
+ "use_case": "Restaurant private dining feature wall",
+ "marketing_copy": "Velvet noir botanicals bathed in candlelight – opulent yet intimate",
+ "trade_grade": "class A",
+ "price_band": "$$$"
+ },
+ "preview_url": "/jobs/2026-05-08-07-03-20-4306e5/2.svg",
+ "generated_at": "2026-05-08T07:10:15.621Z"
+ }
+ ],
+ "started_at": "2026-05-08T07:03:20.218Z",
+ "finished_at": "2026-05-08T07:10:15.623Z"
+}
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-4306e5/2.svg b/jobs/2026-05-08-07-03-20-4306e5/2.svg
new file mode 100644
index 0000000..d754935
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-4306e5/2.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 280 280" width="100%" height="auto" preserveAspectRatio="xMidYMid slice">
+ <defs>
+ <pattern id="p2026-05-08-07-03-20-4306e5-2" x="0" y="0" width="140" height="140" patternUnits="userSpaceOnUse">
+ <rect width="140" height="140" fill="#1a1a1a"/>
+
+ <ellipse cx="70" cy="44.8" rx="19.6" ry="44.800000000000004" fill="#2c1414" opacity="0.85" transform="rotate(-15 70 70)"/>
+ <ellipse cx="70" cy="44.8" rx="19.6" ry="44.800000000000004" fill="#4a2d2d" opacity="0.7" transform="rotate(20 70 70)"/>
+ <circle cx="70" cy="95.2" r="8.4" fill="#333333"/>
+ <path d="M 70 77 Q 44.8 58.8 25.199999999999996 95.2" stroke="#2c1414" stroke-width="2" fill="none"/>
+ <path d="M 70 77 Q 95.2 58.8 114.80000000000001 95.2" stroke="#2c1414" stroke-width="2" fill="none"/>
+
+ </pattern>
+ </defs>
+ <rect width="280" height="280" fill="url(#p2026-05-08-07-03-20-4306e5-2)"/>
+ </svg>
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-659a24.json b/jobs/2026-05-08-07-03-20-659a24.json
new file mode 100644
index 0000000..8710d7f
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-659a24.json
@@ -0,0 +1,30 @@
+{
+ "id": "2026-05-08-07-03-20-659a24",
+ "brief": "Pastel children's room · peel-and-stick · whimsical small-scale · soft botanical · safe non-toxic",
+ "count": 3,
+ "status": "done",
+ "created_at": "2026-05-08T07:03:20.165Z",
+ "progress": "3/3",
+ "designs": [
+ {
+ "idx": 0,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:06:20.196Z"
+ },
+ {
+ "idx": 1,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:09:20.249Z"
+ },
+ {
+ "idx": 2,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:12:20.292Z"
+ }
+ ],
+ "started_at": "2026-05-08T07:03:20.166Z",
+ "finished_at": "2026-05-08T07:12:20.294Z"
+}
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-949b50.json b/jobs/2026-05-08-07-03-20-949b50.json
new file mode 100644
index 0000000..71e9a2e
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-949b50.json
@@ -0,0 +1,30 @@
+{
+ "id": "2026-05-08-07-03-20-949b50",
+ "brief": "Hotel lobby · luxury · oversized chinoiserie panoramic mural · gold-leaf accents · trade-grade",
+ "count": 3,
+ "status": "done",
+ "created_at": "2026-05-08T07:03:20.276Z",
+ "progress": "3/3",
+ "designs": [
+ {
+ "idx": 0,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:06:20.296Z"
+ },
+ {
+ "idx": 1,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:09:20.298Z"
+ },
+ {
+ "idx": 2,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:12:17.802Z"
+ }
+ ],
+ "started_at": "2026-05-08T07:03:20.277Z",
+ "finished_at": "2026-05-08T07:12:17.803Z"
+}
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-965d68.json b/jobs/2026-05-08-07-03-20-965d68.json
new file mode 100644
index 0000000..e627ab8
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-965d68.json
@@ -0,0 +1,30 @@
+{
+ "id": "2026-05-08-07-03-20-965d68",
+ "brief": "Eco-sustainable · low-VOC corporate office · soft humanist · grasscloth-inspired · earth tones",
+ "count": 3,
+ "status": "done",
+ "created_at": "2026-05-08T07:03:20.120Z",
+ "progress": "3/3",
+ "designs": [
+ {
+ "idx": 0,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:05:16.389Z"
+ },
+ {
+ "idx": 1,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:07:59.388Z"
+ },
+ {
+ "idx": 2,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:10:41.537Z"
+ }
+ ],
+ "started_at": "2026-05-08T07:03:20.122Z",
+ "finished_at": "2026-05-08T07:10:41.542Z"
+}
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-acdb90.json b/jobs/2026-05-08-07-03-20-acdb90.json
new file mode 100644
index 0000000..5e40739
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-acdb90.json
@@ -0,0 +1,30 @@
+{
+ "id": "2026-05-08-07-03-20-acdb90",
+ "brief": "1920s art deco · jazz-age library · gilded geometric sunburst · midnight blue and gold · trade-grade vinyl",
+ "count": 3,
+ "status": "done",
+ "created_at": "2026-05-08T07:03:20.016Z",
+ "progress": "3/3",
+ "designs": [
+ {
+ "idx": 0,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:06:20.186Z"
+ },
+ {
+ "idx": 1,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:09:20.199Z"
+ },
+ {
+ "idx": 2,
+ "ok": false,
+ "error": "The operation was aborted due to timeout",
+ "generated_at": "2026-05-08T07:12:20.265Z"
+ }
+ ],
+ "started_at": "2026-05-08T07:03:20.017Z",
+ "finished_at": "2026-05-08T07:12:20.270Z"
+}
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-cef268.json b/jobs/2026-05-08-07-03-20-cef268.json
new file mode 100644
index 0000000..5c6df10
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-cef268.json
@@ -0,0 +1,52 @@
+{
+ "id": "2026-05-08-07-03-20-cef268",
+ "brief": "1980s memphis · postmodern boutique retail · neon palette · oversized geometric blocks · class A",
+ "count": 3,
+ "status": "done",
+ "created_at": "2026-05-08T07:03:20.078Z",
+ "progress": "3/3",
+ "designs": [
+ {
+ "idx": 0,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:06:07.662Z"
+ },
+ {
+ "idx": 1,
+ "ok": false,
+ "error": "no JSON found in response",
+ "generated_at": "2026-05-08T07:08:49.020Z"
+ },
+ {
+ "idx": 2,
+ "ok": true,
+ "design": {
+ "name": "Neon Memphis Fusion",
+ "pattern_concept": "Vibrant oversized geometric blocks in neon hues, blending Memphis motifs with postmodern edge",
+ "palette": [
+ "#FF69B4",
+ "#00BFFF",
+ "#FFD700",
+ "#000000"
+ ],
+ "scale": "oversize",
+ "repeat": "drop match 36in vertical",
+ "material_pairing": "vinyl",
+ "style_tags": [
+ "Memphis",
+ "Postmodern",
+ "Geometric"
+ ],
+ "use_case": "Boutique retail feature wall with bold visual impact",
+ "marketing_copy": "Dazzling Memphis meets neon geometry for a postmodern retail statement",
+ "trade_grade": "class A",
+ "price_band": "$$$"
+ },
+ "preview_url": "/jobs/2026-05-08-07-03-20-cef268/2.svg",
+ "generated_at": "2026-05-08T07:11:28.697Z"
+ }
+ ],
+ "started_at": "2026-05-08T07:03:20.079Z",
+ "finished_at": "2026-05-08T07:11:28.699Z"
+}
\ No newline at end of file
diff --git a/jobs/2026-05-08-07-03-20-cef268/2.svg b/jobs/2026-05-08-07-03-20-cef268/2.svg
new file mode 100644
index 0000000..48992eb
--- /dev/null
+++ b/jobs/2026-05-08-07-03-20-cef268/2.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" width="100%" height="auto" preserveAspectRatio="xMidYMid slice">
+ <defs>
+ <pattern id="p2026-05-08-07-03-20-cef268-2" x="0" y="0" width="320" height="320" patternUnits="userSpaceOnUse">
+ <rect width="320" height="320" fill="#FF69B4"/>
+ <line x1="160" y1="320" x2="-64.0" y2="320.0" stroke="#000000" stroke-width="2"/><line x1="160" y1="320" x2="-46.9" y2="234.3" stroke="#00BFFF" stroke-width="2"/><line x1="160" y1="320" x2="1.6" y2="161.6" stroke="#000000" stroke-width="2"/><line x1="160" y1="320" x2="74.3" y2="113.1" stroke="#00BFFF" stroke-width="2"/><line x1="160" y1="320" x2="160.0" y2="96.0" stroke="#000000" stroke-width="2"/><line x1="160" y1="320" x2="245.7" y2="113.1" stroke="#00BFFF" stroke-width="2"/><line x1="160" y1="320" x2="318.4" y2="161.6" stroke="#000000" stroke-width="2"/><line x1="160" y1="320" x2="366.9" y2="234.3" stroke="#00BFFF" stroke-width="2"/><line x1="160" y1="320" x2="384.0" y2="320.0" stroke="#000000" stroke-width="2"/><circle cx="160" cy="320" r="38.4" fill="#FFD700"/>
+ </pattern>
+ </defs>
+ <rect width="640" height="640" fill="url(#p2026-05-08-07-03-20-cef268-2)"/>
+ </svg>
\ No newline at end of file
diff --git a/public/favicon.svg b/public/favicon.svg
new file mode 100644
index 0000000..25a9259
--- /dev/null
+++ b/public/favicon.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
+ <rect width="64" height="64" rx="10" fill="#0a0a0a"/>
+ <text x="50%" y="50%" text-anchor="middle" dominant-baseline="central"
+ font-family="Georgia, 'Times New Roman', serif" font-weight="700"
+ font-size="32" fill="#ffffff">DW</text>
+</svg>
diff --git a/public/index.html b/public/index.html
index 445ab42..216098c 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,6 +1,8 @@
<!doctype html>
<html lang="en">
<head>
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg">
+
<meta charset="utf-8">
<title>DW Design Bridge — AI Factory × Designer Wallcoverings</title>
<style>
diff --git a/seed-briefs.sh b/seed-briefs.sh
new file mode 100755
index 0000000..3dcee8e
--- /dev/null
+++ b/seed-briefs.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+# Queue a batch of diverse design briefs across the DW vertical fleet.
+set -uo pipefail
+
+URL=${URL:-http://127.0.0.1:9923/api/jobs}
+
+queue() {
+ local brief="$1" count="${2:-3}"
+ curl -s -X POST "$URL" -H 'Content-Type: application/json' \
+ -d "{\"brief\":\"$brief\",\"count\":$count}" \
+ | python3 -c "import json,sys; d=json.load(sys.stdin); print(f\"queued {d['id']} · count={d['count']}\")" 2>/dev/null
+}
+
+queue "Cork wallcovering · Sherman Oaks office reception · sustainable · earthy palette · acoustic damping · medium-scale woven" 3
+queue "Silk wallpaper · Beverly Hills mansion entry foyer · jewel-toned · Chinese chinoiserie hand-painted · dramatic" 3
+queue "1920s art deco · jazz-age library · gilded geometric sunburst · midnight blue and gold · trade-grade vinyl" 3
+queue "1980s memphis · postmodern boutique retail · neon palette · oversized geometric blocks · class A" 3
+queue "Eco-sustainable · low-VOC corporate office · soft humanist · grasscloth-inspired · earth tones" 3
+queue "Pastel children's room · peel-and-stick · whimsical small-scale · soft botanical · safe non-toxic" 3
+queue "Restaurant private dining · moody · velvet-noir botanical · candle-lit · class A vinyl scrubbable" 3
+queue "Hotel lobby · luxury · oversized chinoiserie panoramic mural · gold-leaf accents · trade-grade" 3
+queue "Atomic-age 50s diner revival · boomerang starburst · turquoise coral cream · midcentury optimistic" 3
+queue "Architectural specifier · class A commercial · minimal geometric · architectural concrete + warm bronze" 3
+
+echo "[done] 10 briefs queued · 30 designs total"
← 3741d2a gitignore: protect .env* from accidental commits per MEMORY
·
back to Dw Design Bridge
·
fix: guard renderDesign against malformed/undefined design e 9ada06e →