← back to Wallco Ai
Honor force in bulk /api/cactus-decision live path — bulk Publish now bypasses the 100% gate (frontend already sent force:true; backend was dropping it → everything parked)
c9f199fdb9a9a94daa35a2c3cb44c215f65270d4 · 2026-05-29 12:57:55 -0700 · Steve
Files touched
Diff
commit c9f199fdb9a9a94daa35a2c3cb44c215f65270d4
Author: Steve <steve@designerwallcoverings.com>
Date: Fri May 29 12:57:55 2026 -0700
Honor force in bulk /api/cactus-decision live path — bulk Publish now bypasses the 100% gate (frontend already sent force:true; backend was dropping it → everything parked)
---
server.js | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/server.js b/server.js
index bd465fa..8621556 100644
--- a/server.js
+++ b/server.js
@@ -2121,10 +2121,14 @@ app.post('/api/cactus-decision/bulk', express.json({ limit: '256kb' }), (req, re
// 'live' — per-id, because each design runs its own publish gate.
if (action === 'live') {
+ // force:true is the "Publish anyway" override — bypasses the 100% publish
+ // gate for an explicit human bulk-publish (Steve: "always publish — dont
+ // stop if we say publish"). Without it each design must clear runPublishGate.
+ const force = req.body?.force === true;
let ok = 0, err = 0, held = 0; const results = [];
for (const id of ids) {
try {
- const r = applyCactusDecision(id, action);
+ const r = applyCactusDecision(id, action, { force });
if (r && r.gate_held) { results.push({ id, ok: true, gate_held: true, reasons: r.reasons }); held++; }
else { results.push({ id, ok: true }); ok++; }
}
← 08eb2ac Fix cactus-curator 'Published only' toggle to filter the mai
·
back to Wallco Ai
·
feat(curator): force-publish stoned-animals (Steve explicit 6e172f4 →