← gpu-pilot · json · source: CONTINUE_6_27_2026.md
▶ CONTINUE 6/27 (YC re-review → clean A · mortgage POS/LOS live w/ self-hosted Qwen AI · deck re-themed to v3 — newest handoff)
TL;DR
- Deck (gpu-pilot/gtm/deck/build_certihomes_deck.py): reconciled to the financial model (Y1 450/$6.01M, CAC $600, ROI/CAC 20.5x->59.2x, break-even M6, EBITDA 35->60%, 9-agent Y1 bridge), 94% relabeled + EBITDA-led, one wedge + Now/Next/Later + appendix, honest claims (~23x never 1000x; published patent APPLICATION; AUS sandbox). Re-themed to the v3 style (black + KW-red #CF142B, sans, investor-memo footer). V3_RECONCILIATION.md = before->after memo for the founder's Google deck+sheet. Commits a4c2c3b/d5ab475/b89d85c. Live PDF: losingground.certihomes.com/certihomes-investor-deck-d286894e.pdf.
- Mortgage POS/LOS LIVE on geo2 (NEW repo tlcengine/certihomes-los; los.tlcengine.com): full 1003/URLA -> AI-assembled validated URLA -> loan pipeline + auto-conditions -> AUS labeled sandbox. AI-1003 assembly runs on self-hosted qwen2.5-coder:7b via Ollama (geo2 localhost:11434) as the primary provider — quota-free, no per-call cost; provider chain ollama,claude->deterministic; assembly_source honest. certihomes-los main=a726e8f. posSubmit.js POS->LOS bridge committed (bitbucket dev_stevens_mortgage main_dev) but not yet imported into the live POS.
- Tech A-gates (engine): hexmap-api/kernel_gate.py = bounded GPU FIFO queue replacing the 429 single-lock (concurrent reqs queue; live-validated 3->all-200) on :8098; honest ~23x benchmark (raptor-design/bench_cpu_raptor.py + BENCHMARK.md, bit-exact GPU==CPU) retiring the 1000x. Commit a0d0214.
- GOTCHAS: auto-formatter strips unused imports on save (crashed the live :8098 engine + the LOS — add usage in the same edit or # noqa); geo2 certihomes-los venv has a broken pip shebang (use python -m pip); fleet Claude proxy :8080 ignores output_config/json_schema + is weekly-quota-limited (use self-hosted Qwen); geo's Ollama :11434 is firewalled from geo2 (use geo2-localhost); no Google Drive rclone remote so the deck can't auto-upload to Drive (host static on the fleet). gpu-pilot main=b89d85c.
CONTINUE — 2026-06-27 — YC re-review → A · POS/LOS live (self-hosted Qwen AI) · deck re-themed to v3
Host: geocoder (RTX 5080). gpu-pilot main = b89d85c (pushed via geo bundle). certihomes-los main = a726e8f (NEW repo, pushed from geo2).
Read first: memory certihomes-poslos-deck-pipeline, certihomes-raise-stack-live, public-copy-no-gpu-raptor.
DONE this session
- Tech A-gates (engine):
hexmap-api/kernel_gate.py— bounded GPU FIFO queue replaces the 429 single-lock (concurrent reqs QUEUE, validated 3→all-200;/healthz.kernel_gate); deployed live on :8098 (a0d0214). Honest ~23× benchmark (raptor-design/bench_cpu_raptor.py+BENCHMARK.md, bit-exact GPU==CPU) — retires the "1000×". - 4-seat YC funding review redone on the founder's v3 deck (Drive
1sHktF…) + the 60-mo financial model + the 100-repo tlcengine org → B/B+, NOT A: number contradictions (deck "60–100 listings" vs model 450; CAC $218 vs $600; break-even M5 vs M6; traction 10/$340K→7/$390K), 94% "gross margin" mislabel, ~25-product/100-repo sprawl, mortgage-AI vaporware (GitHub certihomes-pos was boilerplate), hockey stick. - Deck reconciled → clean A across all 4 seats (
a4c2c3b): every number tied to the model (Y1 450/$6.01M, CAC $600, ROI/CAC 20.5×→59.2×, break-even M6, EBITDA 35→60%), 94% relabeled "transaction GM (pre-personnel)" + EBITDA-led, new 9-agent Y1 bridge slide, ONE wedge + Now/Next/Later + appendix expansion vectors, honest mortgage/IP/tech, hero = Collingswood $663K deal.gtm/deck/V3_RECONCILIATION.md= slide-by-slide before→after memo to apply to the founder's Google deck + sheet. - Deck re-themed to the v3 visual style (
d5ab475): black + KW-red#CF142B, heavy sans (Carlito-bold) headlines, red ALL-CAPS eyebrows, dark cards, green-check competition matrix, footerCertiHomes · Pre-Seed Investor Memo · Confidential N/17. Content 100% preserved. - POS/LOS over the finish line + LIVE on geo2 → new repo
tlcengine/certihomes-los(/DataDrive/krish/krish/certihomes-los/; 3 pm2 svcscertihomes-{losapi:5053,los-ui:5052,posapi:5051}; nginx{pos,posapi,los,losapi}.tlcengine.com). Demo https://los.tlcengine.com: full 1003/URLA → AI-assembled validated URLA → loan in a stage pipeline + auto-conditions → AUS = labeled sandbox.posSubmit.jsPOS→LOS bridge committed to bitbucketdev_stevens_mortgagemain_dev(295119b) but NOT imported into the live POS yet. - AI-1003 assembly LIVE on self-hosted
qwen2.5-coder:7bvia Ollama (geo2localhost:11434) — primary provider, quota-free, proven (2 stableassembled via ai:qwen2.5-coder:7b@ollamaruns);/healthshows the active model;assembly_sourcehonest (onlyai:*when all 7 URLA sections parse). Provider chainCERTIHOMES_LLM_PROVIDER=ollama,claude→ deterministic (a726e8f). - Deck S8 bumped to "live self-hosted Qwen AI-1003 — no per-call API cost or quota" (
b89d85c) + published.
DECK URL (live, shareable)
https://losingground.certihomes.com/certihomes-investor-deck-d286894e.pdf — static on geo /var/www/losing-ground/, unguessable token (Confidential). Overwrite that exact file to refresh; URL stays stable. Source: gtm/deck/build_certihomes_deck.py → CERTIHOMES-seed-deck.pptx/.pdf.
PENDING (precise)
- Deck → Google Drive: not automated — geo's
rclonehas onlyaws/minio(no Drive remote) and the Drivecreate_fileMCP needs the PDF as inline base64 (~340K tokens for 1 MB → infeasible in-context). Options: user "Save to Drive" from the fleet URL, OR set up a Drive rclone remote (one-time OAuth) for programmatic push. (Founder's deck folder parentId0ACrTvpAqgn9_Uk9PVA; my reconciled v4 already there as1lpL9nCf….) - POS→LOS live wiring: import
posSubmit.jsintoAFLConfirmationFormonpos.tlcengine.com(1 import + 1 call) so the borrower POS submits into the LOS (today the full flow runs via los.tlcengine.com's own intake tab). Staged, not imported. - Real AUS (Fannie DU / Freddie LPA): needs a sponsoring-lender + AUS credentials — sandbox until then (honestly labeled).
- Durable-A (real-world, not paper): ≥1 signed pilot; visibly park the 100-repo sprawl; bottoms-up closes behind the 450 Y1. The DECK is A; the business must keep matching it.
#61LG-native commutingcost.com page;#62multiuser N-person FE collapse — still open.
DECISIONS (user chose + why)
- Self-hosted Qwen (Ollama) for the LOS AI, not the Claude proxy (quota-limited) or a paid Anthropic key — always-on, zero per-call cost, and reinforces the "runs on our own GPU fleet" capital-efficiency story.
- Deck reconciled to the financial MODEL (one source of truth) and re-themed to the founder's v3 visual style (content unchanged). Honest claims always: ~23× (never 1000×), "published patent APPLICATION (not issued)", AUS sandbox.
- Deck hosted static on the fleet (losingground.certihomes.com static root) since Drive auto-upload isn't wired.
GOTCHAS (don't relearn)
- Auto-formatter strips "unused" imports on save → add the usage in the SAME edit or pin
# noqa;py_compilewon't catch the resulting runtime NameError. Bit me onapp.py(kernel_gate import → live engine crash-loop) ANDassemble.py(urllib/Optional). - geo2
certihomes-los/venvhas a broken pip shebang (relocated venv) → usevenv/bin/python -m pip, nevervenv/bin/pip.anthropicwasn't installed at all (the real reason AI fell back) — now in viapython -m pip. - Fleet Claude proxy (
:8080, pm2claude-proxy) servesclaude-opus-4-6-thinking+claude-sonnet-4-6(NOTclaude-opus-4-8), IGNORESoutput_config/json_schema (returns Markdown → use a strict-JSON prompt +_extract_json), and is weekly-quota-limited (RESOURCE_EXHAUSTED, ~167h reset). Hence self-hosted Qwen. - Ollama on the fleet: geo2/geocoder/geo all run
:11434; geo's:11434is firewalled from geo2 → geo2 services must use geo2-localhost Ollama.qwen2.5-coder:7bpulled on geo2 (RTX 5090, ~6.9 GB resident beside ComfyUI/kokoro). - Push routes: gpu-pilot via geo bundle (geocoder→
172.26.1.45→GitHub;git bundle origin/main..main→ scp → fetch+push refs/temp →git update-ref refs/remotes/origin/main HEAD). certihomes-los pushes direct from geo2 (https GitHub auth). Bitbucket needsGIT_SSH_COMMAND="ssh -i ~/.ssh/bitbucket_phase4". ssh geo/geo2hostnames don't resolve from geocoder → use IPs172.26.1.45/172.26.1.151.