--- type: fact agent: leonard date: 2026-09-17 topic: daily-summary-2026-09-17 status: RECORDED --- # Leonard — Full Day Summary 2026-09-17 (from 08:00 PDT) Complete record of what was done today. Sources: live session logs + tool evidence; every item below was executed and verified in-session. ## 1. MiniCPM5-2B failure diagnosis (morning) - **Problem:** repeated "why do you just stop working" / "why is minicpm5 failing". - **Evidence:** 44× `Empty response (no content or reasoning)` in `profiles/leonard/logs/errors.log` across Sep 12/16/17; model returned thinking-only or empty under real Hermes agent turns. - **Live tests (all passed):** direct curl/SSE against FreeToken `127.0.0.1:1919/v1` — small prompts, ~20K-token prompts, tools, streaming, 2–4-way concurrency, multi-turn. Root cause = model-vs-agent-load behavior (2B emits CoT then nothing), NOT server/KV (user confirmed 109K KV is fine). - **Secondary:** shared-OpenAI-client eviction bug (WinError 10058) compounding empties; config still defaulted to the failing model. ## 2. Hermes profile audit + 4 fixes (~09:00–09:30) 1. **Model default** → `routeapi / deepseek-v4-flash-0731`, base_url `https://api.routeapi.ai/v1`, ctx 1,048,576, fallback `routeapi/deepseek-v4-pro`. Snapshot `config.yaml.good-1789656587`. 2. **Cron fully restored (was wiped since Sep 3):** PSS 45-Day Velocity Check · Tailnet Watchdog · autoresearcher · curator-weekly · havoc-nightly — all pinned to routeapi; new Windows scripts written (`curator-run.sh`, `havoc-nightly.sh`, `tailnet-watch.sh`; tailnet-watch fixed: `\d` → `[0-9]` in git-bash grep, state column `$5` captured). 3. **Memory:** USER.md 1,599 → 1,241/1,375 (consolidated duplicate entries). 4. **Hermes update:** was 1,830 commits behind → `hermes update --yes` → all 4 gateways restarted, session restored. **User directives executed:** paused Tailnet Watchdog (6b09ed15412c), then paused ALL cron jobs (0 active; nothing deleted — all resume-able). ## 3. Obsidian vault directive (standing, first noted this session) - Vault path: `C:\Users\fight\Documents\Obsidian Vault` - Logged: `02_agents/leonard/lessons.md` (+7 lessons), `facts/20260917-0800-audit-hermes-profile-leonard-fixes.md` ## 4. Phoenix Salon + Spa full audit (www.phoenixcameronpark.com) - **Audit ID:** PSS-2026-09-17 · Score 70/100 · 11 findings (2 Immediate, 4 High, 3 Medium, 2 Enhancement) - Key: 🟥 hours (initially wrong) + dead old-brand domain `lamaesalonspa.com` (301→526); 🟧 La Mae residue on Fave/Alignable, review velocity thin (~5mo), GBP hours ambiguity, stale sitemap lastmod; ✅ canonical fixed since July, valid JSON-LD, Vagaro booking live, 4.9★ Google / 4.9★ Yelp / 4.7★ FB (leads all local competitors). - Deliverables (all verified: 0 pricing leaks, 11/11 cross-referenced, 7/7 sub-scores): `04_projects/phoenix-salon/audits/2026-09-17/` → `00_EXECUTIVE_REPORT.md`, `01_TECHNICAL_APPENDIX.md`, `02_IMPLEMENTATION_ROADMAP.md`, `00_FIXPACK_phoenixcameronpark.md`, `01_RUNBOOK_phoenixcameronpark.md`, `02_KANBAN.md`. ## 5. Core 3 field map → VeriPath integration - **Committed to `Tony_tech/veripath` (all pushed + byte-verified via git blob compare):** - `f3bae05` — `docs/architecture/core-3-field-map-v1.md` + `implementation/auditing/core3_field_map.py` (14-field dictionary, sourced: GBP Location/Attributes API, Apple ABC docs, Bing Places PDF; hard rules: attributes genre-gated via live `attributes.list`, no services parity, Apple SAB confirm) - `3f9234f` — audit_engine refactor: `check_nap_phone/address/website`, `check_hours_mismatch`, `check_category_alignment` resolve field names via `_collect_field` + `_CONTRACT_KEYS`; regression-verified identical on 3 fixtures - `24dc8c3` — regression fix: website hours were dropped (`website→None`) — restored to `website→"hours"`; caught by Phoenix real data, not fixtures - **ServicedogTrainingDFW = ON HOLD** (user directive): stash@{0} (CBR rewrite) + 3 untracked repo files preserved, not committed/deleted. Vault note: `04_projects/veripath/servicedogtrainingdfw-ON-HOLD.md`; memory consolidated. ## 6. Phoenix VeriPath engine run + hours reconciliation (afternoon) - Engine run via evidence-based contract (`docs/validation/2026-09-17-phoenix-salon-spa/`) — scrapers not installed locally (Playwright/gmaps are VPS-side), used manual-evidence fallback. - User fed live surface data: GBP Mon–Sat 9–6 Sun Closed; Yelp same; re-captured website — Mon–Fri already fixed to 09:00 since morning capture. - **Owner truth correction (2026-09-17): Saturday = 9 AM–6 PM** (NOT 9–3 as earlier vault records stated). - Final hours state: **ALL surfaces match Mon–Sat 9–6, Sun Closed**, single residual = website JSON-LD Sunday `00:00–00:00` encoding (some parsers read 24h-open; fix = omit Sunday from `openingHoursSpecification`). - Files updated: `overview.md`, `phoenix-hours-fix.md` (full rewrite), fix pack JSON-LD (re-validated Mon–Sat 09:00–18:00), runbook (GBP verify-only), exec report revision banner, engine canonical record (Sat 09:00-18:00). ## Open items / pending decisions - Commit Phoenix validation artifacts (`docs/validation/2026-09-17-phoenix-salon-spa/`)? — waits on user OK - Install scraper stack locally (Playwright + google-maps-scraper) for live pipeline runs locally? — waits on user OK - Optional: route remaining checks (`check_description`, `check_photos`, …) through Core 3 map - All cron jobs paused — resume individually via `hermes cron resume `