{"slug":"Ken","total":20,"limit":100,"offset":0,"since":null,"commits":[{"hash":"a3aff5e","date":"2026-07-15 13:05:48 -0700","author":"Steve Abrams","subject":"Ken: surface real Kalshi API error body (was '[object Object]') + method/path in kalshiFetch errors — reveals the 410 order-failure reason","body":""},{"hash":"2066e75","date":"2026-07-15 12:40:37 -0700","author":"Steve Abrams","subject":"Ken: FIX no-trades root cause — Kalshi API renamed price fields (yes_bid→yes_bid_dollars string, volume_24h→volume_24h_fp). Ken read the dead fields → every market mapped to 0 → 0 active → 0 signals → 0 trades. Now reads new _dollars/_fp fields (dollars-string→cents), backward-compatible. Live test: 0→851 active markets.","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"5a71f56","date":"2026-07-15 12:18:29 -0700","author":"Steve Abrams","subject":"Ken: live Risk Level knob in Settings — drag to preview, Apply commits min_confidence to /api/trading/mode (real-money knob, explicit apply). Plus standalone risk-knob.html visualizer.","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"4d35550","date":"2026-07-15 12:06:33 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-15T12:06:24 (1 files) — kalshi-dash/risk-knob.html","body":""},{"hash":"0331471","date":"2026-07-15 11:55:33 -0700","author":"Steve Abrams","subject":"Ken: set-confidence.sh fails loud (exit 1 + stderr) on any non-success — no more silent no-op on a real-money knob","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"c49a8e1","date":"2026-07-15 11:55:04 -0700","author":"Steve Abrams","subject":"Ken: scoped set-confidence.sh — fix endpoint to /api/trading/mode (was /api/risk → silent no-op); adjusts ONLY min_confidence 50-99","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"d83c6ee","date":"2026-07-14 12:34:27 -0700","author":"Steve Abrams","subject":"Ken: retry/backoff in geminiAnalyze for shared-Ollama 'server busy' contention (stays all-local, best-effort)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"16c240e","date":"2026-07-14 11:07:59 -0700","author":"Steve Abrams","subject":"Ken: fix Weather page 400 — server now handles 'get_data' action (on-mount load), aliased to fetch_all","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"a327393","date":"2026-07-14 10:11:54 -0700","author":"Steve Abrams","subject":"Ken: live-run status chip in dashboard header (motion graphics)","body":"- GET /api/live-run — day X/N, $ spent today vs daily cap, auto-off date, days left\n- Layout.jsx status bar: animated LiveRunChip (pulsing glow, shimmer sweep, blinking\n  live dot, flowing progress bar, rAF count-up on $ spent). Idle 'PAPER' pill when\n  no run armed; full green LIVE chip when active.\n- index.css: lrchip motion keyframes (lrGlow/lrShimmer/lrBlink/lrBarFlow)\n- also added the chip + endpoint-consumer to the legacy inline dashboard\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"1bdf579","date":"2026-07-14 09:52:53 -0700","author":"Steve Abrams","subject":"Ken: bounded live-run controls — $/day spend cap + auto-off after N days","body":"- getLiveRun/saveLiveRun (ken_config 'live_run')\n- autoTrader: auto-disarm (enabled=false + safe_mode=on) after end_date; per-day\n  spend cap via liveDailyRemaining (resets each calendar day)\n- arm-live-run.mjs: arms a bounded run ($10/day x5, total $50 cap). Arming the\n  gates stays a human action (classifier-gated), not autonomous.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"af4870c","date":"2026-07-14 08:51:27 -0700","author":"Steve Abrams","subject":"Ken: gate manual create_order endpoint on safe_mode too (close the non-autoTrader real-order path)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"6fc1f52","date":"2026-07-10 11:15:35 -0700","author":"Steve","subject":"Ken: enforce safe/paper — autoTrader honors safe_mode + master enabled defaults OFF (no real orders without deliberate toggle)","body":""},{"hash":"a060e29","date":"2026-07-10 11:12:20 -0700","author":"Steve","subject":"Ken: add captured_at to ken_market_snapshots (momentum query) — pipelines error-free","body":""},{"hash":"2fa8032","date":"2026-07-10 11:11:08 -0700","author":"Steve","subject":"Ken: seed 99 paper-trading portfolios + add portfolio stat columns (local boot)","body":""},{"hash":"a3dd171","date":"2026-07-10 11:03:57 -0700","author":"Steve","subject":"Ken: switch AI analyst from paid Gemini to local Ollama (hermes3:8b) + local boot on Mac3","body":"- geminiAnalyze() now calls local Ollama /api/generate (format:json), env-overridable\n  via KEN_LOCAL_MODEL/OLLAMA_URL; removes GEMINI_API_KEY dependency\n- raise per-day AI cap 200 -> 100000 (local = $0, no throttle)\n- persona/label strings reflect local model\n- add start.sh (sources .env) + reconstructed schema.sql (18 ken_* tables) so Ken\n  boots + persists on Mac3 against local Postgres 'ken' + existing bertha_betting"},{"hash":"c303efd","date":"2026-06-03 20:24:32 -0700","author":"SteveStudio2","subject":"Untrack .DS_Store + gitignore it","body":""},{"hash":"cb1104e","date":"2026-05-30 23:58:03 -0700","author":"SteveStudio2","subject":"gitignore: add backup/source-leak file globs (*.bak, *.orig, *.old, etc.)","body":""},{"hash":"cf5d8b8","date":"2026-05-13 08:57:55 -0700","author":"Steve","subject":"snapshot: 1 file(s) changed, +1 new","body":""},{"hash":"a27e0fd","date":"2026-05-07 12:29:27 -0700","author":"Steve","subject":"tighten .gitignore: add missing standing-rule patterns (.env* tmp/ *.log .DS_Store dist/ build/ .next/)","body":""},{"hash":"93ce9eb","date":"2026-05-04 03:46:34 -0700","author":"SteveStudio2","subject":"[overnight] pre-debate baseline","body":""}]}