Version 2.9.1

Version 2.9.1 - March 4, 2026

πŸ—‘οΈ Removed Features

  • Removed “Two Tables Inspector” option β€” the usetwotablesInspector setting and the entire InspectorViewstwotables view hierarchy (~750 lines) have been deleted, consolidating to a single Inspector layout
  • Removed manual “Save” buttons from all Settings views (Log, SSH, Environment, Rsync & Path) β€” settings now auto-save on change

πŸ’Ύ Auto-Save Settings

  • All settings (log options, SSH config, environment variables, rsync paths, restore paths, mark days) now automatically persist when modified via onChange handlers

🎨 UI Improvements

  • Default backup ID label changed from "Synchronize ID" β†’ "No ID set" for clarity
  • Tasks without a --delete parameter now display in blue text (previously unstyled)
  • Added "No task selected" placeholder text when no task is selected in Edit/Parameters views
  • Simplified the HelpView β€” removed add and deleteparameterpresent parameters; streamlined to show text + close button
  • Improved help text wording for --delete parameter guidance (now references Documentation)
  • Toolbar “+” button placement changed to .status
  • Removed extra Spacer() toolbar items

πŸ”§ Code Quality & Cleanup

  • Converted // comments to /// doc-comments across ~100+ locations
  • Expanded single-line computed properties to multi-line format (SwiftLint compliance)
  • Removed redundant Sendable conformance from AttachedVolumesService, TCPconnections, SharedConstants
  • Removed custom == implementations from SchedulesConfigurations and Log (using synthesized conformance)
  • Eliminated unnecessary intermediate variables (direct return statements)
  • Removed self. prefix where unnecessary (self.port β†’ port)
  • Deleted unused build scripts (VSC/setup-build-dirs-*.sh)

πŸ”§ DetailsView Enhancement

  • Output row view now conditionally renders RsyncOutputRowView (rsync v3) vs OpenRsyncOutputRowView (open rsync) based on rsync version

πŸ“¦ Dependencies

  • Updated RsyncAnalyse package to latest revision
  • Widget marketing version aligned to 2.9.1 (was stuck at 2.8.0)

πŸ§ͺ Tests

  • Removed unnecessary async from test functions that don’t need it
  • Simplified @Suite attributes (removed redundant name strings)

πŸ“„ Documentation

  • Updated README.md with cleaner structure (sections for Requirements, Installation, Version, Documentation)
  • Updated QUALITY_ANALYSIS_DETAILED.md to v2.0 with current metrics
Last modified March 4, 2026: Create version-2.9.1.md (b05fe05)