Last sync: 7:42:52 AM

Decision Timeline

32 decisions · 1 log file scanned

BOS32 decisions

Decision #29 · 2026-04-11

The `BOS_Client_Build_Prompt.md` questionnaire and the `/settings/onboarding` in-app page are two halves of the same process. The questionnaire collects the client's configuration answers; the in-app page is the mechanism that writes those answers to the `client_feature_flags` table. Because neither document previously referenced the other, an AI agent reading only one source would have an incomplete picture and could either collect answers without applying them, or open the onboarding page without knowing what data to enter. All three points of connection have been explicitly documented: a blockquote note in the Build Prompt, a cross-reference paragraph in the Master Briefing, and a rewritten Step 12 in the 13-step process.

Decided by: Manus / Chase

Decision #28 · 2026-04-11

Three of the four critical fixes from BOS_Test_Run_Lessons_Learned.md were backported to all three template repos (contractor-os-template, contractor-ops-template, contractor-quote-template). The fourth fix (001_base_schema.sql) was already present. Fixes applied: (1) Node 20 pinning via .nvmrc and package.json engines field in all 3 repos, (2) .env.example files created for ops and quote templates with valid placeholder URLs, (3) Resend email service fully scrubbed from contractor-os-template (7 references removed across 5 files; 15 "resend invite" UI action references preserved).

Decided by: Manus / Chase

Decision #27 · 2026-04-11

The previous TVE_Operations_Brain.md was a ChatGPT hallucination that described TVE as still running on AccuLynx and paper notes, and framed software as a future build. This contradicts the reality that TVE has four live production applications (tve-os, tve-ops, tve-quote, tve-website). The file was completely rewritten based on a verified audit of all four source code repositories. The operational interview data (lead gen, sales process, pipeline stages, production workflow, pain points) was preserved as a dedicated "Operational Context" section, correctly framed as business intelligence rather than a software specification.

Decided by: Manus / Chase

Decision #26 · 2026-04-11

All schema documentation in `whited-brain` must be verified against the live Supabase database before any client build session. Documentation drift is treated as a HIGH-severity issue when a client demo or build is imminent.

Decided by: Manus (following live schema audit)

Decision #25 · 2026-04-11

The canonical read order for all agents operating across repositories is: (1) `~/whited-brain/AGENTS.md` (global context), (2) local repo `AGENTS.md` or `CLAUDE.md`, (3) repo-specific docs. Global brain is always read first.

Decided by: Manus / Chase Whited

Decision #24 · 2026-04-10

Use TVE's Resend API key (`re_PiHwjpKi...`) temporarily for the `bos-internal` project's consultation drip pipeline.

Decided by: Manus / Chase Whited

Decision #23 · Session 3 — April 4, 2026 — Deploy Verification & Build QA · 2026-04-04

Template must build with zero env vars set

Decided by: Claude Code / Chase

Decision #22 · Session 3 — April 4, 2026 — Deploy Verification & Build QA · 2026-04-04

`config/client.ts` default `storageBucket` changed from `"tve-documents"` to `"contractor-documents"`

Decided by: Claude Code / Chase

Decision #21 · Session 3 — April 4, 2026 — Deploy Verification & Build QA · 2026-04-04

Twilio SDK removed; replaced with direct REST fetch in `send-sms/route.ts`

Decided by: Claude Code / Chase

Decision #20 · Session 3 — April 4, 2026 — Deploy Verification & Build QA · 2026-04-04

`settings/automations/page.tsx` needs `force-dynamic`

Decided by: Claude Code / Chase

Decision #19 · Session 3 — April 4, 2026 — Deploy Verification & Build QA · 2026-04-04

`export const dynamic = "force-dynamic"` must be in a Server Component page, not a `"use client"` file

Decided by: Claude Code / Chase

Decision #18 · Session 3 — April 4, 2026 — Deploy Verification & Build QA · 2026-04-04

`middleware.ts` renamed to `proxy.ts`; function renamed `middleware` → `proxy`

Decided by: Claude Code / Chase

Decision #17 · Session 2 — April 4, 2026 — Seed Data Enrichment + Verification · 2026-04-04

Added `CLIENT_CONFIG.app.storageBucket` for the Supabase Storage bucket name

Decided by: Claude Code

Decision #16 · Session 2 — April 4, 2026 — Seed Data Enrichment + Verification · 2026-04-04

Added `CRON_SECRET` and `GMAIL_POLL_SECRET` to `.env.example`

Decided by: Claude Code

Decision #15 · Session 2 — April 4, 2026 — Seed Data Enrichment + Verification · 2026-04-04

`.env.example` corrected: `DOCUSEAL_API_TOKEN` → `DOCUSEAL_API_KEY`

Decided by: Claude Code

Decision #14 · Session 2 — April 4, 2026 — Seed Data Enrichment + Verification · 2026-04-04

Added communications table entries to seed

Decided by: Claude Code

Decision #13 · Session 2 — April 4, 2026 — Seed Data Enrichment + Verification · 2026-04-04

Henderson job is closed with paid invoice

Decided by: Claude Code

Decision #12 · Session 2 — April 4, 2026 — Seed Data Enrichment + Verification · 2026-04-04

Rodriguez job has all 3 estimates (Good/Better/Best) in `sent` status

Decided by: Claude Code

Decision #11 · Session 2 — April 4, 2026 — Seed Data Enrichment + Verification · 2026-04-04

Seed data tells a story: 5 customers × full pipeline (new lead → inspected → 3-tier estimate → accepted → production → paid invoice)

Decided by: Claude Code

Decision #10 · Session 1 — April 4, 2026 — Template Extraction · 2026-04-04

`send-message/route.ts`: `fromDisplayName` typed as `string` explicitly

Decided by: Claude Code

Decision #9 · Session 1 — April 4, 2026 — Template Extraction · 2026-04-04

Supabase hostname in `next.config.ts` parsed from `NEXT_PUBLIC_SUPABASE_URL`

Decided by: Claude Code

Decision #8 · Session 1 — April 4, 2026 — Template Extraction · 2026-04-04

`GMAIL_REPLY_TO` as environment variable, not `CLIENT_CONFIG`

Decided by: Claude Code

Decision #7 · Session 1 — April 4, 2026 — Template Extraction · 2026-04-04

IKO/OC product names replaced with generic in seed + templates

Decided by: Claude Code

Decision #6 · Session 1 — April 4, 2026 — Template Extraction · 2026-04-04

`training.html` and `tve-sales-system.html` deleted

Decided by: Claude Code

Decision #5 · Session 1 — April 4, 2026 — Template Extraction · 2026-04-04

Email sign-offs use company name + current rep name from DB, not hardcoded personal name

Decided by: Claude Code

Decision #4 · Session 1 — April 4, 2026 — Template Extraction · 2026-04-04

`CHASE_UUID` constant and deduplication logic removed entirely

Decided by: Claude Code

Decision #3 · Session 3 — April 4, 2026 — Deploy Verification & Build QA · 2026-04-04

Build verification & QA. Fixed 4 build errors (middleware rename, force-dynamic, login refactor, Twilio SDK). Replaced real TVE values in config/client.ts with generic placeholders. Removed twilio npm package. QA checklist: 9/9 PASS.

Decided by: Claude Code / Chase

Decision #3 · Session 1 — April 4, 2026 — Template Extraction · 2026-04-04

`TVELogo` renamed to `BrandLogo`

Decided by: Claude Code

Decision #2 · Session 1 — April 4, 2026 — Template Extraction · 2026-04-04

`CLIENT_CONFIG` includes: `app.name`, `app.shortName`, `app.url`, `company.tagline`, `company.website`, `company.fromEmail`, `company.supportEmail`, `drive.*` folders, `products.tierLabels`

Decided by: Claude Code

Decision #2 · Session 3 — April 4, 2026 — Deploy Verification & Build QA · 2026-04-04

Enriched seed data (5 customers, 10 leads, 5 jobs, 7 estimates, 3 invoices, 8 comms, 10 tasks, 6 events). Fixed .env.example (DOCUSEAL key mismatch, added CRON_SECRET/GMAIL_POLL_SECRET). Wrote BOS Master Briefing. Fixed Flag F4: storage bucket extracted to CLIENT_CONFIG.

Decided by: Claude Code / Chase

Decision #1 · Session 1 — April 4, 2026 — Template Extraction · 2026-04-04

`CLIENT_CONFIG` as single source of truth in `config/client.ts`

Decided by: Claude Code

Decision #1 · Session 3 — April 4, 2026 — Deploy Verification & Build QA · 2026-04-04

Full 7-phase extraction from tve-os. Created config/client.ts, replaced 110+ hardcoded references, genericized seed data, wrote docs, pushed to GitHub.

Decided by: Claude Code / Chase