<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Build log | Krishnendu Biswas</title>
    <link>https://krishnendu.me/log/</link>
    <atom:link href="https://krishnendu.me/log/feed.xml" rel="self" type="application/rss+xml"/>
    <description>What I build and run with agents, reviewed before publishing.</description>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 20:00:00 +0530</lastBuildDate>
    <item>
      <title>Rebuilt this site and ran a fact audit on its numbers</title>
      <link>https://krishnendu.me/log/2026/10/site-rebuild-fact-audit/</link>
      <guid isPermaLink="true">https://krishnendu.me/log/2026/10/site-rebuild-fact-audit/</guid>
      <pubDate>Sat, 03 Oct 2026 20:00:00 +0530</pubDate>
      <description>This site went from a game-themed page to a professional portfolio. A planning model wrote the spec, a builder agent worked through it from a task board, and served screenshots were reviewed before it went live. The diagrams and charts are now 14 inline SVG figures, each with a data table.</description>
      <enclosure url="https://krishnendu.me/og/og-log-site-rebuild-fact-audit.png" length="31683" type="image/png" />
      <content:encoded><![CDATA[<p><strong>What changed</strong>: This site went from a game-themed page to a professional portfolio. A planning model wrote the spec, a builder agent worked through it from a task board, and served screenshots were reviewed before it went live. The diagrams and charts are now 14 inline SVG figures, each with a data table.</p><p><strong>Why it matters</strong>: I mapped 380 numbers on the site to a source line. A script measures diagram text on 23 pages at 3 screen widths. Rows under the 13px floor went from 18 to 0.</p><svg class="dg wide" viewBox="0 0 680 133" role="img" aria-labelledby="f-site-rw-t f-site-rw-d" xmlns="http://www.w3.org/2000/svg"><title id="f-site-rw-t">How a site change moves from plan to merge</title><desc id="f-site-rw-d">Five steps left to right: plan, build, fact audit, screenshot review, merge. A return arrow runs from fact audit back to build, labelled fabricated draft discarded.</desc><defs><marker id="f-site-rw-ah" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M0 0L10 5L0 10z" fill="currentColor"/></marker></defs><rect class="k-b" x="1" y="1" width="118" height="64" rx="3"/><text x="60" y="38" font-size="16" text-anchor="middle" font-weight="600">Plan</text><rect class="k-b" x="141" y="1" width="118" height="64" rx="3"/><text x="200" y="38" font-size="16" text-anchor="middle" font-weight="600">Build</text><path class="edge" d="M121 33H138" marker-end="url(#f-site-rw-ah)"/><rect class="k-a" x="281" y="1" width="118" height="64" rx="3"/><text class="t-a" x="340" y="38" font-size="16" text-anchor="middle" font-weight="600">Fact audit</text><path class="edge" d="M261 33H278" marker-end="url(#f-site-rw-ah)"/><rect class="k-b" x="421" y="1" width="118" height="64" rx="3"/><text x="480" y="28" font-size="16" text-anchor="middle" font-weight="600">Screenshot</text><text x="480" y="48" font-size="16" text-anchor="middle" font-weight="600">review</text><path class="edge" d="M401 33H418" marker-end="url(#f-site-rw-ah)"/><rect class="k-b" x="561" y="1" width="118" height="64" rx="3"/><text x="620" y="38" font-size="16" text-anchor="middle" font-weight="600">Merge</text><path class="edge" d="M541 33H558" marker-end="url(#f-site-rw-ah)"/><path class="edge" d="M340 65V99H200V69" marker-end="url(#f-site-rw-ah)"/><text x="270" y="123" font-size="15" text-anchor="middle">Fabricated draft discarded</text></svg><p><strong>Result</strong>: Merged and live on 3 Oct 2026, with 0 failing rows on the text size check.</p><p><strong>Lesson</strong>: An earlier draft contained claims that did not match my records, and the fact audit caught them before release. An automated review also passed a build with visible defects, so every release now gets a separate check of the rendered pages before it goes live.</p><p>Sources: <span data-src="K:t_d2253e4b">Task card: v2 visual redesign with diagrams and charts, including the reviewer run and the model fallback</span>, <span data-src="K:t_fe967bff">Task card: v2.1 diagram polish, facts map and diagram text size check</span>, <span data-src="K:t_2e5cde57">Task card: v1.2 agent case studies, where the unmatched claims were found</span></p>]]></content:encoded>
    </item>    <item>
      <title>Moved the agents from laptop to cloud server</title>
      <link>https://krishnendu.me/log/2026/09/cloud-migration/</link>
      <guid isPermaLink="true">https://krishnendu.me/log/2026/09/cloud-migration/</guid>
      <pubDate>Sun, 20 Sep 2026 20:00:00 +0530</pubDate>
      <description>Hermes Agent, the open-source framework my agents run on, moved from a Linux virtual machine on my MacBook (M1 Max) to a cloud server running Ubuntu. The model gateway (9Router, which sends each request to a model) and the provider sync now run as system services on that server.</description>
      <enclosure url="https://krishnendu.me/og/og-log-cloud-migration.png" length="34795" type="image/png" />
      <content:encoded><![CDATA[<p><strong>What changed</strong>: Hermes Agent, the open-source framework my agents run on, moved from a Linux virtual machine on my MacBook (M1 Max) to a cloud server running Ubuntu. The model gateway (9Router, which sends each request to a model) and the provider sync now run as system services on that server.</p><p><strong>Why it matters</strong>: The agents keep working when the laptop is closed. Scheduled jobs and the daily progress report no longer depend on my machine being awake.</p><svg class="dg wide" viewBox="0 0 680 162" role="img" aria-labelledby="f-cloud-w-t f-cloud-w-d" xmlns="http://www.w3.org/2000/svg"><title id="f-cloud-w-t">Before and after the move to a cloud server</title><desc id="f-cloud-w-d">Left: the laptop setup, a Linux virtual machine on a MacBook (M1 Max) running Hermes Agent and the model gateway. Right: the cloud server running Ubuntu with Hermes Agent, and the model gateway and provider sync as system services. Arrow between them labelled moved 20 Sep 2026.</desc><defs><marker id="f-cloud-w-ah" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M0 0L10 5L0 10z" fill="currentColor"/></marker></defs><rect class="k-b" x="1" y="1" width="250" height="138" rx="3"/><text x="15" y="29" font-size="17" font-weight="600">Before: MacBook (M1 Max)</text><line class="rule" x1="15" y1="41" x2="237" y2="41"/><text class="t-s" x="15" y="61" font-size="16">Linux virtual machine</text><line class="rule" x1="15" y1="71" x2="237" y2="71"/><text class="t-s" x="15" y="91" font-size="16">Hermes Agent</text><line class="rule" x1="15" y1="101" x2="237" y2="101"/><text class="t-s" x="15" y="121" font-size="16">Model gateway</text><rect class="k-a" x="429" y="1" width="250" height="160" rx="3"/><text class="t-a" x="443" y="29" font-size="17" font-weight="600">After: cloud server,</text><text class="t-a" x="443" y="51" font-size="17" font-weight="600">Ubuntu</text><line class="rule-a" x1="443" y1="63" x2="665" y2="63"/><text class="t-a" x="443" y="83" font-size="16">Hermes Agent</text><line class="rule-a" x1="443" y1="93" x2="665" y2="93"/><text class="t-a" x="443" y="113" font-size="16">Model gateway, as a service</text><line class="rule-a" x1="443" y1="123" x2="665" y2="123"/><text class="t-a" x="443" y="143" font-size="16">Provider sync, as a service</text><path class="edge" d="M264 82H416" marker-end="url(#f-cloud-w-ah)"/><text x="340" y="70" font-size="15" text-anchor="middle">Moved 20 Sep 2026</text></svg><p><strong>Result</strong>: Gateway and sync were deployed as services on 21 Sep 2026.</p><p><strong>Lesson</strong>: The date of this move rests on a billing record and a boot log rather than my memory. I now log milestones to an append-only ledger with an ID and cite that ID when I write about them.</p><p>Sources: <span data-src="G:0009">Ledger: first billed day of the cloud server (billing record, amount withheld)</span>, <span data-src="G:0010">Ledger: cloud server first boot on 20 Sep, from the system boot log</span>, <span data-src="G:0011">Ledger: agent runtime moved from laptop to cloud server</span>, <span data-src="G:0012">Ledger: model gateway and provider sync deployed as system services</span></p>]]></content:encoded>
    </item>
  </channel>
</rss>
