[object Object]

← back to Fabricut Internal

deploy: guard prod-only runtime data from rsync --delete

e79ebd6f3c730810406aec4675dbb2e8c69a6d04 · 2026-09-04 08:25:07 -0700 · Steve Abrams

deploy.sh runs 'rsync -az --delete' with no data/ exclude, so a deploy
overwrote the box's runtime file with the local copy and destroyed
everything written since the last deploy. Added a surgical
RSYNC_EXTRA_EXCLUDES for this project's runtime path(s) only, so genuine
build artifacts under data/ keep syncing.

Verified by itemized rsync --dry-run against prod: the runtime file is
listed for transfer WITHOUT the exclude and absent WITH it.

Fleet sweep, TK-11227. Same bug class as the July 2026 artmura/quadrille
mis-target fix and the abramsagency lead-ledger fix (TK-10536).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013mq9RQtVZZEWvreDqqTgv2

Files touched

Diff

commit e79ebd6f3c730810406aec4675dbb2e8c69a6d04
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Fri Sep 4 08:25:07 2026 -0700

    deploy: guard prod-only runtime data from rsync --delete
    
    deploy.sh runs 'rsync -az --delete' with no data/ exclude, so a deploy
    overwrote the box's runtime file with the local copy and destroyed
    everything written since the last deploy. Added a surgical
    RSYNC_EXTRA_EXCLUDES for this project's runtime path(s) only, so genuine
    build artifacts under data/ keep syncing.
    
    Verified by itemized rsync --dry-run against prod: the runtime file is
    listed for transfer WITHOUT the exclude and absent WITH it.
    
    Fleet sweep, TK-11227. Same bug class as the July 2026 artmura/quadrille
    mis-target fix and the abramsagency lead-ledger fix (TK-10536).
    
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_013mq9RQtVZZEWvreDqqTgv2
---
 .deploy.conf | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/.deploy.conf b/.deploy.conf
index cc68b22..48019d4 100644
--- a/.deploy.conf
+++ b/.deploy.conf
@@ -5,3 +5,10 @@ DOMAIN="fabricut--internal.designerwallcoverings.com"
 HEALTH_URL="http://localhost:PORT/healthz"   # /healthz is pre-auth
 BUILD_CMD="MODE=internal node scripts/build-fabricut.js"
 BASIC_AUTH="admin:DW2024!"
+
+# Runtime state written by the LIVE server (customer inquiries). deploy.sh runs
+# `rsync -az --delete`, so without this exclude a deploy overwrites the prod file
+# with the local copy and destroys every inquiry submitted since the last deploy.
+# Surgical on purpose: data/products.json + selection.json ARE build artifacts and
+# MUST keep syncing, so never blanket-exclude data/.
+RSYNC_EXTRA_EXCLUDES="/data/inquiries.jsonl"

← 1668d6d chore: v1.0.0 — go-live (session close)  ·  back to Fabricut Internal  ·  TK-11438: migrate postgres pool to unix socket (darwin fallb a672768 →