<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on CodeInstances.com</title>
    <link>https://codeinstances.com/posts/</link>
    <description>Recent content in Posts on CodeInstances.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 18 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://codeinstances.com/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CodeInstances Adds a Self-Hosted Store, Push and Pull by ID, and Bug Reports That Reproduce</title>
      <link>https://codeinstances.com/codeinstances-adds-a-self-hosted-store-push-and-pull-by-id-and-bug-reports-that-reproduce/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/codeinstances-adds-a-self-hosted-store-push-and-pull-by-id-and-bug-reports-that-reproduce/</guid>
      <description>&lt;p&gt;CodeInstances v0.5.0 is about getting a run from where it failed to where someone can fix it. A test fails in CI at 3 a.m. The run is kept, but it&amp;rsquo;s sitting on a build machine that&amp;rsquo;s gone in an hour. This release adds a small store of your own to keep runs in, &lt;code&gt;push&lt;/code&gt; and &lt;code&gt;pull&lt;/code&gt; to move them by id, and &lt;code&gt;report&lt;/code&gt;, which writes the bug report you paste into the issue.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CodeInstances Forks a Run at Any Step, to Run On Live or Try a What-If Answer</title>
      <link>https://codeinstances.com/codeinstances-forks-a-run-at-any-step-to-run-on-live-or-try-a-what-if-answer/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/codeinstances-forks-a-run-at-any-step-to-run-on-live-or-try-a-what-if-answer/</guid>
      <description>&lt;p&gt;CodeInstances v0.6.0 adds fork. Replay runs a program against the whole recording. Fork runs it against the recording up to a step you pick, then lets it carry on from there. You get the past exactly as it happened, and a new future.&lt;/p&gt;&#xA;&lt;p&gt;Two uses pull this in. The first is picking up where a run went wrong. An agent ran for twenty minutes, called a dozen APIs, and on call nine it got an answer that sent it the wrong way. You don&amp;rsquo;t want to spend another twenty minutes and another dozen calls getting back to call nine. &lt;code&gt;codeinstances fork -at 9 run.instance&lt;/code&gt; answers calls one to eight from the recording in a moment, then sends call nine for real, against today&amp;rsquo;s servers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CodeInstances Groups Failing Runs by Fingerprint So Repeats of One Bug Show as One</title>
      <link>https://codeinstances.com/codeinstances-groups-failing-runs-by-fingerprint-so-repeats-of-one-bug-show-as-one/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/codeinstances-groups-failing-runs-by-fingerprint-so-repeats-of-one-bug-show-as-one/</guid>
      <description>&lt;p&gt;CodeInstances v0.4.0 adds the sixth verb, group. Point &lt;code&gt;codeinstances group&lt;/code&gt; at a folder of instances and it tells you how many different ways your program failed, how often each one happened, and when it was first and last seen.&lt;/p&gt;&#xA;&lt;p&gt;The problem is a familiar one. A nightly job fails 40 times in a week. A flaky suite leaves a pile of red runs. Each failure gets its own instance now, which is good, but 40 files isn&amp;rsquo;t an answer. Usually it&amp;rsquo;s two or three bugs, repeating. Somebody has to open the files, squint at the errors and sort them into piles, and the piles drift, because the messages carry request ids, timestamps and ports that change every time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CodeInstances Launches as an Open Source Tool That Keeps Program Runs and Replays Them</title>
      <link>https://codeinstances.com/codeinstances-launches-as-an-open-source-tool-that-keeps-program-runs-and-replays-them/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/codeinstances-launches-as-an-open-source-tool-that-keeps-program-runs-and-replays-them/</guid>
      <description>&lt;p&gt;CodeInstances v0.1.0 is out. It&amp;rsquo;s a small command-line tool that keeps a run of any program as a file and replays it later, with the network replaced by what was recorded. It&amp;rsquo;s open source under the Apache License 2.0 and comes as a single static binary for Linux, macOS and Windows.&lt;/p&gt;&#xA;&lt;p&gt;The problem it goes after is an old one. Code is kept with great care, in version control, reviewed and tagged. Runs are thrown away. A test fails in CI, someone hits rerun, it passes, and whatever went wrong is gone along with the evidence. An API answers something strange once and never again. A job breaks on Tuesday, and by Wednesday the data it read has moved on.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CodeInstances Now Compares Two Runs and Shows Where the Failing One Went Wrong</title>
      <link>https://codeinstances.com/codeinstances-now-compares-two-runs-and-shows-where-the-failing-one-went-wrong/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/codeinstances-now-compares-two-runs-and-shows-where-the-failing-one-went-wrong/</guid>
      <description>&lt;p&gt;CodeInstances v0.2.0 is out, and it adds the third verb. The first release could keep a run and replay it. This one compares two of them: &lt;code&gt;codeinstances diff passing.instance failing.instance&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The usual case goes like this. A job works on Monday and fails on Tuesday, or passes on your laptop and fails in CI. You have both runs as instance files, because you put &lt;code&gt;codeinstances record&lt;/code&gt; in front of the command. Now you want to know what was different, and you&amp;rsquo;d rather not read two logs side by side and guess.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CodeInstances Shrinks a Failing Run to the Answer That Breaks It and Keeps It as a Test</title>
      <link>https://codeinstances.com/codeinstances-shrinks-a-failing-run-to-the-answer-that-breaks-it-and-keeps-it-as-a-test/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/codeinstances-shrinks-a-failing-run-to-the-answer-that-breaks-it-and-keeps-it-as-a-test/</guid>
      <description>&lt;p&gt;CodeInstances v0.3.0 adds two verbs at once. &lt;code&gt;codeinstances shrink&lt;/code&gt; takes a failing run and a passing one and finds which of the failing run&amp;rsquo;s answers actually cause the failure. &lt;code&gt;codeinstances test&lt;/code&gt; replays a folder of instances as regression tests. They belong together: the first finds the bug&amp;rsquo;s smallest form, the second makes sure it stays fixed.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s the problem shrink goes after. You&amp;rsquo;ve got a run that fails and one that doesn&amp;rsquo;t, and &lt;code&gt;diff&lt;/code&gt; from the last release shows you how they differ. Often that&amp;rsquo;s dozens of answers: timestamps, ids, counters, prices that moved. One of them broke the program, and the rest is noise. Reading them one by one is slow, and it&amp;rsquo;s guesswork.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CodeInstances Signs Runs, So You Can Check Who Kept One and That Nothing Changed</title>
      <link>https://codeinstances.com/codeinstances-signs-runs-so-you-can-check-who-kept-one-and-that-nothing-changed/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/codeinstances-signs-runs-so-you-can-check-who-kept-one-and-that-nothing-changed/</guid>
      <description>&lt;p&gt;CodeInstances v0.7.0 adds signing. Every instance already carried an id, the SHA-256 of its contents, so &lt;code&gt;verify&lt;/code&gt; could tell you a file had been edited. What it couldn&amp;rsquo;t tell you is who made the file in the first place. Anyone can change a run and write a fresh id. Now a run can carry a signature, and &lt;code&gt;verify -trust&lt;/code&gt; checks it against keys you&amp;rsquo;ve decided to trust.&lt;/p&gt;&#xA;&lt;p&gt;That matters when a run is evidence. A CI job says the tests passed, an AI agent says what it did and what came back, a bug report says this is what happened. With a signed instance the person reading it doesn&amp;rsquo;t have to take the file&amp;rsquo;s word for it. They check the key.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How a Bug Report Can Arrive as a Runnable CodeInstances File</title>
      <link>https://codeinstances.com/how-a-bug-report-can-arrive-as-a-runnable-codeinstances-file/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/how-a-bug-report-can-arrive-as-a-runnable-codeinstances-file/</guid>
      <description>&lt;p&gt;You maintain a command-line tool that talks to an online service. An issue comes in: &amp;ldquo;sync breaks against our account&amp;rdquo;. You don&amp;rsquo;t have their account. You can&amp;rsquo;t see their data. You ask for logs, then a bigger log, then a screen share, and after a week of back and forth you still haven&amp;rsquo;t seen the failure happen.&lt;/p&gt;&#xA;&lt;p&gt;The reporter could send the failure itself. If they run your tool under CodeInstances, the run is kept as a file with every request your tool made and every answer their account gave back:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How CodeInstances Keeps the Failing Run of a Flaky CI Test</title>
      <link>https://codeinstances.com/how-codeinstances-keeps-the-failing-run-of-a-flaky-ci-test/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/how-codeinstances-keeps-the-failing-run-of-a-flaky-ci-test/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s a situation most teams know. An integration test fails about one run in twenty. It calls an API that usually answers one way and occasionally answers another (a field missing, a list in a different order, a slow page that times out). Somebody hits rerun, it goes green, and the failure is gone. A week later it happens again, and the ticket still says &amp;ldquo;can&amp;rsquo;t reproduce&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;The trouble is that the one run worth looking at is the one nobody kept. Logs say the test failed. They don&amp;rsquo;t hold the answer that made it fail.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How CodeInstances Was Tested Before Its First Release</title>
      <link>https://codeinstances.com/how-codeinstances-was-tested-before-its-first-release/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/how-codeinstances-was-tested-before-its-first-release/</guid>
      <description>&lt;p&gt;A tool that claims to replay runs exactly has to be tested on exactly that. So most of the testing for v0.1.0 does the same thing over and over in different ways: record a program against real servers, shut the servers down, replay it, and check the replay came out the same. Then change something and check the replay notices.&lt;/p&gt;&#xA;&lt;p&gt;Every number in this post comes from the result files in the code repository, in &lt;a href=&#34;https://github.com/codeinstances/codeinstances/tree/main/test/results&#34;&gt;test/results&lt;/a&gt;. They were recorded on October 18, 2026, at commit c2a5975, on a Linux machine with an Intel Xeon processor at 2.10GHz and 2 CPUs, with Go 1.24.7. One script, &lt;code&gt;scripts/record-tests.sh&lt;/code&gt;, runs everything and writes the files, so anyone can run it again.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Develop Against a Metered or Rate Limited API With CodeInstances</title>
      <link>https://codeinstances.com/how-to-develop-against-a-metered-or-rate-limited-api-with-codeinstances/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/how-to-develop-against-a-metered-or-rate-limited-api-with-codeinstances/</guid>
      <description>&lt;p&gt;Some APIs you can&amp;rsquo;t call as often as you&amp;rsquo;d like. A payments sandbox that throttles you after a burst. A maps or weather API billed per request. A partner&amp;rsquo;s staging server that falls over every afternoon. You&amp;rsquo;re working on the part of your program that handles the answers (the formatting, the error messages, the retry logic), and each try means another call you&amp;rsquo;d rather not make.&lt;/p&gt;&#xA;&lt;p&gt;Record the program once against the real API, and work against the recording for the rest of the day:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Replay the AI Agent Run That Did Something Odd Last Night</title>
      <link>https://codeinstances.com/how-to-replay-the-ai-agent-run-that-did-something-odd-last-night/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/how-to-replay-the-ai-agent-run-that-did-something-odd-last-night/</guid>
      <description>&lt;p&gt;An agent ran overnight on a batch of tasks. In the morning one result is wrong. It filed a ticket under the wrong customer, or summarised a document it never fetched, or called a tool twice. You run the agent on the same task to see what happened, and it does the job perfectly.&lt;/p&gt;&#xA;&lt;p&gt;That&amp;rsquo;s normal for agents. The model&amp;rsquo;s answers vary from run to run, so the agent picks different tools in a different order and ends up somewhere else. Running it again doesn&amp;rsquo;t show you last night&amp;rsquo;s run. It shows you a new one. With an ordinary program, rerunning is how you debug. With an agent, the only copy of the run that went wrong is whatever you kept at the time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Upgrade a Dependency With CodeInstances Replaying Real Runs</title>
      <link>https://codeinstances.com/how-to-upgrade-a-dependency-with-codeinstances-replaying-real-runs/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/how-to-upgrade-a-dependency-with-codeinstances-replaying-real-runs/</guid>
      <description>&lt;p&gt;You need to bump something underneath your program. A new major version of the HTTP client library, a vendor&amp;rsquo;s SDK, or the Go toolchain itself. The changelog is long. Your unit tests pass, but they use mocks written two years ago against the old behaviour, so passing doesn&amp;rsquo;t tell you much. What you&amp;rsquo;d like to know is simple: does the program still do the same thing on real work?&lt;/p&gt;&#xA;&lt;p&gt;Real runs answer that. Before the upgrade, record a handful of runs of the current build doing real work, against the real services:&lt;/p&gt;</description>
    </item>
    <item>
      <title>The CodeInstances File Format Is Open JSON With a SHA-256 ID</title>
      <link>https://codeinstances.com/the-codeinstances-file-format-is-open-json-with-a-sha-256-id/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/the-codeinstances-file-format-is-open-json-with-a-sha-256-id/</guid>
      <description>&lt;p&gt;The file is the product. A tool can be replaced, but a run you kept in a format only one tool reads is a run you&amp;rsquo;ll lose eventually. So the instance format is open JSON, written down in full in &lt;a href=&#34;https://github.com/codeinstances/codeinstances/blob/main/docs/FORMAT.md&#34;&gt;FORMAT.md&lt;/a&gt; for anyone who wants to read or write instances with their own tools.&lt;/p&gt;&#xA;&lt;p&gt;Its name is &lt;code&gt;codeinstances/0&lt;/code&gt;, and that string is the first member of every file. A reader that sees a format version it doesn&amp;rsquo;t know has to refuse the file, and readers ignore members they don&amp;rsquo;t recognise. A file that holds the same member twice, or a known member spelled in another case, is refused. That&amp;rsquo;s how the format can grow without breaking files that already exist.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What a Code Instance Is and Why Program Runs Should Be Kept Like Code</title>
      <link>https://codeinstances.com/what-a-code-instance-is-and-why-program-runs-should-be-kept-like-code/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/what-a-code-instance-is-and-why-program-runs-should-be-kept-like-code/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;ve written object-oriented code, you already know the idea. A class is a blueprint. Each object you make from it is an instance of that class, with its own state. One &lt;code&gt;Order&lt;/code&gt; class, thousands of orders.&lt;/p&gt;&#xA;&lt;p&gt;Your program works the same way. The code is the blueprint, and every time it runs, that run is an instance of it. Same code, different day, different answers from the servers it talks to, different clock, different random numbers. Each run is its own thing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why Replay Matters for AI Agents That Take a Different Path Every Run</title>
      <link>https://codeinstances.com/why-replay-matters-for-ai-agents-that-take-a-different-path-every-run/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/why-replay-matters-for-ai-agents-that-take-a-different-path-every-run/</guid>
      <description>&lt;p&gt;Most programs are boring in a good way. Give them the same input and they do the same thing. If one fails, you can usually run it again and watch it fail again.&lt;/p&gt;&#xA;&lt;p&gt;An AI agent isn&amp;rsquo;t like that. The model&amp;rsquo;s answer varies from run to run, so the agent picks different tools, calls them in a different order, reads different pages and ends somewhere else. Ask it the same thing three times and you may get three different runs, and only one of them may go wrong. Run it again to see what happened, and you&amp;rsquo;re watching a different run.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why the Project Is Called CodeInstances</title>
      <link>https://codeinstances.com/why-the-project-is-called-codeinstances/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/why-the-project-is-called-codeinstances/</guid>
      <description>&lt;p&gt;The name is the idea, in two words. Code is the program you write. An instance is one run of it.&lt;/p&gt;&#xA;&lt;p&gt;Programmers already use &amp;ldquo;instance&amp;rdquo; this way. An object is an instance of its class. A server is an instance of an image. A running process is an instance of a program. In each case there&amp;rsquo;s one blueprint and many concrete things made from it, each with a life of its own. A run of your code fits right in. It&amp;rsquo;s made from the code, but it also has things the code doesn&amp;rsquo;t: the answers it got from the network that day, the time on the clock, the random numbers it drew.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
