← back to Rentv
SAFETY: fail-closed kill switch on PR Gmail send() — Steve directive 2026-08-15, no rentv emails to anyone
8de14eefee6a69aa51e01c37faa2bf64032ef201 · 2026-08-15 08:24:03 -0700 · Steve Abrams
Files touched
M src/pr/services/email-providers.js
Diff
commit 8de14eefee6a69aa51e01c37faa2bf64032ef201
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sat Aug 15 08:24:03 2026 -0700
SAFETY: fail-closed kill switch on PR Gmail send() — Steve directive 2026-08-15, no rentv emails to anyone
---
src/pr/services/email-providers.js | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/pr/services/email-providers.js b/src/pr/services/email-providers.js
index 1c2d778a..08cb50ca 100644
--- a/src/pr/services/email-providers.js
+++ b/src/pr/services/email-providers.js
@@ -88,6 +88,14 @@ class GmailProvider {
return { draft_id: j.id, message_id: j.message && j.message.id, thread_id: j.message && j.message.threadId };
}
async send({ draft_id }) {
+ // ── HARD KILL SWITCH (Steve directive 2026-08-15: "do not allow any rentv emails to
+ // be sent to anyone"). Fail-closed: refuse to send while the block sentinel exists.
+ // Remove ~/.claude/rentv-EMAIL-SEND-BLOCK (and any Kamatera-side copy) to re-enable.
+ const _fs = require('fs'), _os = require('os'), _path = require('path');
+ const _block = _path.join(_os.homedir(), '.claude', 'rentv-EMAIL-SEND-BLOCK');
+ if (_fs.existsSync(_block)) {
+ throw new Error(`RENTV email sending DISABLED by Steve directive 2026-08-15 (kill switch: ${_block}). Refusing to send draft ${draft_id}. Delete the sentinel to re-enable.`);
+ }
const j = await this._call('/drafts/send', { method: 'POST', body: JSON.stringify({ id: draft_id }) });
return { message_id: j.id, thread_id: j.threadId };
}
← f552f260 TK-10578: pr-intelligence buildMime — add List-Unsubscribe h
·
back to Rentv
·
auto-data-snapshot: 2026-08-15T08:43:00 (7 data files) — dat 9e70231c →