feat(sidebar): indent threads and helpers under project folders

Closes #7

Summary

In the sidebar's Project layout, folder rows and the threads inside them previously sat at the same leading edge (Chrome.rowHorizontalPadding = 8 pt). When multiple project folders were expanded, the lack of hierarchy made it difficult to tell at a glance where a folder ended and which threads belonged to it.

This change introduces indentation for all items nested inside a project folder while keeping top-level folder rows flush with the sidebar edge.

What Changed

  • Folder Indentation Metric: Added ThreadRowMetrics.folderIndent = 12 pt to SidebarView.swift.
  • Nested Hierarchy Modeling: Added isNested: Bool to SidebarItem (default false).
  • Project & Search Layouts:
    • Open thread rows under a project folder are indented by 12 pt.
    • Helper rows (SidebarHelperRow, HeadCardsRow, HelperStubRow) under nested threads receive the same 12 pt indentation, keeping the dotted HelperConnector pixel-aligned under the parent thread's provider badge.
    • Project-level Settled section headers and settled threads indent under the project folder.
    • Search result threads displayed under project headers also receive the nested indentation.
  • Activity Layout: Remains top-level (isNested: false) under date and attention headers, preserving existing design where thread subtitles display project names.

Verification

  • Built and verified with xcodebuild -project DroppyCode.xcodeproj -scheme DroppyCode -configuration Debug build.
  • Verified in Droppy Code Dev.app that folder rows stay flush, thread rows and helper connectors indent cleanly, and drag reordering / row glide settle animations function smoothly.
Before After
Screenshot 2026-10-03 at 18.05.56.png Screenshot 2026-10-03 at 18.18.14.png

Merge request reports

Loading
Loading