{"slug":"cncp-mcp","total":13,"limit":100,"offset":0,"since":null,"commits":[{"hash":"b6135d4","date":"2026-07-27 20:04:55 -0700","author":"Steve Abrams","subject":"migrate GoDaddy auth → Bearer PAT (TK-10 key rotation); sso-key fallback retained","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"9cc6d6b","date":"2026-05-11 12:06:51 -0700","author":"Steve Abrams","subject":"feat(reconciler): skip stale-flagging for entries marked registryOnly:true","body":"Some registry entries intentionally don't have a ~/Projects/<name>/ dir:\n- pm2 services on Kamatera (plumbing-agent, yolo-agent-yuri, update-sku-agent)\n- skills under ~/.claude/skills/ (morning-review, session-debrief)\n- tools at ~/DW-Agents/ or ~/dw-*/\n- the cncp dashboard at ~/cncp-starter/\n- pure idea entries with no scaffold yet (airbnb-listing-service)\n- legal case trackers (abrams-v-pabo)\n\nMarking them registryOnly:true (18 entries today) means the reconciler\nno longer re-flags them as stale every run. Also clears any existing\n__stale field on transition."},{"hash":"45874a8","date":"2026-05-11 12:04:03 -0700","author":"Steve Abrams","subject":"feat: cncp-reconcile-projects.mjs — keep cncp-projects.json in sync with disk","body":"Sister to cncp-refresh.mjs (which handles domains). Walks ~/Projects/,\nfilters out stray files via project-marker check, adds new dirs to the\nregistry, flags missing entries with __stale (never deletes — case-rename\nrescue), case-collapses duplicate entries.\n\nSame atomic-write + 5-backup retention as cncp-refresh.\n\nFirst run: 201 → 279 entries (78 adds, 24 flagged stale, 5 case-merges).\n\nDriven by com.steve.cncp-reconcile-projects.plist every 30 min, plus the\nmkproj zsh function for instant pickup on new dirs."},{"hash":"ae1c6b7","date":"2026-05-11 10:05:26 -0700","author":"Steve Abrams","subject":"security: cncp-refresh keeps newest 5 backups, deletes the rest","body":"Backups can contain real API keys (ELEVENLABS_API_KEY surfaced in security\naudit 2026-05-11). Unbounded hourly rotation was a slow-growing liability.\nPre-emptively trimmed disk to last 5 in same pass."},{"hash":"c65b01b","date":"2026-05-11 09:58:40 -0700","author":"Steve Abrams","subject":"security: apply-pm2-caps now uses mktemp + trap-unlink for pm2 jlist (was leaking secrets to /tmp)","body":""},{"hash":"b5c8459","date":"2026-05-11 09:44:46 -0700","author":"Steve Abrams","subject":"security: apply-pm2-caps now whitelists env (was leaking GODADDY_API_KEY etc into ecosystem files)","body":""},{"hash":"e6e3182","date":"2026-05-11 09:42:52 -0700","author":"Steve Abrams","subject":"load-aware dispatch: run-on-mac1 routes Mac2↔Mac1 by load + caps script writes 44 ecosystem.config.cjs files","body":""},{"hash":"1e24705","date":"2026-05-11 08:40:55 -0700","author":"Steve Abrams","subject":"run-on-mac1: use ssh-config alias 'mac1' + add homebrew PATH prep","body":""},{"hash":"0239c2e","date":"2026-05-11 08:34:01 -0700","author":"Steve Abrams","subject":"load-spreading: run-on-mac1 wrapper + pm2-cap audit script","body":""},{"hash":"f7b88e5","date":"2026-05-10 22:11:47 -0700","author":"Steve Abrams","subject":"add 5-min cncp-refresh + 1-hr GoDaddy --full sync (update-only, no bloat)","body":""},{"hash":"51e1232","date":"2026-05-10 14:25:06 -0700","author":"Steve Abrams","subject":"gitignore: drop logs/ from tracking (watchdog stdout/stderr/log)","body":""},{"hash":"8a40632","date":"2026-05-10 14:24:47 -0700","author":"Steve Abrams","subject":"add cncp watchdog: launchd 5-min health probe + auto-kickstart with cooldown","body":""},{"hash":"d8161f8","date":"2026-05-10 13:57:38 -0700","author":"Steve Abrams","subject":"initial scaffold: cncp-mcp v0.1.0 — 12 tools (read+write) over CNCP JSON stores","body":""}]}