Enrich Local Hybrid
repo: ~/Projects/enrich-local-hybrid · 13 commits · 0 in last 24h, 4 in last 7d · ▃█
Skills used
- /cold1
- /exo-vision1
- /claude1
- /code1
- /gated1
- /no-data1
- /npm1
- /npx1
- /homebrew1
Creative ideas + design notes
Commits with substantial prose (≥120 chars) — the rationale behind each move.
63ea825 · 2026-09-23 · Route local vision leg through shared exo-vision lib, drop direct Ollama call (TK-12090 Lane E)
enrich-local.js's ollamaVL() hit a hardcoded Mac tailnet Ollama host
directly; Ollama is retired fleet-wide. Now calls
~/Projects/_shared/lib/exo-vision.mjs visionChat() (exo ring primary $0,
Gemini fallback cost-ledgered). Ollama's grammar-constrained format:schema
has no lib equivalent, so the schema is now spelled out in-prompt and
parsed leniently. Output aiData shape is unchanged (verified against
enrich-ai-tags.patched.js's field reads).
Found in the process: Kamatera's live full-monte/.env already points
ENRICH_OLLAMA_URL at 100.82.17.107:11434 (a 2026-06-30 Mac1->Mac2 tailnet
failover) with ENRICH_PROVIDER=local already live — so production has
been silently 100% Gemini-billed since Ollama died on that host, with the
"local hybrid" fallback swallowing every failure. Verified Kamatera can
reach that same host's exo ring at :52415 (HTTP 200). DEPLOY.md documents
the fix + the required VISION_URL env cutover; the actual Kamatera
redeploy is left gated for Steve (live prod script + env change).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KXUyzc9vybUz39rhnNJdwY
11302b0 · 2026-08-06 · enricher: dead-image drain guard + tag-on-skip (TK-10168)
loadProducts() re-loaded dead-image rows every run (unfetchable URL → fetch fails →
self-skip → stays untagged → re-churned forever). Two additive changes:
1. drain guard: exclude image_rejected IS DISTINCT FROM TRUE from the enrichable queue.
2. tag-on-skip: a genuinely dead image (geminiAnalyze all-candidates-failed) now returns a
DISTINCT {__deadImage} sentinel; the main loop flags image_rejected=TRUE once + continues.
Sentinel avoids the naive-fix bug of mis-tagging 429/no-data nulls as dead images.
Reversible; writes gate on the normal enricher run. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
File tree
9 files tracked. Click any to browse the source at HEAD.
rendered in 1ms