[object Object]

← back to Rentv

Cody-gate: Deal Desk corpus /find is HONEST — the corpus IS rentv.com's own articles, so a corpus deal was ALREADY covered by RENTV; label it covered:{RENTV corpus} + mode:repurpose, reframe UI from 'uncovered deal' to 'pull a RENTV closing to repurpose'. True-uncovered stays the Gemini engine.

bf2e528dcff6cea0e32f5253a6b6464f2d6a2bb3 · 2026-08-05 14:58:25 -0700 · Steve Abrams

Files touched

Diff

commit bf2e528dcff6cea0e32f5253a6b6464f2d6a2bb3
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Aug 5 14:58:25 2026 -0700

    Cody-gate: Deal Desk corpus /find is HONEST — the corpus IS rentv.com's own articles, so a corpus deal was ALREADY covered by RENTV; label it covered:{RENTV corpus} + mode:repurpose, reframe UI from 'uncovered deal' to 'pull a RENTV closing to repurpose'. True-uncovered stays the Gemini engine.
---
 public/admin/pr-intelligence/deal-desk.html | 6 +++---
 server.js                                   | 5 ++++-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/public/admin/pr-intelligence/deal-desk.html b/public/admin/pr-intelligence/deal-desk.html
index e9fa6823..f83ce144 100644
--- a/public/admin/pr-intelligence/deal-desk.html
+++ b/public/admin/pr-intelligence/deal-desk.html
@@ -27,7 +27,7 @@
 <script>
 (async function () {
   const c = PR.frame('deal-desk', 'Deal Desk',
-    'A closed CRE deal RENTV hasn’t covered — adjust any field by typing an instruction, then spin social from it. Seeded with a real, verified, uncovered deal; the local model ($0) handles edits + social.');
+    'Adjust any field by typing an instruction, then spin social from it — the local model ($0) handles edits + social. “Pull a RENTV closing” surfaces a real past RENTV deal from the corpus to repurpose ($0); for a deal RENTV hasn’t covered yet, use the Gemini engine (needs credits).');
   c.insertAdjacentHTML('beforeend', '<div class="dd-wrap"><div id="left"></div><div id="right"></div></div>');
   const $ = id => document.getElementById(id);
 
@@ -52,7 +52,7 @@
   function renderDeal() {
     $('left').innerHTML = `
       <div class="dd-card">
-        <div style="display:flex;justify-content:space-between;align-items:center"><h3>The deal</h3><button class="btn sm" id="find" title="Pulls a real closed deal from the RENTV corpus that the news archive hasn't covered — $0, local">🔎 Find another uncovered deal</button></div>
+        <div style="display:flex;justify-content:space-between;align-items:center"><h3>The deal</h3><button class="btn sm" id="find" title="Pulls a real past RENTV closing from the corpus to repurpose into social ($0). For a deal RENTV hasn't covered, top up Gemini (engine=gemini).">🔎 Pull a RENTV closing (repurpose)</button></div>
         <div class="cc" id="findmeta"></div>
         ${coveredNote ? `<div class="dd-cover bad">⚠ RENTV may already cover this: “${PR.esc(coveredNote.title)}”</div>` : `<div class="dd-cover ok">✅ Verified: not in RENTV’s news archive (uncovered).</div>`}
         ${F.map(([k, label, type]) => {
@@ -67,7 +67,7 @@
   }
 
   async function findAnother() {
-    $('findmeta').innerHTML = '<span class="spin"></span> Searching the web for an uncovered closed deal…';
+    $('findmeta').innerHTML = '<span class="spin"></span> Pulling a real RENTV closing from the corpus to repurpose…';
     try {
       const j = await PR.api('/../dealdesk/find', { method: 'POST', body: { avoid: deal.headline } });
       if (j.deal && j.deal.headline) { deal = j.deal; coveredNote = j.covered; renderDeal(); $('findmeta').innerHTML = `<span class="cs-cost">${PR.esc(j.cost || '')}</span> · sources: ${(j.sources || []).length}`; }
diff --git a/server.js b/server.js
index 54cc8946..998ee5cf 100644
--- a/server.js
+++ b/server.js
@@ -974,7 +974,10 @@ app.post('/api/dealdesk/find', adminOnly, async (req, res) => {
     buyer: a.buyer || '', seller: a.seller || '', broker: a.broker || '', close_date: a.close_date || '',
     summary: a.summary || '',
   };
-  res.json({ ok: true, deal, covered: null, sources: a.url ? [a.url] : [], cost: '$0 (corpus)', ms: Date.now() - started });
+  // HONEST framing (Cody): the corpus IS rentv.com's own articles, so this deal was ALREADY
+  // covered by RENTV — surface it as a repurpose candidate, never as "uncovered." A truly
+  // uncovered (external) deal needs the paid Gemini path (engine=gemini) once credits return.
+  res.json({ ok: true, deal, covered: { title: a.title, source: 'RENTV (corpus)' }, mode: 'repurpose', sources: a.url ? [a.url] : [], cost: '$0 (corpus)', ms: Date.now() - started });
 });
 app.post('/api/dealdesk/chat', adminOnly, async (req, res) => {
   const b = req.body || {}; const deal = b.deal || {}; const msg = clean(b.message, 600);

← 6a4fdee5 Deal Desk: /find now defaults to a $0 corpus path (723 real  ·  back to Rentv  ·  RENTV Path A: additive session-cookie login + CSRF + service b6a773ff →