<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mendward changelog</title>
    <link>https://mendward.com/changelog/</link>
    <atom:link href="https://mendward.com/changelog/rss.xml" rel="self" type="application/rss+xml" />
    <description>What changed in Mendward, dated and in plain words.</description>
    <language>en</language>
    <lastBuildDate>Tue, 06 Oct 2026 12:00:00 GMT</lastBuildDate>
    <item>
      <title>Every source now runs on the spine</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-10-06-0</guid>
      <pubDate>Tue, 06 Oct 2026 12:00:00 GMT</pubDate>
      <category>Platform</category>
      <description><![CDATA[<ul><li>The source spine is on the real path: each fetch is observed, compiled into a provider-neutral contract and diffed there, before impact analysis.</li><li>Nothing regressed on the way in. All 12 benchmark cases give the same findings and the same migration plans as before, across the OpenAI, Stripe, Twilio and Supabase specifications.</li><li>It is a bridge, not a finished move. The earlier differ still owns type, parameter and payload changes for now.</li></ul>]]></description>
    </item>
    <item>
      <title>A refusal is always on the record</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-10-05-1</guid>
      <pubDate>Mon, 05 Oct 2026 12:00:00 GMT</pubDate>
      <category>Quality</category>
      <description><![CDATA[<ul><li>When a migration names a file it deliberately leaves alone, such as a generated client, it records the refusal and the reason. A summary can no longer read as complete while something was skipped.</li><li>A change that only touches documentation, like a reworded description, is no longer reported as an impact on your code.</li><li>The benchmark grew to 12 cases in 7 categories, with precision and recall reported per category, so a weak area cannot hide inside an average.</li><li>The release gate caught the first of these. It stayed red until the fix landed, then passed all 9 phases again.</li></ul>]]></description>
    </item>
    <item>
      <title>Any API, with no new code</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-10-05-2</guid>
      <pubDate>Mon, 05 Oct 2026 12:00:00 GMT</pubDate>
      <category>Platform</category>
      <description><![CDATA[<ul><li>The source spine is built. An API Mendward has never seen compiles and diffs through exactly the same code as every built-in source.</li><li>The diff engine cannot tell which company published a contract. That is enforced by its types, its signature, a scan of its own source and a check at runtime.</li><li>Each source reports what Mendward can really do with it, as a level. A preset that claims more than its compiler supports is lowered, and told why.</li></ul>]]></description>
    </item>
    <item>
      <title>Live GitHub mode, on the right installation</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-10-05-3</guid>
      <pubDate>Mon, 05 Oct 2026 12:00:00 GMT</pubDate>
      <category>Product</category>
      <description><![CDATA[<ul><li>Repository operations run under the exact GitHub installation that granted the repository. There is no fallback to another installation, a name match or a default.</li><li>A suspended installation is refused before any request reaches GitHub.</li><li>The GitHub test double now behaves exactly like GitHub where it used to be more lenient, and one contract suite runs against both.</li></ul>]]></description>
    </item>
    <item>
      <title>A patched runtime and pinned dependencies</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-10-05-4</guid>
      <pubDate>Mon, 05 Oct 2026 12:00:00 GMT</pubDate>
      <category>Security</category>
      <description><![CDATA[<ul><li>The container that runs your checks moved to Node 22.23.3, which clears six published security advisories. A test fails the build if either pin falls below the patched floor.</li><li>Every third-party GitHub Action in CI is pinned to a commit hash instead of a movable tag, and a test keeps it that way.</li></ul>]]></description>
    </item>
    <item>
      <title>Large GitHub installations, counted correctly</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-10-05-5</guid>
      <pubDate>Mon, 05 Oct 2026 12:00:00 GMT</pubDate>
      <category>Fix</category>
      <description><![CDATA[<ul><li>Repository lists now page through every result. An installation with 250 repositories shows 250.</li><li>Test databases left behind by a crashed run are found and removed automatically, and only ones Mendward created.</li></ul>]]></description>
    </item>
    <item>
      <title>The source spine, and a gate that cannot lie</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-10-04-6</guid>
      <pubDate>Sun, 04 Oct 2026 12:00:00 GMT</pubDate>
      <category>Platform</category>
      <description><![CDATA[<ul><li>Architecture decided for a universal upstream source: any API, SDK, schema or release feed, compiled into one contract model.</li><li>Repository authorization settled without asking GitHub for a fifth permission.</li><li>The verification gate now tests itself before it runs, and refuses to start if its own pass and fail logic is wrong.</li><li>First fully green gate: 9 of 9 phases, 2,657 unit, 543 integration and 20 browser tests.</li></ul>]]></description>
    </item>
    <item>
      <title>Security hardening, measured</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-10-04-7</guid>
      <pubDate>Sun, 04 Oct 2026 12:00:00 GMT</pubDate>
      <category>Security</category>
      <description><![CDATA[<ul><li>Customer source and accidentally committed secrets are kept out of every model request, proven by 45 tests on the model boundary.</li><li>A GitHub installation can belong to exactly one organization.</li><li>Production refuses to run on an unpatched container runtime instead of warning and continuing.</li><li>Sign-in throttling is durable and shared across every process.</li><li>An admin cannot grant themselves owner. Only an owner can create, change or remove an owner.</li><li>The database verifier inspects stored functions as well as tables, so one that ignores tenant boundaries fails the gate.</li><li>Sandboxed checks start only approved container images, cannot reach arbitrary host paths, and leftover containers are swept on a timer.</li></ul>]]></description>
    </item>
    <item>
      <title>Mendward starts watching on its own</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-10-03-8</guid>
      <pubDate>Sat, 03 Oct 2026 12:00:00 GMT</pubDate>
      <category>Product</category>
      <description><![CDATA[<ul><li>The provider monitor polls upstream sources on a schedule. The product is no longer reactive.</li><li>Snapshot retention is bounded, and the retention sweep runs on a timer.</li><li>A renamed field read through destructuring is now detected. It used to be missed, and the benchmark says so.</li><li>A forged sign-out request is refused without ending your session.</li><li>Expired and idle sessions are cleaned up on a schedule.</li></ul>]]></description>
    </item>
    <item>
      <title>Fail-closed CI</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-09-30-9</guid>
      <pubDate>Wed, 30 Sep 2026 12:00:00 GMT</pubDate>
      <category>Platform</category>
      <description><![CDATA[<ul><li>Continuous integration exists, and a meta-test proves it fails when any phase fails.</li><li>Every integration worker gets its own migrated database, so the suite runs concurrently.</li><li>Outbound fetches now cover the whole IPv6 address space, a port allowlist and per-hop redirect checks.</li><li>Sign-in takes the same time whether or not an address has an account, and a test measures it.</li></ul>]]></description>
    </item>
    <item>
      <title>A benchmark that refuses to flatter</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-09-29-10</guid>
      <pubDate>Tue, 29 Sep 2026 12:00:00 GMT</pubDate>
      <category>Quality</category>
      <description><![CDATA[<ul><li>A crash in the patch builder is an error, not a pass.</li><li>Confidence is measured in both directions, and every cost figure names its denominator.</li></ul>]]></description>
    </item>
    <item>
      <title>The first vertical slice</title>
      <link>https://mendward.com/changelog/</link>
      <guid isPermaLink="false">mendward-changelog-2026-09-27-11</guid>
      <pubDate>Sun, 27 Sep 2026 12:00:00 GMT</pubDate>
      <category>Launch</category>
      <description><![CDATA[<ul><li>Upstream change to verified pull request, end to end: ingest, detect, analyze, migrate, verify, open.</li><li>Tenant isolation with row-level security enabled and forced on every tenant table.</li><li>A GitHub App with four permissions. Installation tokens are minted on demand and never stored.</li></ul>]]></description>
    </item>
  </channel>
</rss>
