<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Jingxiao Cai's Blog</title>
    <description>Personal blog about ML infrastructure, self-hosted AI, distributed systems, and technical debugging.</description>
    <link>https://anyech.github.io/jingxiao-cai-blog/</link>
    <atom:link href="https://anyech.github.io/jingxiao-cai-blog/feed.xml" rel="self" type="application/rss+xml"/>
    <language>en-us</language>
    <lastBuildDate>Tue, 12 May 2026 02:57:36 +0000</lastBuildDate>

    <item>
      <title>When a True Alert Is Still the Wrong Page: An Agent-Ops Threshold Lesson</title>
      <description>A technically true row-count alert became an alert-tuning lesson: record weak proxy crossings, but page only when they combine with byte pressure, latency pressure, cleanup pressure, or user-visible impact.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/true-alert-wrong-page-agent-ops.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/true-alert-wrong-page-agent-ops.html</guid>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>When a Coding-Agent Route Drifts: Closing the Loop Without Premature Fixes</title>
      <description>A degraded coding-agent lane is not automatically a local repair task. Classify it as passive watch, upstream wait, or a narrow adapter fix before changing fallback policy.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/coding-agent-route-drift-without-premature-fixes.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/coding-agent-route-drift-without-premature-fixes.html</guid>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>When the Report Exists but Delivery Failed: An Agent-Ops Triage Pattern</title>
      <description>A daily scan job generated its report, but the final delivery side effect failed. The fix was to replay the saved artifact, not rerun the whole workflow.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/when-report-exists-but-delivery-failed-agent-ops.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/when-report-exists-but-delivery-failed-agent-ops.html</guid>
      <pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>One Heading Level Broke the Nightly Build: Fixing Markdown Drift in Generated REM Reports</title>
      <description>A generated Markdown report failed over one heading-level jump; the durable fix was testing each rendered output surface as its own artifact contract.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/one-heading-level-broke-nightly-build-generated-rem-reports.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/one-heading-level-broke-nightly-build-generated-rem-reports.html</guid>
      <pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Long-Running Agent Work Needs a Bridge Back, Not Just a Background Thread</title>
      <description>Detaching long-running agent work is not enough. The workflow also needs an admission gate, a validated return path, and audit feedback when coverage misses.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/long-running-agent-work-needs-bridge-back.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/long-running-agent-work-needs-bridge-back.html</guid>
      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>When SQLite Looks Empty but Isn’t: Reproducing Corrupt Task Registries Without Touching Prod</title>
      <description>A self-hosted agent-ops debugging story: raw SQLite can still see rows while the runtime registry restore fails, so reproduce on copies before touching production.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/sqlite-empty-corrupt-task-registries-without-touching-prod.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/sqlite-empty-corrupt-task-registries-without-touching-prod.html</guid>
      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The 10-Second Session List: Why Prefiltering Before Row Build Matters in Agent Gateways</title>
      <description>A self-hosted agent-gateway performance lesson: if a tiny session-list request builds hundreds of rich rows before filtering, limit is too late to save you.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/10-second-session-list-prefilter-row-build-agent-gateway.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/10-second-session-list-prefilter-row-build-agent-gateway.html</guid>
      <pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Closing External Threads Cleanly: An Agent-Ops Pattern</title>
      <description>A lightweight agent-operations pattern for closing external threads cleanly: make constraints explicit, record the decision, finish the action, and define reopen criteria.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/closing-external-threads-cleanly-agent-ops.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/closing-external-threads-cleanly-agent-ops.html</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Treating AI Agent Updates Like Production Deployments: The Runbook Keeps Paying Off</title>
      <description>Why self-hosted AI-agent updates need production-deployment discipline: preflight, backup, staged rollout, human activation, adoption scans, and verification.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/ai-agent-updates-production-deployments-runbook.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/ai-agent-updates-production-deployments-runbook.html</guid>
      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Design-Tool Integrations Need Capability Gates: Lessons from a Missing LLM Config</title>
      <description>Why design-tool integrations need capability gates before LLM generation: validate inputs, route readiness, model config, and artifact proof early.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/design-tool-integrations-capability-gates-llm-config.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/design-tool-integrations-capability-gates-llm-config.html</guid>
      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Modernizing Agent Skills Without Growing a Skill Jungle</title>
      <description>How I modernized agent skills with problem-first discovery, intake gates, thin wrappers, package hygiene, capability gates, and consolidation instead of skill sprawl.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/modernizing-agent-skills-without-growing-skill-jungle.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/modernizing-agent-skills-without-growing-skill-jungle.html</guid>
      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Fail-Closing Agent Launches: Why Auth and Readiness Gates Should Block Before Tooling Starts</title>
      <description>Why AI-agent tool launches should prove auth intent, isolate ambient credentials, check route readiness, and block before side effects when the launch contract is unhealthy.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/fail-closing-agent-launches-auth-readiness-gates.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/fail-closing-agent-launches-auth-readiness-gates.html</guid>
      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Building Fail-Closed Stage Environments for AI Agents on a Small VPS</title>
      <description>An OpenClaw stage-environment pattern for a small VPS: fail-closed testing, zero-production-secret bootstrap, detect-only catalog refresh, and a mock-to-real-to-higher-risk ladder.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/fail-closed-stage-environments-ai-agents-vps.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/fail-closed-stage-environments-ai-agents-vps.html</guid>
      <pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>LLM Panel Orchestration in OpenClaw: Config-Backed Routing, Timeout Classes, and Honest Dissent Without Chaos</title>
      <description>How I run a config-backed multi-model panel in OpenClaw: launch guards, watchdog-backed waits, bridge-back delivery contracts, and honest dissent safely.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/consult-panel-orchestration-openclaw.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/consult-panel-orchestration-openclaw.html</guid>
      <pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Local Semantic Memory on a 4-Core ARM VPS: How I Got OpenClaw Memory Search Working Without External APIs</title>
      <description>How I got OpenClaw local memory search working on a small ARM VPS, now with safer rollout, stricter active-memory canary gates, session-list fast paths, and source hygiene.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/local-semantic-memory-openclaw-arm-vps.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/local-semantic-memory-openclaw-arm-vps.html</guid>
      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>VPS OAuth Survival Guide: Google APIs Without a Browser</title>
      <description>Complete tutorial on OAuth 2.0 for headless servers, now with a fail-closed readiness gate that links OAuth-backed automation checks to the broader agent-launch gate pattern.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/vps-oauth-survival-guide.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/vps-oauth-survival-guide.html</guid>
      <pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Why AI Cron Jobs Need Exact-Exec Drivers Instead of Freeform Agent Prompts</title>
      <description>Why AI cron reliability needs exact-exec drivers: artifact-first execution, explicit timeout budgets, and deterministic delivery instead of freeform agent prompts.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/ai-cron-jobs-exact-exec-drivers.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/ai-cron-jobs-exact-exec-drivers.html</guid>
      <pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The Nightly Build: How My Agent Runs Security Audits While I Sleep</title>
      <description>My AI agent runs autonomous cron jobs every night—security audits, health checks, and documentation—now updated with the exact-exec driver lesson that prevents false-negative wrapper alerts from hiding real command success.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/nightly-build-security-audits.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/nightly-build-security-audits.html</guid>
      <pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Declarative Change Propagation: How I Built a Self-Documenting Cron System</title>
      <description>How I built a declarative change propagation system for cron automation: manifest-driven updates, contract-derived documentation blocks, and validation that keeps desired state from quietly drifting — now with a stage-validation ladder from mock to real to a narrow higher-risk lane.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/declarative-change-propagation-cron-system.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/declarative-change-propagation-cron-system.html</guid>
      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The Supply Chain Attack on AI Agents: What OpenClaw Users Need to Know</title>
      <description>A deep dive into malicious skills in AI agent platforms, now updated with the LiteLLM incident, the first named downstream victim report, LangChain/LangGraph vulnerabilities, exposed Ollama servers, and an approved-but-blocked lesson from Moltbook&#x27;s unstable post-incident API surface.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/supply-chain-attack-ai-agents.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/supply-chain-attack-ai-agents.html</guid>
      <pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>When Startup Checks Lie: Rolling Back an OpenClaw Runtime Regression</title>
      <description>A clean OpenClaw upgrade passed startup checks but regressed under real use. This incident report covers the rollback, the verifier false alarm, and the upgrade guardrails I kept.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/openclaw-upgrade-rollback-runtime-regression.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/openclaw-upgrade-rollback-runtime-regression.html</guid>
      <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Gateway Restart Behavior: What OpenClaw Users Need to Know About Config Changes</title>
      <description>Some OpenClaw config changes apply live. Others trigger gateway restarts. Now updated with rollback, health-monitor, and task-registry restore-gap lessons.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/gateway-restart-behavior-openclaw.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/gateway-restart-behavior-openclaw.html</guid>
      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Handling Gemini Capacity Exhaustion: Fallback Lanes for Reliable Agent Workflows</title>
      <description>When Gemini route health drifts, the hard part is not picking a random next model. It is classifying capacity, auth, upstream, and adapter failures before changing fallback policy.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/gemini-capacity-exhaustion-fallback-lanes.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/gemini-capacity-exhaustion-fallback-lanes.html</guid>
      <pubDate>Sun, 29 Mar 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The LiteLLM Supply Chain Attack: What OpenClaw Users Need to Know</title>
      <description>LiteLLM 1.82.7–1.82.8 were malicious PyPI releases tied to a compromised Trivy CI/CD path. This operator-focused write-up covers the fast audit, rotation, inspection, and pinning checklist for OpenClaw users.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/litellm-supply-chain-attack-openclaw.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/litellm-supply-chain-attack-openclaw.html</guid>
      <pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Bigger Embeddings ≠ Better Memory: Why I Chose text-embedding-3-small for OpenClaw Remote Memory</title>
      <description>After proving local memory search worked, I stabilized a remote memory-only lane in OpenClaw. The follow-up reinforced the same lesson: source discipline, lexical anchors, and hybrid retrieval mattered more than another round of model churn.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/text-embedding-3-small-openclaw-remote-memory.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/text-embedding-3-small-openclaw-remote-memory.html</guid>
      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The Hidden Input Limit: When &quot;202K Context&quot; Doesn&#x27;t Mean 202K</title>
      <description>A debugging story about hidden platform caps, now updated with Anthropic&#x27;s March 2026 flat 1M Claude pricing change and why cheaper long context still doesn&#x27;t eliminate API-level ceilings.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/hidden-input-limit-llm-apis.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/hidden-input-limit-llm-apis.html</guid>
      <pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The Recovery Problem: Why Your AI Agent Needs an Undo Button</title>
      <description>I run autonomous cron jobs with no built-in undo capability. When Moltbook&#x27;s community started talking about recovery primitives, I realized that unattended automation needs a stronger recovery story.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/recovery-problem-ai-agent-undo.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/recovery-problem-ai-agent-undo.html</guid>
      <pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Blog Post Sanitization Checklist: What to Redact Before Publishing</title>
      <description>I created a sanitization checklist after nearly publishing sensitive deployment details. Here&#x27;s what to redact, what to keep, and validation scripts for technical bloggers.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/blog-sanitization-checklist.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/blog-sanitization-checklist.html</guid>
      <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Why Custom Skills Don&#x27;t Load in OpenClaw - A Historical Bug and Follow-Up</title>
      <description>A historical custom-skill loading bug, refreshed with a generated-Markdown regression lesson and a standalone artifact-contract follow-up.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/workspace-skills-bug.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/workspace-skills-bug.html</guid>
      <pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Building a Personal AI Assistant with Gmail - Morning Memo Automation</title>
      <description>How I built an AI assistant to automate my morning email routine.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/personal-ai-assistant-gmail-morning-memo.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/personal-ai-assistant-gmail-morning-memo.html</guid>
      <pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Troubleshooting AI Agent Skills</title>
      <description>Common issues and solutions when working with AI agent skills.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/troubleshooting-ai-agent-skills.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/troubleshooting-ai-agent-skills.html</guid>
      <pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The OneDrive and MultCloud Story</title>
      <description>How I migrated my cloud storage using MultCloud.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/onedrive-multcloud-story.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/onedrive-multcloud-story.html</guid>
      <pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Google API Setup Guide</title>
      <description>A comprehensive guide to setting up Google APIs for your projects.</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/google-api-setup-guide.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/google-api-setup-guide.html</guid>
      <pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Welcome to My Blog</title>
      <description>After several years in industry, I&#x27;m starting to share my learnings, thoughts, and experiences...</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/welcome.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/welcome.html</guid>
      <pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Migrating from WordPress to GitHub Pages</title>
      <description>I used to run a blog on WordPress back in 2016-2017 during my PhD years at University of Oklahoma...</description>
      <link>https://anyech.github.io/jingxiao-cai-blog/migrating-from-wordpress.html</link>
      <guid>https://anyech.github.io/jingxiao-cai-blog/migrating-from-wordpress.html</guid>
      <pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate>
    </item>
  </channel>
</rss>
