<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Architecture on Sentinel</title><link>https://sentinel-blog.cherrypod.org/tags/architecture/</link><description>Recent content in Architecture on Sentinel</description><image><title>Sentinel</title><url>https://sentinel-blog.cherrypod.org/images/social-preview.png</url><link>https://sentinel-blog.cherrypod.org/images/social-preview.png</link></image><generator>Hugo -- 0.147.0</generator><language>en-gb</language><lastBuildDate>Sat, 21 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://sentinel-blog.cherrypod.org/tags/architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>Part 52: The Refactor</title><link>https://sentinel-blog.cherrypod.org/posts/52-the-refactor/</link><pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/52-the-refactor/</guid><description>The codebase had grown fast. Features landed, bugs got fixed, new capabilities kept shipping. Then a structural audit revealed what that pace had cost: god files, god functions, and a growing maintenance burden.</description></item><item><title>Part 51: Did It Actually Work?</title><link>https://sentinel-blog.cherrypod.org/posts/51-goal-verification/</link><pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/51-goal-verification/</guid><description>The planner could execute multi-step tasks. But it had no way to verify its own work. If a step failed silently, it carried on regardless. Time to close the loop.</description></item><item><title>Part 50: Pictures, Videos, Documents</title><link>https://sentinel-blog.cherrypod.org/posts/50-attachment-pipeline/</link><pubDate>Thu, 19 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/50-attachment-pipeline/</guid><description>Sentinel could generate code, build websites, write files. But every piece of content was synthetic — generated from scratch by an LLM. What if it could use real photos, real videos, real documents?</description></item><item><title>Part 49: Real-World Data</title><link>https://sentinel-blog.cherrypod.org/posts/49-weather-crypto-tools/</link><pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/49-weather-crypto-tools/</guid><description>Sentinel could browse the web. It could read files and write code. But it couldn&amp;rsquo;t answer &amp;lsquo;what&amp;rsquo;s the weather?&amp;rsquo; without fabricating something. Time to give it real data backends.</description></item><item><title>Part 48: Named Anchors</title><link>https://sentinel-blog.cherrypod.org/posts/48-anchor-allocator/</link><pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/48-anchor-allocator/</guid><description>file_patch needs the planner to find a unique anchor string in existing code. The planner is bad at this. What if the system placed named markers instead?</description></item><item><title>Part 45: More Than One User</title><link>https://sentinel-blog.cherrypod.org/posts/45-multi-user/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/45-multi-user/</guid><description>Sentinel was built for one person. Making it work for multiple users meant rethinking auth, isolation, and how the system tracks who&amp;rsquo;s who.</description></item><item><title>Part 44: Did It Actually Work?</title><link>https://sentinel-blog.cherrypod.org/posts/44-task-verification/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/44-task-verification/</guid><description>Tasks were reporting success based on whether steps completed, not whether the goal was achieved. Building a verification system to tell the difference.</description></item><item><title>Part 43: Learning From Plans</title><link>https://sentinel-blog.cherrypod.org/posts/43-plan-outcome-memory/</link><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/43-plan-outcome-memory/</guid><description>The system could remember what happened during tasks, but not what the plan was or whether it worked. Adding plan-outcome memory to close the loop.</description></item><item><title>Part 41: file_patch</title><link>https://sentinel-blog.cherrypod.org/posts/41-file-patch/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/41-file-patch/</guid><description>Full-file regeneration breaks at scale. The new tool generates only the changed fragments and splices them deterministically.</description></item><item><title>Part 40: The Model Upgrade</title><link>https://sentinel-blog.cherrypod.org/posts/40-the-model-upgrade/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/40-the-model-upgrade/</guid><description>Tested three planner models on identical tasks. The surprise: upgrading the planner fixed the worker&amp;rsquo;s bugs.</description></item><item><title>Part 38: The Classifier Swap</title><link>https://sentinel-blog.cherrypod.org/posts/38-the-classifier-swap/</link><pubDate>Sat, 07 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/38-the-classifier-swap/</guid><description>The LLM classifier was slow, expensive, and occasionally wrong. A deterministic keyword matcher replaced it in microseconds with zero GPU.</description></item><item><title>Part 29: Learning From Experience</title><link>https://sentinel-blog.cherrypod.org/posts/29-learning-from-experience/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/29-learning-from-experience/</guid><description>Cross-session episodic memory — the system remembers what worked, what failed, and applies that knowledge to future tasks.</description></item><item><title>Part 25: The Code Fixer</title><link>https://sentinel-blog.cherrypod.org/posts/25-the-code-fixer/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/25-the-code-fixer/</guid><description>LLMs generate broken code. The code fixer catches it before it hits the filesystem — 7 auto-fixers across 10+ languages.</description></item><item><title>Part 24: Breaking Up the Monolith</title><link>https://sentinel-blog.cherrypod.org/posts/24-breaking-up-the-monolith/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/24-breaking-up-the-monolith/</guid><description>The orchestrator was doing too much. Six phases to extract it into focused modules without breaking a single security invariant.</description></item><item><title>Part 23: The Database Migration</title><link>https://sentinel-blog.cherrypod.org/posts/23-the-database-migration/</link><pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/23-the-database-migration/</guid><description>SQLite to PostgreSQL. Store protocols, async rewrite, data migration, and then ripping out every line of SQLite code.</description></item><item><title>Part 22: The Router</title><link>https://sentinel-blog.cherrypod.org/posts/22-the-router/</link><pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/22-the-router/</guid><description>Not every request needs a frontier model to plan it. The router classifies incoming messages and takes the fast path when it can.</description></item><item><title>Part 20: The Interface</title><link>https://sentinel-blog.cherrypod.org/posts/20-the-interface/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/20-the-interface/</guid><description>Giving Sentinel a proper UI — dashboard health cards, chat, memory browser, routine management, and a GSP mascot.</description></item><item><title>Part 12: The Trust Ladder</title><link>https://sentinel-blog.cherrypod.org/posts/12-the-trust-ladder/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/12-the-trust-ladder/</guid><description>Five trust levels, from full human approval to autonomous execution. Each one its own project.</description></item><item><title>Part 10: The Sandbox</title><link>https://sentinel-blog.cherrypod.org/posts/10-the-sandbox/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/10-the-sandbox/</guid><description>Every shell command runs in a disposable container. No state leaks, no network, no capabilities. Or so I thought.</description></item><item><title>Part 3: Why Sentinel Exists</title><link>https://sentinel-blog.cherrypod.org/posts/03-why-sentinel-exists/</link><pubDate>Sat, 03 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/03-why-sentinel-exists/</guid><description>From a custom PC build to containers, local LLMs, and the paper that started it all — CaMeL.</description></item></channel></rss>