<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Design on SILO</title>
    <link>https://silo.pgsty.com/tags/design/</link>
    <description>Recent content in Design on SILO</description>
    <generator>Hugo</generator>
    <language>en</language>
    
    
    
      <lastBuildDate>Mon, 24 Aug 2026 21:35:03 +0800</lastBuildDate>
    
    
      <atom:link href="https://silo.pgsty.com/tags/design/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>CopyObject Checksums Must Cover Logical Object Bytes</title>
        <link>https://silo.pgsty.com/blog/design/copyobject-checksum/</link>
        <pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://silo.pgsty.com/blog/design/copyobject-checksum/</guid>
        <description>Destination compression made it possible for SILO to persist a checksum of the S2 storage stream instead of the logical CopyObject result. This design record reconstructs the failure, compares the rejected fixes, defines the plaintext-reader invariant, proves why the selected solution works, and records rollout and remediation boundaries.</description>
      </item>
    <item>
        <title>DSN-Only Database Notifications: A Compatibility Boundary for #53</title>
        <link>https://silo.pgsty.com/blog/design/notify-url/</link>
        <pubDate>Sun, 23 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://silo.pgsty.com/blog/design/notify-url/</guid>
        <description>SILO will keep PostgreSQL and MySQL notification targets, but standardize their configuration on complete connection strings. Pre-KV discrete database fields are an unsupported migration input and must abort server startup with an explicit error instead of being accepted and silently disabling every bucket notification.</description>
      </item>
    <item>
        <title>Preview Text, Never Execute It: SILO Console Text Preview PRD</title>
        <link>https://silo.pgsty.com/blog/design/console-text-preview/</link>
        <pubDate>Sun, 23 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://silo.pgsty.com/blog/design/console-text-preview/</guid>
        <description>The accepted PRD for previewing small log, text, JSON, and XML objects in SILO Console as bounded, strict UTF-8 text—never as a same-origin executable document.</description>
      </item>
    <item>
        <title>When the Total Is Unknown: Folder Download Progress</title>
        <link>https://silo.pgsty.com/blog/design/dir-percentage/</link>
        <pubDate>Sun, 23 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://silo.pgsty.com/blog/design/dir-percentage/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Status&lt;/strong&gt;: Implemented and verified locally; commit, Console release, and Silo dependency update pending · &lt;strong&gt;Priority&lt;/strong&gt;: P1 · &lt;strong&gt;Owner&lt;/strong&gt;: &lt;a href=&#34;https://github.com/pgsty/silo-console&#34;&gt;&lt;code&gt;pgsty/silo-console&lt;/code&gt;&lt;/a&gt; · &lt;strong&gt;Related issue&lt;/strong&gt;: &lt;a href=&#34;https://github.com/pgsty/silo/issues/62&#34;&gt;&lt;code&gt;pgsty/silo#62&lt;/code&gt;&lt;/a&gt; · &lt;strong&gt;PRD review&lt;/strong&gt;: Claude Fable 5 (&lt;code&gt;xhigh&lt;/code&gt;) — &lt;strong&gt;APPROVE&lt;/strong&gt; · &lt;strong&gt;Implementation review&lt;/strong&gt;: Claude Fable 5 (&lt;code&gt;xhigh&lt;/code&gt;), 2026-08-23 — &lt;strong&gt;APPROVE&lt;/strong&gt;, no P0/P1/P2 findings&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;SILO Console shows &lt;code&gt;NaN%&lt;/code&gt; in Downloads / Uploads while downloading a folder. The ZIP normally keeps streaming and the stored objects are intact, but the progress bar has crossed from &amp;ldquo;unknown&amp;rdquo; into an invalid determinate state. Users see a full-looking bar, assume the transfer failed or finished, and retry it.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
