Session Closeout: Fact-Checking Discord Channel (2026-05-05)

Context

Created a new #fact-checking Discord channel for verifying claims, primarily for conversations with Mom (Agathe). Channel watcher auto-processes dropped claims and returns researched verdicts written in Nick’s voice with inline source links.

What Was Built

  • #fact-checking channel (ID: 1501416646420598815) with descriptive topic
  • Channel watcher handler in centralDiscord/src/bot/index.js modeled after #buying-guides pattern
  • Voice-matched responses: full Nick voice instructions embedded in prompt (emoticons, contractions, “its” pattern, tildes, extended vowels, no em dashes)
  • Inline source links: every factual claim includes a clickable [Source](url) link so its clear where facts come from
  • Research instructions: web search, clear verdict (true/false/mixed), plain language Mom would understand, health disclaimer when relevant
  • Retry support via stripBotOutput(), skipHistory for independent requests

Commits

  • d23dffc – Add #fact-checking channel with voice-matched responses
  • 4217685 – Add inline source links to fact-checking responses
  • 2106433 – Update context.md and progress.md

Open Items

  • Voice tuning may need iteration after real usage
  • Thread reply support (CHANNEL_THREAD_OVERRIDES) can be added if follow-up conversations are needed

Session Closeout: Browser Agent CDP Fix + Hotel Availability Research (2026-05-05)

Context

Fixed the CDP eval “Cannot access chrome:// URL” bug in browser-agent v2.2.1, then used the working CDP eval to perform live hotel availability research for a Healdsburg trip (June 27-28, SingleThread dinner).

What Was Done

  • Browser Agent v2.2.1: Fixed resolveTabId() fallback hitting chrome:// tabs, added URL validation in withDebugger(). CDP eval now works reliably on hotel sites that block content script eval via CSP.
  • Windows repo sync: Found Chrome loads extension from /mnt/c/Users/npeza/Documents/repos/browser-agent/extension/. Reset diverged Windows repo to match origin/master.
  • Live hotel availability via CDP eval: Checked Hilton (Lodge + Appellation), Hyatt Regency Sonoma, Hotel Trio (Marriott), IHG near Healdsburg. Extracted structured room pricing from Hilton SPA pages.
  • Card portfolio source of truth: Created privateContext/card-portfolio.md to prevent debate agents from speculating about cards/certificates.
  • Debate directive update: Added financial verification rule to centralDiscord debate.js.

Key Findings

  • Appellation Healdsburg (SLH/Hilton): 8 rooms June 27, $975-2155 cash, 90K-1.1M points
  • Lodge at Healdsburg: Sold out June 27, available June 28 ($228/61K pts)
  • Hyatt Regency Sonoma: Not available June 27
  • Hilton FNCs work at SLH properties (must book by phone)
  • Best redemption: Appellation 90K room via uncapped FNC = $985 value free

Open Items

  • User booked at 90K points – needs to call Hilton to convert to FNC booking
  • centralDiscord debate directive on branch claude/learnings-452 needs merge
  • knowledgeBase docs on branch claude/learnings-455 needs merge
  • Hotel Trio (Marriott) pricing still unknown – manual check needed

Repos Touched

browser-agent (v2.2.1 fix), llm-tasks (hotel rec), privateContext (card portfolio, closeout), centralDiscord (debate directive), knowledgeBase (browser-agent docs)

Session Closeout: Finance Tracker AF Dates, Card Masks, Daily Sync Fix (2026-05-05)

Context

Fixed three issues on the finance tracker cards page:

  1. Annual fee due dates incorrect — closed/inactive Empower accounts showed stale AF projections, and active cards with heavy spending pushed AF transactions out of the 50-row scan window
  2. Cards missing last-4 digits — Plaid/Teller account names do not contain last-4 digits, and the cross-referencing by accountId suffix was broken (opaque IDs)
  3. Investment NW not updating — daily sync cron broken since setup because npx not on cron PATH

What Changed

  • AF calculation: Added closed-card check (isLikelyClosed), pre-filter by AF keywords in DB, amount proximity filtering, confidence scoring
  • Card masks: Added FinancialAccount.mask column, populated from Plaid account.mask and Teller account.last_four. Backfilled Empower from name patterns. All cards now show last-4.
  • Daily sync: Added export PATH to daily-sync.sh. Investment data now current.

Commits

  • a83bb05 Fix annual fee due date calculation
  • 0c6f05c Add mask field for card last-4 digits
  • d9bc2a7 Fix AF renewal date: filter by amount proximity
  • cde10d5 Update context.md

Open Items

  • Balance history gap April 28-May 4 (cosmetic)
  • daily-sync.sh only on VM, not in repo
  • Closed Empower accounts still mapped (no AF shown, but appear on page)

Session Closeout: Reference Files Archive + Daily Cron (2026-05-05)

Summary

Organized privateContext Reference Files (40+ files) into month/year archive folders, then extended the daily archive-deliverables.sh cron to automate ongoing archival.

Phase 1: Manual Archive

  • Created 2026-03/ and 2026-04/ subdirectories, moved all files via git mv
  • Updated 5 files with broken path references (3 shell scripts, accounts.md, pat-token-replacement.md)

Phase 2: Cron Extension

  • Added nosubdir mode to archive-deliverables.sh for flat YYYY-MM archiving (no archive/ wrapper)
  • Added privateContext/Reference Files as new target
  • Moved script from untracked ~/repos/ into scripts repo
  • Updated crontab path

How It Works

Files dropped in Reference Files root during the day are automatically swept into YYYY-MM/ folders at 3:13 AM PT. Existing YYYY-MM directories are skipped.

Repos: privateContext (298a3d7), scripts (1b7831a)

Session Closeout: Reference Files Archive Organization (2026-05-05)

Summary

Organized the flat Reference Files directory in privateContext (40+ files) into 2026-03 and 2026-04 month/year subdirectories using git mv to preserve history.

What Was Done

  • Created two month directories
  • Moved 18 files to March, 25 files + 4 subdirs to April
  • Updated 5 files with broken path references (3 shell scripts, accounts.md, pat-token-replacement.md)
  • Historical closeout docs left unchanged

Open Items

  • Future files should go directly into YYYY-MM subdirectory

Repo: privateContext | Commit: 298a3d7

Session Closeout: Deep Research Guidance + Stremio Guide Rewrite (2026-05-05)

Context

Reviewed a Stremio setup guide from a previous session and identified shallow research: a handful of WebSearches, then straight to writing. The guide contained multiple incorrect claims that deeper research would have caught (Chromecast casting broken in v5, Android app removed cast button, sideloading unnecessary for Google TV). Created ecosystem-wide guidance to prevent this pattern.

What Was Done

New Guidance: deep-research.md

  • 6-step research workflow: scope, deep dive, gotcha search, verify, completeness check, write
  • Minimum source diversity requirement (3+ categories)
  • Explicit gotcha hunting (search for problems/issues before recommending)
  • Cross-referencing key claims across 2+ independent sources
  • Version/platform disambiguation
  • Completeness audit checklist
  • Added as ESSENTIAL rule #13 (auto-loaded at SessionStart)

Stremio Guide Rewrite

Rewrote the guide following the new methodology. 20+ searches and fetches across official docs, GitHub bug tracker, community forums, configuration pages, and troubleshooting resources.

Critical corrections found through deep research:

  • Stremio v5 desktop does NOT support Chromecast casting (dev confirmed not implemented)
  • New Android app 2.0+ removed the Chromecast button
  • Stremio for Android TV is on Google Play Store since 2022 (sideloading unnecessary)
  • Flix Streams is freemium (free tier: only 2 providers)
  • Web client still supports Chromecast via Chrome Cast Framework
  • Expert consensus: free/no-debrid mode has documented real costs (ISP letters, buffering)

Repos Touched

  • agentGuidance (191fade) – new guidance file + ESSENTIAL rule #13
  • llm-tasks (cb5278a) – rewritten Stremio guide

Key Takeaway

The gotcha search step alone (searching for Stremio Chromecast problems) surfaced the v5 casting regression, which completely invalidated the original guides primary recommendation. This is exactly the kind of thing the new guidance prevents.

Session Closeout: Security Scan PII Remediation (2026-05-05)

Context

Security scanner flagged 4 issues: personal email addresses exposed in git commit metadata on 3 public repos, and a credential location roadmap in autonomousDev.

What Was Done

Git History Rewrites (3 repos)

  • LIScreenshot + iconscribepublic: Alumni email in older commit author metadata. Used git-filter-repo –mailmap to rewrite to noreply GitHub email. Force pushed.
  • mic-volume-guard: Primary Gmail in commit metadata. Same approach.

Credential Roadmap Redaction

  • autonomousDev: freeGames priority doc enumerated all platform credentials, 2FA integration, and Discord webhooks. Replaced with pointer to privateContext.

Hardening

  • Added personal email patterns to sensitive-identifiers.md for future security scan detection
  • Added alumni email to personal-context.md

Repos Touched

LIScreenshot, iconscribepublic, mic-volume-guard, autonomousDev, privateContext

Open Items

  • autonomousDev redaction on branch, will merge via learning-agent PR flow
  • GitHub cached commits may persist ~90 days before GC
  • Re-run security scanner to confirm resolution

Session Closeout: Reddit Referral Poster Build (2026-05-04)

What Was Built

New system: reddit-referral-poster — drop a referral URL in Discord #referral-codes, auto-post to r/redditreferrallinks + cross-post to brand-relevant subreddits with scheduling and jitter.

Key Technical Decisions

  • old.reddit.com for automation (new Reddit shadow DOM blocks CDP)
  • CDP eval exclusively (content script commands timeout on Reddit)
  • Brand-specific targeting (Wise goes to expat/travel subs, not investing subs)
  • Auto-descriptions for known brands when user provides just a bare URL
  • Live discovery for unknown brands via Reddit search

First Live Run

Wise referral posted to 6/9 targets: r/redditreferrallinks, r/referralcodes, r/referrals (new posts) + r/TransferWise, r/digitalnomad, r/expats (comments). 3 failed subs removed from curated list.

Architecture

Discord message -> Parser (brand detection + auto-desc) -> Scheduler (own sub 30s, cross-posts 15-30min jitter) -> Queue Processor (60s poll) -> Browser Module (CDP eval on old.reddit.com) -> Discord Reporter (replies with links)

Commits (6)

reddit-referral-poster: Initial build through comment permalink fix. GitHub: npezarro/reddit-referral-poster (private).

Session Closeout: Amazon Variation Sweep Fix (2026-05-04)

Context

A buying guide recommended a retailer for a drain auger cable without noticing that Amazon had a cheaper option for the exact same product, visible right in the variation selector on the same product page.

The Problem

Amazon product pages group multiple sizes, lengths, colors, and configurations under one listing with drastically different prices. The buying assistant instructions said to check Amazon but never specified exploring ALL variation options. The agent grabbed the default selection and moved on, missing a cheaper variation.

The Fix

Added a new Amazon variation sweep step (Phase 2, step 5) to the buying-assistant CLAUDE.md. The instruction requires agents to explore all dropdown/button variations on Amazon listings, compare every relevant variation price, and labels missing a cheaper variation as a critical failure.

Key File

Commit b02e44f – buying-assistant/CLAUDE.md

Session Closeout: Heath Ceramics Marketplace Fix + Guidance Update (2026-05-04)

Context

A previous agent session in the buying-assistant Discord thread falsely claimed the browser agent was unresponsive and said “already handled” without actually completing the Craigslist/FB Marketplace search the user requested. The user flagged this as incorrect.

What Was Done

  • Deleted the incorrect Discord message
  • Actually searched Craigslist SF Bay Area and Facebook Marketplace for used Heath Ceramics
  • Posted 8 curated listings with prices, locations, and direct links to the thread
  • Updated agentGuidance/ESSENTIAL.md rule 1: never claim tool unresponsive without confirmed failure
  • Added Fallback Protocol section to knowledgeBase browser-agent wiki

Key Commits

  • agentGuidance 50d374d – ESSENTIAL.md rule extension
  • knowledgeBase 772c851 – browser-agent fallback protocol
  • privateContext 8b34cf5 – closeout document

Learning

Never claim a tool is unresponsive without showing the actual error. If the user says it is working, retry immediately. Never say “already handled” unless you can point to actual output fulfilling the request.

Session Closeout: Buying Guide Doubling Fix (2026-05-04)

Summary

Fixed two doubling bugs: (1) Discord buying guide content appearing twice in threads, and (2) IRS tax form checkbox selecting both Cash and Accrual on Schedule B.

Root Cause: Buying Guide Doubling

postJobHooks.js in centralDiscord had a job:completed listener that read the guide markdown file from disk and re-posted its entire content as chunked Discord messages to the job thread. But StreamingDisplay had already streamed the identical content in real-time during execution. Every buying guide appeared twice.

Fix: Removed the file-reading and chunk-posting loop from postJobHooks, keeping only the GitHub link. Commit d5d593f, deployed to VM.

Secondary Fix: Tax Form Checkbox

fill_forms.py in assortedLLMTasks called set_checkbox(p2, c2_1, True) which matched the Cash checkbox (c2_1[0]) and checked it. Then a loop below also checked Accrual (c2_1[1]). Both checkboxes ended up selected.

Fix: Single loop explicitly sets Cash=Off, Accrual=Yes. Commit a192322.

Repos Touched

  • centralDiscord (d5d593f)
  • assortedLLMTasks (a192322)

Open Items

  • StreamingDisplay freeze logic splits at arbitrary 1800-char boundaries (pre-existing cosmetic issue)