Skip to content

StorageScope v0.5.1 — Post-release UX polish

Choose a tag to compare

@RasputinKaiser RasputinKaiser released this 22 Jun 04:56

v0.5.1 — Post-release UX polish

Targeted fixes for issues raised during the v0.5.0 UI tour: Folder Tree expand behavior, persistent-header context-sensitivity, sparse-result view layout, and Keeper badge explainability. No API or scan-pipeline changes; safe drop-in upgrade over v0.5.0.

Folder Tree

  • Disclosure triangle is its own toggle. Previously the whole row mutated both selection and expand state on click, and double-clicking a folder opened it in Finder instead of drilling in-app. The chevron is now a dedicated Button; the row body only selects. Deprecated the double-click-to-Finder shortcut on tree rows (Reveal/Open remain in the row's context menu).
  • Empty-tree accessibility hint clarified: rows that can expand say "Click the disclosure triangle to expand or collapse"; leaf rows still say "Selects this item."

Context-sensitive header

  • FilterBar removed from Overview / File Types / Cleanup Review. The Display + Scan Options strip was ~120pt of dead chrome on views that don't use it. The bar now appears only when the active view actually consumes the size or sort picker.
  • Size picker gated per-view. Hidden on Overview / File Types / Cleanup Review where the threshold aggregates nothing.
  • Sort picker gated per-view. Tree is hierarchical; Overview / File Types / Cleanup Review have no column sort the user can flip from the bar.
  • Removed Scan Options group from the filter bar. "Old after N days" and "Hidden" were already covered by Settings → Scan Options; their presence in the bar was redundant. The Old-after stepper was re-added only on Old Large Files, since the threshold directly drives that view.

Old Large Files

  • Threshold hint card when results are sparse. A new OldLargeFilesThresholdHint inline card surfaces when 1–5 files qualify: copy acknowledges the small set, secondary line guides the user to lower the size filter or "Old after N days" then Rescan, and a Rescan button is wired up for one-tap action.
  • List minHeight scales with content. The scroll area no longer reserves 420pt when only a handful of rows exist — drops to ~220pt for ≤5 items so the empty canvas below sparse results is gone.

Duplicate Review

  • Keeper badge tooltip. The green "Keeper" capsule now carries a help-tag explaining what keeper means and how to reassign it (right-click another copy → "Set as Keeper"). Row accessibility now appends ", keeper" to the row label and the hint explains the swap path.

Validation

  • swift test — 90 tests across 10 suites pass
  • ./script/public_upload_audit.sh — passes
  • bash ./script/build_and_run.sh --verify — bundle launches cleanly
  • DMG: exports/StorageScope-0.5.1.dmg, SHA256 0d6feb5b62f3c4444dbccb3c796a1baf425b7809017a22940ea570907a58b807hdiutil verify confirmed

Why v0.5.1 (not v0.5.0.1)

UX-only fixes plus docs version bump; the v0.5.x series is already a feature-bearing minor track. Patch version under v0.5 is appropriate since no scan pipeline / public API changed.

Deferred (carried from v0.5.0)

  • Tier 3 SelectionState / Tier 4 TrashReviewState extractions — still pending; same lazy-var + closure-injection template.
  • Tier 5 @Observable macro migration — still blocked by didSet observers on tracked properties.
  • Sparkle 2.x auto-update — still gated on notarization.