<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Version 2.9.5rc on RsyncUI</title><link>https://rsyncui.netlify.app/tags/version-2.9.5rc/</link><description>Recent content in Version 2.9.5rc on RsyncUI</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 03 May 2026 13:42:27 +0200</lastBuildDate><atom:link href="https://rsyncui.netlify.app/tags/version-2.9.5rc/index.xml" rel="self" type="application/rss+xml"/><item><title>Version 2.9.5rc</title><link>https://rsyncui.netlify.app/blog/2026/05/03/version-2.9.5rc/</link><pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate><guid>https://rsyncui.netlify.app/blog/2026/05/03/version-2.9.5rc/</guid><description>&lt;h2 id="version-295---may-03-2026---test-release"&gt;Version 2.9.5 - May 03, 2026 - test release&lt;a class="td-heading-self-link" href="#version-295---may-03-2026---test-release" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="improved-log-and-chart-handling"&gt;Improved log and chart handling&lt;a class="td-heading-self-link" href="#improved-log-and-chart-handling" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Unified log-store loading behind a shared &lt;code&gt;LogStoreService&lt;/code&gt;, so logging, log records, snapshots, and chart views now read from the same source.&lt;/li&gt;
&lt;li&gt;Centralized task/log lookup helpers for &lt;code&gt;hiddenIDs&lt;/code&gt;, selected task resolution, and backup IDs, reducing repeated logic across the app.&lt;/li&gt;
&lt;li&gt;Reworked log statistics chart preparation into a shared chart service/reducer pipeline.&lt;/li&gt;
&lt;li&gt;Removed the older &lt;code&gt;ObservableChartData&lt;/code&gt; path and added dedicated chart reducer tests.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="improved-persistence-and-async-behavior"&gt;Improved persistence and async behavior&lt;a class="td-heading-self-link" href="#improved-persistence-and-async-behavior" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Replaced detached JSON writes with a shared awaited writer (&lt;code&gt;SharedJSONStorageWriter&lt;/code&gt;) for configuration and log data.&lt;/li&gt;
&lt;li&gt;Propagated the new async write flow through configuration updates, logging, imports, task creation/copy flows, and log deletion paths.&lt;/li&gt;
&lt;li&gt;Removed thin actor wrappers for output formatting and version fetching, replacing them with simpler async helpers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="cleanup-and-simplification"&gt;Cleanup and simplification&lt;a class="td-heading-self-link" href="#cleanup-and-simplification" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Reduced app-owned actor usage down to the core log-related boundaries that still need serialization.&lt;/li&gt;
&lt;li&gt;Removed older chart-related actor plumbing and several no-longer-needed adapter layers.&lt;/li&gt;
&lt;li&gt;Removed the old “20 lines” tagging warning logic from estimate, execute, and task details code paths.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="internal-refactor-progress"&gt;Internal refactor progress&lt;a class="td-heading-self-link" href="#internal-refactor-progress" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Done:&lt;/strong&gt; shared log loading, shared configuration helpers, chart pipeline cleanup, detached JSON write removal, thin actor removal.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Partial:&lt;/strong&gt; selection-to-log resolution is only partly centralized, and some async task bridges still remain.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Not finished yet:&lt;/strong&gt; log delete-and-persist is still handled directly in some views, log-result parsing still exists in more than one place, and snapshot/log merge logic is not fully unified yet.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="notes"&gt;Notes&lt;a class="td-heading-self-link" href="#notes" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;This changelog reflects the cleanup work merged in &lt;strong&gt;PR #90&lt;/strong&gt; plus the follow-up commit that removed obsolete warning code.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="general-comments"&gt;General comments&lt;a class="td-heading-self-link" href="#general-comments" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A cleanup of code in RsyncUI is underway. RsyncUI is stable and has many downloads, but I learned more about concurrency and caching while working on another project that requires it. RsyncUI lacks caching, and most work is done on the main thread. There’s a minor need for concurrency and isolation mechanisms like actors in the code. However, concurrency is used to avoid blocking the UI during reading, writing, and sorting log records. All other read and sorting are executed on the main actor. As well as the real synchronization tasks and updates during synchronization.&lt;/p&gt;</description></item></channel></rss>