<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Isosceles Devlog</title>
    <link>https://proiso.org/log</link>
    <description>Technical reports and engineering studies — deterministic Rust substrates, locally-hosted LLMs, and the method behind them.</description>
    <language>en-us</language>
    <lastBuildDate>Tue, 30 Jun 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://proiso.org/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title><![CDATA[The Ceiling Was a Floor]]></title>
      <description><![CDATA[We measured a local 9B's pass rate on Rust and read the failures as the model's capacity ceiling. Most of that ceiling was our own infrastructure quietly poisoning the signal — and an honest measurement of a poisoned signal is still a lie about the model.]]></description>
      <link>https://proiso.org/log/devlog_15_the_ceiling_was_a_floor</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_15_the_ceiling_was_a_floor</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[The Decagon Platform]]></category>
      <category><![CDATA[Structural, Not Heroic]]></category>
      <category><![CDATA[Magazine]]></category>
      <category><![CDATA[Issue 02: The Harness Issue]]></category>
    </item>
    <item>
      <title><![CDATA[The Same Mistake, Four Times]]></title>
      <description><![CDATA[Four unrelated bugs in a small local model — a confident hallucination, an anchored retry, an unheard hint, an ignored rule — turned out to be one mechanism. The model's attention is finite, and whatever else is in its context window competes with the signal it needs. The counterintuitive part is the fix: you cannot solve a competing-context problem by adding more context.]]></description>
      <link>https://proiso.org/log/devlog_16_the_same_mistake_four_times</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_16_the_same_mistake_four_times</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[The Decagon Platform]]></category>
      <category><![CDATA[Structural, Not Heroic]]></category>
      <category><![CDATA[Magazine]]></category>
      <category><![CDATA[Issue 02: The Harness Issue]]></category>
    </item>
    <item>
      <title><![CDATA[The system that learned to know its own limits]]></title>
      <description><![CDATA[A local 9B model hits capacity walls it can't see. The engineering wasn't building the wall — it was teaching the system to notice when the model was stuck on the wrong side of it, and route around it without a human in the loop. Three signals, two timing bugs, and the moment the system became self-escalating.]]></description>
      <link>https://proiso.org/log/devlog_17_self_escalating</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_17_self_escalating</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Tessera]]></category>
      <category><![CDATA[Building Tessera]]></category>
      <category><![CDATA[Magazine]]></category>
      <category><![CDATA[Issue 02: The Harness Issue]]></category>
    </item>
    <item>
      <title><![CDATA[The seam that four walls make]]></title>
      <description><![CDATA[A local agent needs tools. Some are safe, others touch the world. The question is where to draw the line. The wrong answer is a prompt that says 'don't touch the world.' The right answer is a seam in the code that makes touching the world structurally impossible — and four independent boundaries that happen to land in the same place.]]></description>
      <link>https://proiso.org/log/devlog_18_the_seam_that_four_walls_make</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_18_the_seam_that_four_walls_make</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Tessera]]></category>
      <category><![CDATA[Building Tessera]]></category>
    </item>
    <item>
      <title><![CDATA[The clock that preempts itself]]></title>
      <description><![CDATA[A shared GPU is a contention problem. When the operator is present and a background batch is running, something has to wait. The wrong answer is 'whatever arrived first.' The right answer is 'whatever the operator is doing, always.' The quartermaster makes presence preempt absence by construction — typed permits, reserved slots, preemption in the type system rather than in a policy.]]></description>
      <link>https://proiso.org/log/devlog_19_the_clock_that_preempts_itself</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_19_the_clock_that_preempts_itself</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Tessera]]></category>
      <category><![CDATA[Building Tessera]]></category>
    </item>
    <item>
      <title><![CDATA[The first breath: what surfaces when the loop runs live]]></title>
      <description><![CDATA[The vertical slice ran live in a test server. The 9B model produced a grounded 4-action scaffolding plan, the role gate denied a non-operator, and the ledger captured everything. A category-nesting bug surfaced on the first run — the execution layer was passing stale server structure to subsequent actions. The bug was structural, not a parameter issue, and the fix was structural. Build-floor findings from the first honest breath of the loop.]]></description>
      <link>https://proiso.org/log/devlog_13_first_breath</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_13_first_breath</guid>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Isosceles]]></category>
      <category><![CDATA[Building Isosceles]]></category>
    </item>
    <item>
      <title><![CDATA[The confident hallucination — and the structure that buried it]]></title>
      <description><![CDATA[A local 9B model hallucinated a dispositional belief about the operator at HIGH confidence — higher than it gave cautious truths. Self-reported confidence is not a hygiene layer. We replaced it with structural provenance density, and the same hallucination scored 0.000.]]></description>
      <link>https://proiso.org/log/devlog_09_confident_hallucination</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_09_confident_hallucination</guid>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Scarlett]]></category>
      <category><![CDATA[The Monitor That Watches Itself]]></category>
      <category><![CDATA[Magazine]]></category>
      <category><![CDATA[Issue 02: The Harness Issue]]></category>
    </item>
    <item>
      <title><![CDATA[The circuit breaker that could never recover]]></title>
      <description><![CDATA[A circuit breaker that opens on failure but never transitions back to closed — because the recovery call was never wired in. A safety mechanism that becomes a permanent outage. Plus the circular health metrics that hid it.]]></description>
      <link>https://proiso.org/log/devlog_10_circuit_breaker</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_10_circuit_breaker</guid>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[TOMA]]></category>
      <category><![CDATA[Hardening the Gateway]]></category>
    </item>
    <item>
      <title><![CDATA[Two red teams and a spike: designing agent memory that survives the agent]]></title>
      <description><![CDATA[An agent memory architecture proposal that survived two adversarial red team passes and a humanization spike before a single line of implementation. The methodology caught four critical design flaws — including one that would have made semantic search silently useless.]]></description>
      <link>https://proiso.org/log/devlog_11_two_red_teams</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_11_two_red_teams</guid>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Planets]]></category>
      <category><![CDATA[Building the Planet]]></category>
    </item>
    <item>
      <title><![CDATA[The two clocks, applied to collaboration]]></title>
      <description><![CDATA[The two-clock architecture — a deterministic fast clock that owns the gateway, a slow probabilistic clock that reasons between turns — proven in game loops and embodiment loops, applied here to a Discord collaborator surface. Why the chat-window-wearing-a-bot failure is the default, why inverting it is the discipline, and what the boundary looks like when the agent takes real actions in a real workspace.]]></description>
      <link>https://proiso.org/log/devlog_12_two_clocks_collaboration</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_12_two_clocks_collaboration</guid>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Isosceles]]></category>
      <category><![CDATA[Building Isosceles]]></category>
    </item>
    <item>
      <title><![CDATA[Captured from day one, learned from later]]></title>
      <description><![CDATA[A ledger that captures what happened doesn't capture whether it was good. The learning signal — four capture surfaces at different friction levels, all converging on a single ledger entry linked to the action — is specified and captured from the first action, even though the learner that consumes it is a future component. The methodology: design the signal capture before you need the learner, or you'll find the data insufficient when the learner is ready.]]></description>
      <link>https://proiso.org/log/devlog_14_captured_from_day_one</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_14_captured_from_day_one</guid>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Isosceles]]></category>
      <category><![CDATA[Building Isosceles]]></category>
    </item>
    <item>
      <title><![CDATA[Moving a live store, and the two bugs the last gate caught]]></title>
      <description><![CDATA[I moved a live agent system's memory from the old hub to a new kernel — one writer, zero rows lost — and the checks I ran at the irreversible step caught two real bugs before the point of no return. The bugs are the evidence the gates work.]]></description>
      <link>https://proiso.org/log/devlog_07_cutover_two_bugs</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_07_cutover_two_bugs</guid>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Tessera]]></category>
      <category><![CDATA[Building Tessera]]></category>
    </item>
    <item>
      <title><![CDATA[We made the monitor its own first customer. Here's what it found in us.]]></title>
      <description><![CDATA[A monitoring system you haven't deeply consumed is one you don't know works. We pointed ours at its own infrastructure first — and it caught a failure that had been happening once a minute, for weeks, invisible at the log we were watching.]]></description>
      <link>https://proiso.org/log/devlog_08_monitor_watches_itself</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_08_monitor_watches_itself</guid>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Silent Forest]]></category>
      <category><![CDATA[The Monitor That Watches Itself]]></category>
      <category><![CDATA[Magazine]]></category>
      <category><![CDATA[Issue 01: The Discipline Issue]]></category>
    </item>
    <item>
      <title><![CDATA[The safety net that paid for itself on the first run]]></title>
      <description><![CDATA[65 HTTP route tests caught two production bugs on their very first run — a deadlock and a runtime panic that 233 unit tests couldn't see. Then the same session imported a vLLM structured output finding from another project, added an HTTP proxy executor for a consumer project, and closed three security attack surfaces. Each piece of discipline paid for itself immediately.]]></description>
      <link>https://proiso.org/log/devlog_04_safety_net</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_04_safety_net</guid>
      <pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[TOMA]]></category>
      <category><![CDATA[Hardening the Gateway]]></category>
      <category><![CDATA[Magazine]]></category>
      <category><![CDATA[Issue 01: The Discipline Issue]]></category>
    </item>
    <item>
      <title><![CDATA[The first off-shape gene]]></title>
      <description><![CDATA[We built a gate to decide what counts as a gene, then built the first thing it wasn't shaped for and ran it through — hoping it would break. It did, and the break told us what the gate had been quietly assuming all along.]]></description>
      <link>https://proiso.org/log/devlog_05_off_shape_gene</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_05_off_shape_gene</guid>
      <pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Phenotype]]></category>
      <category><![CDATA[Building Phenotype]]></category>
    </item>
    <item>
      <title><![CDATA[Make the unsafe path impossible to build]]></title>
      <description><![CDATA[Eight phases moving a live fourteen-daemon system onto one typed-actor kernel, without breaking it once. The methodology that held: not 'remember not to do the dangerous thing' but 'make the dangerous thing structurally impossible to construct.' The difference is the whole story.]]></description>
      <link>https://proiso.org/log/devlog_06_unconstructible</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_06_unconstructible</guid>
      <pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Tessera]]></category>
      <category><![CDATA[Building Tessera]]></category>
      <category><![CDATA[Magazine]]></category>
      <category><![CDATA[Issue 01: The Discipline Issue]]></category>
    </item>
    <item>
      <title><![CDATA[Three walls in vLLM structured output — and the method that found them]]></title>
      <description><![CDATA[A local LLM that only thinks between encounters meant putting Qwen behind a strict JSON contract. Here are the three substrate walls that cost me time — and the working method that surfaced each one, because the method is the part worth copying.]]></description>
      <link>https://proiso.org/log/devlog_01_three_walls</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_01_three_walls</guid>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Diametric]]></category>
      <category><![CDATA[Building Diametric]]></category>
    </item>
    <item>
      <title><![CDATA[How do you know if your AI actually learned anything?]]></title>
      <description><![CDATA[I built two AI entities that adapt to each other between encounters. Then I had to answer the harder question: is the adaptation real, or does it just look real? The honest answer this time was 'not yet' — and the reason that's the post worth writing is that the system could prove it.]]></description>
      <link>https://proiso.org/log/devlog_02_measurement</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_02_measurement</guid>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Diametric]]></category>
      <category><![CDATA[Building Diametric]]></category>
    </item>
    <item>
      <title><![CDATA[The bug disguised as a parameter]]></title>
      <description><![CDATA[Two findings from Diametric's build floor. Both first looked like 'tune the number,' and both were really 'change the structure.' The useful part isn't the bugs — it's that the system was built so it could hand them to me instead of hiding them. The architecture that can contradict you is the one worth having.]]></description>
      <link>https://proiso.org/log/devlog_03_negative_findings</link>
      <guid isPermaLink="true">https://proiso.org/log/devlog_03_negative_findings</guid>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <category><![CDATA[Diametric]]></category>
      <category><![CDATA[Building Diametric]]></category>
    </item>
  </channel>
</rss>