<?xml version="1.0" standalone="yes"?>
<rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
    <channel>
        <title>Wortel</title>
        <item>
            <title>2026.34.1</title>
            <pubDate>Mon, 17 Aug 2026 10:40:40 +0200</pubDate>
            <sparkle:version>2026.34.1</sparkle:version>
            <sparkle:shortVersionString>2026.34.1</sparkle:shortVersionString>
            <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
            <description><![CDATA[<style>
  :root { color-scheme: light dark; }
  body {
    font: 13px/1.5 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;
    margin: 0; padding: 12px 14px;
    color: #16171b; background: transparent;
  }
  @media (prefers-color-scheme: dark) { body { color: #e8e8ea; } }
  h1 { font-size: 15px; font-weight: 600; margin: 0 0 2px; }
  .date { font-size: 11px; opacity: 0.55; margin: 0 0 12px; }
  p { margin: 0 0 10px; }
  ul { margin: 0 0 10px; padding-left: 18px; }
  li { margin-bottom: 5px; }
  strong { font-weight: 600; }
  code {
    font: 11.5px ui-monospace, "SF Mono", Menlo, monospace;
    padding: 1px 4px; border-radius: 4px;
    background: color-mix(in srgb, currentColor 10%, transparent);
  }
  a { color: #0070f5; }
</style>
<h1>Two crashes, and ⌘Z belongs to the terminal again</h1>
<p class="date">Wortel 2026.34.1 &middot; 2026-08-17</p>
<p><strong>Wortel could quit on ⌘Z, and the longer the window had been open the likelier it was.</strong> This one came in from a window that had been up for five days. Typing in the commit box was registering its undo steps against the window rather than against the box, and those steps outlived the box every time the panel closed or you moved to another session. Pressing ⌘Z afterwards, with the terminal focused and the commit box nowhere on screen, reached for a step whose editor was long gone, and the app went down on the spot. The commit box keeps its own undo now, so nothing accumulates on the window and there is nothing stale left to reach for.</p>
<ul>
<li><strong>⌘Z goes to your shell again.</strong> The same bug had quietly taken the key: once you had typed a commit message, the Edit menu’s Undo claimed ⌘Z for itself, and the terminal’s own undo (clear the line you are typing) stopped happening. Undo inside the commit box works exactly as it did.</li>
<li><strong>Closing the last session no longer crashes on the way out.</strong> The window was being freed the instant it closed, while the app was still holding on to it, so anything that ran in the gap could land in memory that had already gone. Updating the title to say no session is selected was enough to do it. It only ever surfaced once the window was gone, which is the least useful moment to hear about it.</li>
</ul>]]></description>
            <enclosure url="https://updates.wortel.sh/Wortel-2026.34.1.zip" length="18713045" type="application/octet-stream" sparkle:edSignature="24Cg9cCGQSYswDQe7lTjjFKYhtfNmUQWP7pzMPNcJyoIhCRxqtduNh3Q7hEuoDqmCHB4O9/rnQfOvACfW7fKDw=="/>
        </item>
        <item>
            <title>2026.33.2</title>
            <pubDate>Thu, 13 Aug 2026 10:08:03 -0400</pubDate>
            <sparkle:version>2026.33.2</sparkle:version>
            <sparkle:shortVersionString>2026.33.2</sparkle:shortVersionString>
            <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
            <description><![CDATA[<style>
  :root { color-scheme: light dark; }
  body {
    font: 13px/1.5 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;
    margin: 0; padding: 12px 14px;
    color: #16171b; background: transparent;
  }
  @media (prefers-color-scheme: dark) { body { color: #e8e8ea; } }
  h1 { font-size: 15px; font-weight: 600; margin: 0 0 2px; }
  .date { font-size: 11px; opacity: 0.55; margin: 0 0 12px; }
  p { margin: 0 0 10px; }
  ul { margin: 0 0 10px; padding-left: 18px; }
  li { margin-bottom: 5px; }
  strong { font-weight: 600; }
  code {
    font: 11.5px ui-monospace, "SF Mono", Menlo, monospace;
    padding: 1px 4px; border-radius: 4px;
    background: color-mix(in srgb, currentColor 10%, transparent);
  }
  a { color: #0070f5; }
</style>
<h1>The spinner tells the truth, and a branch you can actually pick</h1>
<p class="date">Wortel 2026.33.2 &middot; 2026-08-13</p>
<p><strong>The sidebar’s busy spinner had drifted away from the truth in two directions at once</strong>, and if you keep several agents open you will have seen both. A working session showed nothing, while a session that finished an hour ago kept spinning. The first was a marker list that had gone stale: Wortel recognised the braille spinner agents used to animate in their window title, and Claude Code now animates a different one, so it read every frame as “not working” and fell back to guessing from the screen. The second was worse in a quieter way. When the guessing tier lost sight of a session, which a window resize was enough to cause, it forgot that it owed that session a “stopped” and the spinner never came down. Looking at the session to see what it meant was itself one of the ways it got stuck, so it could never recover.</p>
<ul>
<li><strong>An agent that outlives the app is still an agent.</strong> Sessions survive quitting Wortel, but the record of which agent was running in each one was cleared at launch, on the assumption that anything still alive would re-announce itself. A long-running agent never does, because it never returns to a shell prompt. So a session you left running for days came back with no agent name in the sidebar and no activity detection at all, and the longer it ran the less Wortel knew about it. The record now survives when the shell it belongs to does.</li>
<li><strong>New Session on Branch is a proper dialog now.</strong> It was an alert with a pop-up button whose menu carried a “Filter…” item that opened a list on top of it: a menu, to get to a filter, to get to the branches. It is one panel with one searchable list, and the list is the same one the toolbar’s branch switcher uses, so the two can no longer disagree about what a branch list is.</li>
<li><strong>Typing a colleague’s branch name checks out their branch.</strong> It used to create a <em>new</em> branch forked from trunk wearing their name, with none of their work and nothing on screen to say so. A branch that exists on a remote is now recognised as a branch that exists, checked out with its history and set to track, and the dialog says which remote it came from before you commit to it.</li>
<li><strong>A new branch starts from trunk as it is now</strong>, not as of the last time you happened to pull. Wortel fetches while the dialog is open, so the fork point is current by the time you press Create, and it gives up on a slow fetch rather than making you wait on it.</li>
<li><strong>The first push from a new worktree session works.</strong> A branch forked from <code>origin/main</code> was inheriting <code>origin/main</code> as its upstream, which git then refuses to push to under its own default settings. New branches start with no upstream, and the first push sets the right one.</li>
<li><strong>Remote branches no longer hold up the list.</strong> On a large repository they are the slow half by a wide margin, so the picker opens on your local branches and fills the rest in underneath, saying so while it does.</li>
</ul>]]></description>
            <enclosure url="https://updates.wortel.sh/Wortel-2026.33.2.zip" length="18712276" type="application/octet-stream" sparkle:edSignature="ZtYlUyOJ7AvmhzAcWtJVSGzBzkMVpGn77rDhYOi0swf2AfJvp19urk32o+Bz97CN6CDm/JjKwkZhAUWBZ37CAQ=="/>
        </item>
        <item>
            <title>2026.33.1</title>
            <pubDate>Mon, 10 Aug 2026 15:08:19 -0400</pubDate>
            <sparkle:version>2026.33.1</sparkle:version>
            <sparkle:shortVersionString>2026.33.1</sparkle:shortVersionString>
            <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
            <description><![CDATA[<style>
  :root { color-scheme: light dark; }
  body {
    font: 13px/1.5 -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;
    margin: 0; padding: 12px 14px;
    color: #16171b; background: transparent;
  }
  @media (prefers-color-scheme: dark) { body { color: #e8e8ea; } }
  h1 { font-size: 15px; font-weight: 600; margin: 0 0 2px; }
  .date { font-size: 11px; opacity: 0.55; margin: 0 0 12px; }
  p { margin: 0 0 10px; }
  ul { margin: 0 0 10px; padding-left: 18px; }
  li { margin-bottom: 5px; }
  strong { font-weight: 600; }
  code {
    font: 11.5px ui-monospace, "SF Mono", Menlo, monospace;
    padding: 1px 4px; border-radius: 4px;
    background: color-mix(in srgb, currentColor 10%, transparent);
  }
  a { color: #0070f5; }
</style>
<h1>Anonymous usage data, and one switch to turn it off</h1>
<p class="date">Wortel 2026.33.1 &middot; 2026-08-10</p>
<p><strong>This is the release where the app starts reporting anonymous usage data.</strong> It counts which features get used, so that questions like “does anyone open the Files pane” have an answer at all. That is the whole of it: no session names, no directories, no commands, nothing from your screen. It is on by default, and the first time you open this version the ⓘ at the bottom of the sidebar says so and offers the switch that stops it. <code>DO_NOT_TRACK</code> is honoured, and <a href="https://wortel.sh/privacy">wortel.sh/privacy</a> lists every event that exists, in full.</p>
<ul>
<li><strong>A new branch now forks from trunk, not from wherever you happened to be.</strong> Opening a session on a new branch forked the current one, which in a worktree session meant quietly inheriting that worktree’s branch. The dialog asks now, with a From row that defaults to the repository’s own default branch. <code>wortel new --branch</code> does the same. <strong>If a script relied on the old behaviour, it wants <code>--from HEAD</code>,</strong> which is now how you ask to stack on the current branch on purpose.</li>
<li><strong>A worktree session is marked in the sidebar.</strong> A session opened on a branch is renamed to that branch, so it read as an ordinary shell in a directory. It carries the branch glyph now, the same one the toolbar chip uses, because which kind it is decides where your last commit went.</li>
<li><strong>The branch chip fits its name</strong> instead of breaking it in half at a hyphen and standing taller than everything beside it. Long branch names truncate from the tail, and short ones no longer sit in a chip half full of nothing.</li>
</ul>]]></description>
            <enclosure url="https://updates.wortel.sh/Wortel-2026.33.1.zip" length="18558681" type="application/octet-stream" sparkle:edSignature="6m+0JB1UxRW8n7sQGmAzul9JJgVJ5tUmLZIM8PrRFZFi/0/lljMQ381+zO60FeFi03QHk5DUDXpgLLRjNsUQAw=="/>
        </item>
    </channel>
</rss>