[object Object]

← back to AbramsEgo

spend-reviews: remove from AbramsEgo (moved to personal AbramsOS) — TK-11433

c5fe399787be59826c1fee1d0f57d82afc3af173 · 2026-09-11 10:23:29 -0700 · Steve

Feature belongs in AbramsOS (~/Projects/AbramsOS /reviews), not AbramsEgo. Unmounted the /api/spend router + removed the #spend-card panel from the dashboard. lib/spend-reviews/ left on disk (unmounted, harmless) for history.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QA2Se1HgCv8KSZbUQD6w2p

Files touched

Diff

commit c5fe399787be59826c1fee1d0f57d82afc3af173
Author: Steve <steve@designerwallcoverings.com>
Date:   Fri Sep 11 10:23:29 2026 -0700

    spend-reviews: remove from AbramsEgo (moved to personal AbramsOS) — TK-11433
    
    Feature belongs in AbramsOS (~/Projects/AbramsOS /reviews), not AbramsEgo. Unmounted the /api/spend router + removed the #spend-card panel from the dashboard. lib/spend-reviews/ left on disk (unmounted, harmless) for history.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01QA2Se1HgCv8KSZbUQD6w2p
---
 public/index.html | 32 --------------------------------
 server.js         | 14 ++++----------
 2 files changed, 4 insertions(+), 42 deletions(-)

diff --git a/public/index.html b/public/index.html
index 48784fb4..2fb312e6 100644
--- a/public/index.html
+++ b/public/index.html
@@ -408,38 +408,6 @@
     <div id="crongrid" style="display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;max-height:560px;overflow:auto"></div>
   </section>
 
-  <!-- SPEND → REVIEWS (panel 9, TK-11433) — auto-review businesses Steve buys from -->
-  <section class="card span12" id="spend-card">
-    <h2>🧾 Spend → Reviews <span class="muted" id="spend-sub">· thank the businesses you buy from · <b style="color:var(--gold)">every post/send is per-item gated</b></span></h2>
-    <div style="display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px">
-      <button type="button" data-ingest="amazon">⬇ Ingest Amazon</button>
-      <button type="button" data-ingest="gmail">✉ Scan Gmail receipts</button>
-      <label class="btnlike" style="cursor:pointer;padding:6px 10px;border:1px solid var(--line,#2a2f3a);border-radius:6px;font-size:12px">⬆ Upload statement CSV<input type="file" id="spend-csv" accept=".csv,text/csv" style="display:none"></label>
-      <button type="button" id="spend-resolve">↻ Resolve + Draft all</button>
-      <button type="button" id="spend-memo">📝 Draft approval memo</button>
-      <span class="muted" id="spend-note" style="font-size:11px"></span>
-    </div>
-    <div id="spend-ctl"></div>
-    <div id="spendgrid" style="max-height:640px;overflow:auto"></div>
-
-    <!-- BATCH REVIEW LENS (added, not a replacement for the card grid) -->
-    <div style="margin-top:12px;border-top:1px solid var(--line,#242a35);padding-top:10px">
-      <div style="display:flex;gap:10px;flex-wrap:wrap;align-items:center">
-        <button type="button" id="spend-batch-toggle">▤ Batch review</button>
-        <span class="muted" style="font-size:11px">review every draft on one screen · select · approve in one pass · posting stays per-item &amp; paced</span>
-      </div>
-      <div id="spend-batch" style="display:none;margin-top:10px">
-        <div style="display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:8px">
-          <label style="font-size:12px"><input type="checkbox" id="spend-batch-all"> select all</label>
-          <select id="spend-batch-filter" style="font-size:12px"><option value="draftable">Needs approval</option><option value="approved">Approved (ready to post)</option><option value="all">All draftable</option></select>
-          <button type="button" id="spend-batch-approve">✔ Approve selected</button>
-          <button type="button" id="spend-batch-post">📤 Post approved (paced, gated)</button>
-          <span class="muted" id="spend-batch-note" style="font-size:11px"></span>
-        </div>
-        <div id="spend-batch-list" style="max-height:560px;overflow:auto;display:grid;gap:8px"></div>
-      </div>
-    </div>
-  </section>
 
   <!-- AI CHAT -->
   <section class="card span12 chat">
diff --git a/server.js b/server.js
index bda668a5..1738a23c 100644
--- a/server.js
+++ b/server.js
@@ -987,8 +987,7 @@ async function doBuild() {
     wins: summarizeWins(wins),
     officers: summarizeOfficers(officers),
     cost, budgets, revenue, pnl, usage,
-    // Spend → Reviews panel summary (counts only; full items via /api/spend/items)
-    spendReviews: (() => { try { return require('./lib/spend-reviews/router').summary(); } catch (e) { return { error: e.message }; } })(),
+    // Spend → Reviews moved to the personal AbramsOS app (/reviews) — TK-11433. Panel removed here.
     // compact form folded into the snapshot for at-a-glance headers
     usageSummary: {
       activeSessions: usage.sessions && usage.sessions.active,
@@ -1182,14 +1181,9 @@ app.post('/api/dispatch', async (req, res) => {
 });
 
 // ── Spend → Reviews (TK-11433) ───────────────────────────────────────────────
-// Mounted AFTER the Basic-Auth middleware, so every /api/spend/* route is gated.
-// Ingestion + resolver + drafts + queue are reversible LOCAL code; the post/send
-// executors are per-item human-gated inside the module (executors.js). Loaded
-// defensively so a module error can never take down the dashboard.
-try {
-  const spendReviews = require('./lib/spend-reviews/router');
-  app.use('/api/spend', spendReviews.router);
-} catch (e) { console.error('[spend-reviews] router mount failed:', e.message); }
+// Spend → Reviews was MOVED to the personal AbramsOS app (~/Projects/AbramsOS,
+// /reviews) — TK-11433. Router intentionally NOT mounted here anymore; the
+// lib/spend-reviews/ files remain on disk (unmounted, harmless) for history.
 
 const REVENUE_ENGINES = ['sell_product', 'affiliate', 'billable_work', 'ads', 'licensing'];
 app.post('/api/revenue/record', async (req, res) => {

← 79d5a95a auto-data-snapshot: 2026-09-11T10:08:53 (1 data files) — dat  ·  back to AbramsEgo  ·  scripts: .env cleanup launcher (spend-reviews moved to Abram 7462db51 →