Skip to content

Flywheel SDK, WinDirStat parity gains, signed-release pipeline#1

Merged
Chartres merged 3 commits into
mainfrom
flywheel-sdk-and-parity
Jun 18, 2026
Merged

Flywheel SDK, WinDirStat parity gains, signed-release pipeline#1
Chartres merged 3 commits into
mainfrom
flywheel-sdk-and-parity

Conversation

@Chartres

Copy link
Copy Markdown
Owner

Brings mac-dir-stat into the flywheel and pushes toward WinDirStat parity + a Homebrew-ready release path.

Flywheel SDK

  • src/flywheel.rs: Rust port of flywheel-client.ts. Posts the shared event taxonomy to the flywheel-core Supabase events table via a detached curl (no new HTTP/TLS deps). Ships dark — no-op unless FLYWHEEL_SUPABASE_URL/ANON_KEY are configured.
  • Events: app_open, scan_completed, conversion (= bytes reclaimed, the aha), error. Plus a Sean-Ellis feedback control + telemetry opt-out in Help. 8 unit tests.
  • Adds local flywheel.json.

WinDirStat parity

  • Recursive file/subdir counts on every node (Node::items()), maintained through compute_sizes, remove_node, and graft. Unit-tested.
  • Sortable directory list (Size/Name/Items/Recent) + arrow-key navigation.
  • Sortable file-type list with per-type file counts.
  • Context menu: Open / Open Terminal Here / Get Info.
  • Per-volume free/unknown-space blocks for any mounted volume, not just /.
  • Fixes a pre-existing failing color test.

Release pipeline (homebrew/cask prerequisite)

  • bundle.sh signs with Developer ID + hardened runtime; notarize.sh staples; release.yml imports the cert + bakes the analytics endpoint + notarizes — all no-op without secrets, so unsigned builds keep working.

Docs

  • README: feature/shortcut updates, a vs-DaisyDisk/GrandPerspective/WinDirStat comparison table, a privacy section.
  • docs/SHARING.md (launch waves) and docs/GROWTH.md (stars → homebrew/cask roadmap, current notability criteria, the unsigned-app blocker, copy-paste secret setup).

All 30 tests pass; clean cargo build + cargo clippy (no new warnings).

🤖 Generated with Claude Code

Pavol Dravecky and others added 2 commits June 18, 2026 10:01
Flywheel:
- Add src/flywheel.rs — Rust port of flywheel-client.ts (shared event
  taxonomy → flywheel-core Supabase events table via detached curl, no new
  TLS deps). Ships dark unless FLYWHEEL_SUPABASE_URL/ANON_KEY are configured.
  Wires app_open, scan_completed, conversion (bytes reclaimed), error, plus a
  Sean-Ellis feedback control and telemetry opt-out in Help. 8 unit tests.
- Add flywheel.json (local portfolio record).

WinDirStat parity:
- Recursive file/subdir counts on every node (Node::items()), maintained
  through compute_sizes, remove_node, and graft. Tested.
- Sortable directory list (Size/Name/Items/Recent) + arrow-key navigation.
- Sortable file-type list with per-type file counts.
- Context menu: Open, Open Terminal Here, Get Info.
- Per-volume free/unknown-space blocks for any mounted volume, not just /.
- Fix stale color_tests expectation (no-extension slate gradient).

Release pipeline:
- bundle.sh signs with Developer ID + hardened runtime when CODESIGN_IDENTITY
  is set; notarize.sh staples the DMG; release.yml imports the cert, bakes the
  flywheel endpoint, and notarizes — all no-op without secrets (stays unsigned).

Docs:
- README: feature updates, vs-DaisyDisk/GrandPerspective/WinDirStat table,
  privacy section, new shortcuts.
- docs/SHARING.md (launch waves) and docs/GROWTH.md (stars → homebrew/cask
  roadmap with current notability criteria + the unsigned-app blocker).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WAayBe6ZM6b4VNPJxUBinF
…enshot

- Auto-start a scan on launch (default target = whole disk), removing the
  click-through welcome screen.
- src/platform/fda.rs + src/ui/fda_window.rs: detect Full Disk Access and, only
  on the first launch that lacks it, offer to open the Settings pane — once,
  then never again (persisted flag). Scanner still works without it.
- Add real README hero screenshot (full-disk treemap) replacing the placeholder.
- SHARING.md: ready-to-submit AlternativeTo + awesome-list entries.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WAayBe6ZM6b4VNPJxUBinF
@Chartres

Copy link
Copy Markdown
Owner Author

Follow-up commit 10b3cd2 adds, per request:

  • Scan-on-launch — opens straight into a whole-disk scan (default), no welcome screen.
  • One-time Full Disk Access prompt — asks only on the first launch that lacks access, then never again (persisted flag); the scanner still works without it.
  • A real README hero screenshot (full-disk treemap) replacing the placeholder.
  • Ready-to-submit AlternativeTo + awesome-list entries in docs/SHARING.md.

🤖 Generated with Claude Code

- Rename FLYWHEEL_SUPABASE_ANON_KEY → FLYWHEEL_SUPABASE_KEY (anon keys are
  legacy; the publishable key sb_publishable_* works in the same apikey/Bearer
  headers — verified live: events insert returns 201).
- Bump version 0.4.3 → 0.5.0 for the flywheel SDK + WinDirStat parity +
  scan-on-launch + Full Disk Access features.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WAayBe6ZM6b4VNPJxUBinF
@Chartres Chartres merged commit 3c590ba into main Jun 18, 2026
@Chartres Chartres deleted the flywheel-sdk-and-parity branch June 18, 2026 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant