Pitch Guard

repo: ~/Projects/pitch-guard · 29 commits · 0 in last 24h, 0 in last 7d ·

Search the build

29 commits indexed

  1. 4932ed3 2026-06-30 auto-save: 2026-06-30T05:58:45 (1 files) — server.js
  2. aae4190 2026-06-30 feature: surface invoice-sent & samples-sent as warm followup signals + sort criteria
  3. ca01242 2026-06-30 Pitch Guard: auto-remove a draft from the list once its followup sends successfully (trash + drop card)
  4. bb14d71 2026-06-30 snapshot before invoice/samples-sent followup-signal feature
  5. 7e21c18 2026-06-23 auto-save: 2026-06-23T09:50:51 (1 files) — server.js.tmp
  6. 9b5953d 2026-06-18 PitchGuard: explicitly send/draft from info@designerwallcoverings.com
  7. 1e95bac 2026-06-18 PitchGuard: red 'already sent' alert + 4th Already-Sent column
  8. bcb6aaa 2026-06-18 Fix Send followup: pass George external-send approval token
  9. 75b161a 2026-06-18 Add Designer Wallcoverings logo to header; (GEORGE_URL fixed to Tailscale MagicDNS HTTPS in .env — gitignored)
  10. 7308e45 2026-06-16 Refine: never bother clients who already transacted or were already followed up
  11. 0d9ee55 2026-06-16 Fix non-deterministic followup-candidate scanner: single-flight lock + serve cache on reload, retry throttled Gmail checks instead of silently dropping (over-include w/ 'uncertain' flag), full paginated sent scan (80 contacts). Count now stable across reloads (was 11→10→6)
  12. bd41631 2026-06-16 pitch-guard: persist dates+letters sent per person (durable ledger) + surface George's SENT mail per contact
  13. c3d6f36 2026-05-31 Link favicon.svg in head (use branded SVG, not .ico fallback)
  14. 9e6d276 2026-05-31 Add per-site favicon (kills /favicon.ico 404)
  15. e610e4d 2026-05-19 Broaden .gitignore to exclude .bak / .pre- snapshot files
  16. 88b1ce4 2026-05-19 Add 404-guard middleware so .bak/.pre- snapshot files never serve from static root
  17. b193fc5 2026-05-19 Add rel=noreferrer to target=_blank link (mechanical safety pass)
  18. 30852ed 2026-05-19 Move George URL + auth to gitignored .env (was hardcoded in server.js); add .env.example
  19. a2e4c2f 2026-05-19 Followup scanner now auto-runs: warms on startup + daily, candidates auto-load on page open
  20. b5dbc8d 2026-05-19 Send no_source_tag to George so customer emails skip the From-job banner
  21. bfffaf9 2026-05-19 Pitch panel: Edit/Preview HTML toggle + Open-as-page; strip George From-job banner
  22. 164394a 2026-05-19 Add 5-day followup candidate scanner (dry-run) — Followup Candidates section + per-candidate Draft-it
  23. 0bd7aef 2026-05-19 Fix recent-followup detection — broad regex for all followup templates + body fallback when snippet misses
  24. e7305dd 2026-05-19 Add Delete draft button to the Pitch panel footer
  25. fba50d0 2026-05-19 Add recent-followup signal, draft delete (trash), and sort by name/date/subject/risk
  26. e6f61db 2026-05-19 Split drafts into Clients + collapsible Vendors section (vendor classifier from dw_unified)
  27. 5c43a5e 2026-05-19 Pitch Guard: resizable / collapsible / reorderable / pop-out panels
  28. dd9f2df 2026-05-19 move Pitch Guard to port 8123
  29. 7b30caa 2026-05-19 Pitch Guard — draft + correspondence viewer for info@ with pre-send risk gate

Authors

Agents used

  • none detected

Skills used

  • /shipped3
  • /send2
  • /followup2
  • /create2
  • /samples1
  • /swatch1
  • /memo1
  • /ordered1
  • /order1
  • /samples-sent1
  • /draft1
  • /louie1
  • /jgarner1
  • /sis9lives1
  • /tmmd441
  • /daddydas1
  • /favicon1
  • /date1
  • /subject1
  • /risk1

Creative ideas + design notes

Commits with substantial prose (≥120 chars) — the rationale behind each move.

aae4190 · 2026-06-30 · feature: surface invoice-sent & samples-sent as warm followup signals + sort criteria
- detectWarmSent(): in:sent scan for invoice/samples/swatch/memo (outbound only)
- candidate scan tags warmSignals + sentInvoice/SamplesTs, sorts warm leads first
- assessRisk now blocks only paid/shipped/ordered (an unpaid invoice we SENT is a
  warm lead, not a closed sale) — Samantha tripwire (paid/shipped/order) intact
- UI: green INVOICE SENT / SAMPLES SENT chips on candidate rows + Invoice-sent /
  Samples-sent sort options
9b5953d · 2026-06-18 · PitchGuard: explicitly send/draft from info@designerwallcoverings.com
Pin From to 'Designer Wallcoverings <info@designerwallcoverings.com>' on
both /api/send and /api/followup/create so outbound can never fall back to
a Gmail default. (Sends already resolved to info@ via George's account
mapping; this makes it explicit and override-proof.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1e95bac · 2026-06-18 · PitchGuard: red 'already sent' alert + 4th Already-Sent column
When a followup was already sent to the selected contact, show a red alert
(with the exact date+time it went out) in the Pitch verdict, and add a 4th
panel on the right listing every letter already sent to that contact —
date+time stamped, the matched followup flagged red. Layout bumped to v2 so
existing users pick up the new column.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
bcb6aaa · 2026-06-18 · Fix Send followup: pass George external-send approval token
George's externalSendGuard 403-blocks all sends to external (customer)
recipients unless the request carries the human-approval token. PitchGuard's
authenticated Send-followup click IS that approval, so include
send_approval_token (from GEORGE_EXTERNAL_SEND_TOKEN) on every /api/send.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7308e45 · 2026-06-16 · Refine: never bother clients who already transacted or were already followed up
Root cause (2026-06-16): the paid/shipped risk-gate lived ONLY in the UI Send
button, so a native Gmail-web send bypassed it — already-closed clients
(incl. one PAID+ORDERED+SHIPPED) got pitched a quote followup.

- assessRisk() + alreadyFollowedUp() shared probes
- candidate scanner now EXCLUDES level>=2 (ORDERED/INVOICED/PAID/SHIPPED) and
  anyone followed up in last 21d — they never become candidates, so never drafted
- /api/followup/create refuses to draft a transacted contact (defense-in-depth)
- swept + trashed today's followup drafts to transacted clients (gsmsriedel/louie/
  nicole/jgarner/sis9lives/tmmd44/daddydas) + duplicate drafts to already-sent ones

File tree

8 files tracked. Click any to browse the source at HEAD.

Other build journals

← Photo Cleanup  ·  all 4 projects  ·  Pitchvideo →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 1ms