
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>Johnny - Devlog</title>
      <link>https://johnnyhuy.com/devlog</link>
      <description>Short, self-contained, actionable write-ups. Each entry is something a reader could act on, or would otherwise have to rediscover.</description>
      <language>en</language>
      <managingEditor> (Johnny Huynh)</managingEditor>
      <webMaster> (Johnny Huynh)</webMaster>
      <lastBuildDate>Wed, 14 Oct 2026 23:50:00 GMT</lastBuildDate>
      <atom:link href="https://johnnyhuy.com/devlog/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://johnnyhuy.com/devlog/openclaw-2026-10-3-clears-update-blockers</guid>
    <title>OpenClaw 2026.10.3 Clears Update Blockers and Compaction Failures</title>
    <link>https://johnnyhuy.com/devlog/openclaw-2026-10-3-clears-update-blockers</link>
    <description>Mostly an update and repair release, and the trap it removes is nasty - an interrupted update could leave a record behind that blocked every later upgrade, with the stuck updater unable to clear it. Recovery comes first now, Doctor repairs keep saved sign-ins and memory files, and conversations no longer die at a compaction boundary.
</description>
    <pubDate>Wed, 14 Oct 2026 23:50:00 GMT</pubDate>
    <author> (Johnny Huynh)</author>
    <category>OpenClaw</category><category>Release Notes</category><category>Updates</category>
  </item>

  <item>
    <guid>https://johnnyhuy.com/devlog/openchamber-2-3-2-project-knowledge-for-agents</guid>
    <title>OpenChamber 2.3.2 Adds Project Knowledge for Agents</title>
    <link>https://johnnyhuy.com/devlog/openchamber-2-3-2-project-knowledge-for-agents</link>
    <description>A patch release that hands agents a tool for the project&#39;s notes, todos and plans, adds .deb and .rpm Linux packages, and quietly fixes config writes that could leave a file truncated mid-save. If project notes have been living outside the chat because agents could not see them, this is the release that moves them into the session.
</description>
    <pubDate>Wed, 14 Oct 2026 23:45:00 GMT</pubDate>
    <author> (Johnny Huynh)</author>
    <category>OpenChamber</category><category>Release Notes</category><category>Agents</category>
  </item>

  <item>
    <guid>https://johnnyhuy.com/devlog/ipv6-only-services-fail-behind-ipv4-proxies</guid>
    <title>IPv6 Only Services Return 502 Through Proxies That Hardcode IPv4</title>
    <link>https://johnnyhuy.com/devlog/ipv6-only-services-fail-behind-ipv4-proxies</link>
    <description>A dev service that binds only to ::1 works on localhost but returns 502 through a reverse proxy or workspace URL, because the proxy forces 127.0.0.1 as the upstream address. Try both loopback literals instead of resolving localhost or hardcoding one family.
</description>
    <pubDate>Wed, 14 Oct 2026 23:40:00 GMT</pubDate>
    <author> (Johnny Huynh)</author>
    <category>Networking</category><category>Proxy</category><category>Gotcha</category>
  </item>

  <item>
    <guid>https://johnnyhuy.com/devlog/diagnostic-paths-must-resolve-secrets</guid>
    <title>Diagnostic Paths Must Resolve Secrets Like the Runtime</title>
    <link>https://johnnyhuy.com/devlog/diagnostic-paths-must-resolve-secrets</link>
    <description>A health check that reports &quot;Invalid API key&quot; while the running service authenticates fine is usually a code path that skips secret resolution. The runtime resolves SecretRefs before handing credentials to a provider; the diagnostic and status commands often do not, so they pass the raw reference and get a misleading failure.
</description>
    <pubDate>Wed, 14 Oct 2026 23:35:00 GMT</pubDate>
    <author> (Johnny Huynh)</author>
    <category>Secrets</category><category>Diagnostics</category><category>Gotcha</category>
  </item>

  <item>
    <guid>https://johnnyhuy.com/devlog/cmd-shims-warn-dep0190-with-args-and-shell</guid>
    <title>Windows Cmd Shims Warn DEP0190 When Args Meet Shell True</title>
    <link>https://johnnyhuy.com/devlog/cmd-shims-warn-dep0190-with-args-and-shell</link>
    <description>Every spawn of a .cmd or .bat shim on Windows prints Node&#39;s DEP0190 deprecation warning if you pass an args array alongside shell: true. The warning is about a future behaviour change, not a bug in your code, but it pollutes every log line. Join the args into a single command string and pass an empty array instead.
</description>
    <pubDate>Wed, 14 Oct 2026 23:30:00 GMT</pubDate>
    <author> (Johnny Huynh)</author>
    <category>Node.js</category><category>Windows</category><category>Gotcha</category>
  </item>

  <item>
    <guid>https://johnnyhuy.com/devlog/terraform-plan-is-not-drift-detection</guid>
    <title>Terraform Plan Is Not Drift Detection</title>
    <link>https://johnnyhuy.com/devlog/terraform-plan-is-not-drift-detection</link>
    <description>A plan on a schedule detects pending configuration changes. It does not detect drift, because drift is unrecorded change to live infrastructure and a plan has no way to see it unless you ask for a refresh-only run. It also exits 0 with real differences present. Two facts, and most homegrown drift detection is wrong because it missed one of them.
</description>
    <pubDate>Fri, 11 Sep 2026 22:05:00 GMT</pubDate>
    <author> (Johnny Huynh)</author>
    <category>Terraform</category><category>Infrastructure as Code</category><category>Drift Detection</category>
  </item>

  <item>
    <guid>https://johnnyhuy.com/devlog/github-token-suppresses-pull-request-ci</guid>
    <title>GitHub Actions Silently Skips CI on PRs Opened by GITHUB_TOKEN</title>
    <link>https://johnnyhuy.com/devlog/github-token-suppresses-pull-request-ci</link>
    <description>GitHub does not run pull_request workflows for pull requests that GITHUB_TOKEN opened. Any release tool that opens its own PR (release-please, semantic-release, changesets, Mergify) will therefore never see its own release PR pass CI. Nothing errors, nothing is annotated, the checks just do not exist. Here is the rule, how to prove you have hit it, and the three ways out.
</description>
    <pubDate>Sat, 29 Aug 2026 23:20:00 GMT</pubDate>
    <author> (Johnny Huynh)</author>
    <category>CI/CD</category><category>GitHub Actions</category><category>Release Automation</category>
  </item>

  <item>
    <guid>https://johnnyhuy.com/devlog/helm-does-not-install-crds-on-upgrade</guid>
    <title>Helm Does Not Install CRDs on Upgrade</title>
    <link>https://johnnyhuy.com/devlog/helm-does-not-install-crds-on-upgrade</link>
    <description>CRDs in a chart&#39;s crds/ directory are only applied by helm install. helm upgrade skips them entirely, with no warning. If your External Secrets Operator ClusterSecretStore or your cert-manager Issuer disappears, this is why, and the fix is not in your values file because the values file is never read.
</description>
    <pubDate>Wed, 22 Jul 2026 04:10:00 GMT</pubDate>
    <author> (Johnny Huynh)</author>
    <category>Kubernetes</category><category>Helm</category><category>External Secrets Operator</category>
  </item>

  <item>
    <guid>https://johnnyhuy.com/devlog/cold-coresimulator-hangs-on-fresh-runners</guid>
    <title>Cold CoreSimulator Hangs on Fresh macOS Runners</title>
    <link>https://johnnyhuy.com/devlog/cold-coresimulator-hangs-on-fresh-runners</link>
    <description>On a fresh GitHub Actions macOS runner, the first iOS simulator boot can hang indefinitely with no output. The job does not fail, it just stops making progress until timeout-minutes kills it. Shutting down and erasing the prewarmed simulators before the first boot is the fix, and bootstatus instead of sleep is what turns an invisible hang into a readable failure.
</description>
    <pubDate>Sun, 14 Jun 2026 01:45:00 GMT</pubDate>
    <author> (Johnny Huynh)</author>
    <category>CI/CD</category><category>iOS</category><category>Testing</category>
  </item>

    </channel>
  </rss>
