leoafarias/sidekick
59.2
Adequate · 19 September 2026
7.9k
lines of production code
Dart
primary language
1
measurement over time
What this system is
Sidekick is a cross-platform desktop application for managing Flutter SDK versions and projects, built with Flutter and supporting Windows, macOS, and Linux. It provides a centralized interface for installing, switching, and caching Flutter releases via FVM, while also allowing users to organize and filter their local development projects. The system includes utilities for sandboxed terminal execution, automatic application updates, and comprehensive settings management, all wrapped in a unified UI with internationalization support.
Features
Add compatibility check screen for required tools
A new compatibility check screen has been added to verify the presence of essential development tools (Git, Homebrew, and Chocolatey) on the user's system. The screen displays the installation status of each tool and provides platform-specific installation commands (via a dialog with copy-to-clipboard functionality) for missing dependencies, along with an option to bypass the check.
_lib/src/modules/compatibility\checks · high confidence
Added DTOs for release, channel, and version data models
Introduced a new set of data transfer objects in the common module to structure release and channel information. The changes add \ReleaseDto\ as the base abstract class, along with \ChannelDto\, \MasterDto\, and \VersionDto\ to represent specific release states and SDK versions, enabling the application to handle release metadata and caching status more effectively.
lib/src/modules/common/dto · high confidence
Added Flutter Hooks integration for FloatingSearchBarController
Users can now manage the lifecycle of the FloatingSearchBarController within Flutter widget trees using the flutter\_hooks library. A new \useFloatingSearchBarController\ hook has been introduced, which automatically initializes and disposes the controller, simplifying state management for floating search bar components.
lib/src/hooks · high confidence
Added macOS DMG creation script
A new shell script, create\_mac\_dmg.sh, has been added to the scripts directory to automate the generation of the macOS installer disk image. This script utilizes the create-dmg tool to package the Sidekick.app into a Sidekick.dmg file, configuring specific visual elements such as the volume name, background image, icon placement, and window dimensions to provide a consistent installation experience for macOS users.
scripts · high confidence
Added macOS Flutter plugin registration and build configuration
The macOS Flutter integration now includes generated plugin registration and build configuration files. This adds support for several platform-specific plugins, including bitsdojo\_window\_macos, file\_selector\_macos, macos\_window\_utils, open\_file\_mac, path\_provider\_foundation, screen\_retriever, shared\_preferences\_foundation, url\_launcher\_macos, and window\_manager, enabling features like custom window management, file selection, and URL launching on macOS.
macos/Flutter · high confidence
Initial Snap packaging support for Flutter Sidekick
Added Snap packaging configuration files, including snapcraft.yaml and the desktop entry file, enabling the Flutter Sidekick application to be distributed and installed as a Snap package with strict confinement.
snap · high confidence
Initial Windows build configuration for Sidekick
The Windows platform support for the application, now named Sidekick, has been initialized with a CMake build system. This includes the necessary project files to compile the Flutter runner, configure build settings for Debug, Profile, and Release modes, and handle the installation of runtime assets and libraries alongside the executable.
windows · high confidence
Initial macOS application scaffolding added
The macOS platform support for the application has been initialized with the standard Flutter Runner project structure. This includes the Xcode workspace configuration linking the main project and CocoaPods, the base application menu interface (MainMenu.xib) with standard system actions like Hide, Quit, and Find, and the AppDelegate setup connecting the application delegate to the main Flutter window.
macos/Runner.xcworkspace, macos/Runner/Base.lproj · high confidence
Initial project scaffolding and documentation
This release establishes the foundational structure for the Sidekick for Flutter application. It introduces the core configuration files required for development and distribution, including \.fvmrc\ for Flutter Version Management, \analysis\_options.yaml\ for linting via \flutter\_lints\, and a \.desktop\ file for Linux desktop integration. The package also includes the \AppImageBuilder.yml\ recipe for building Linux AppImages, a \privacy-policy.md\ for Microsoft Store compliance, and a comprehensive \README.md\ featuring installation instructions, badges, and an auto-generated contributor list via the all-contributors specification.
(repo-wide) · high confidence
Initial release with cross-platform support and local storage
The application is now available for Windows, Linux, and macOS, featuring a new local storage system powered by Hive for persisting settings and project data. The app includes a migration path for existing users upgrading from version 0.1.1, handles database errors gracefully with a dedicated error screen, and supports internationalization with localization delegates. Windows-specific UI enhancements include window transparency, frameless window support, and custom window management, while a setup script is provided for Windows installation.
lib · high confidence
Introduction of multi-language support with 21 locale configurations
The application now supports internationalization by introducing a new LanguageManager component that defines and manages 21 distinct locales, including English (US/GB), Arabic, Bengali, German, Spanish, Swedish, Chinese (CN/TW), Korean, Japanese, Polish, Portuguese, Italian, Ukrainian, Uzbek (Latin/Cyrillic), Russian, Hindi, Indonesian, French, and Turkish. This change enables the app to display content in these languages and provides utilities for locale-aware formatting, such as date formatting and text case conversion, allowing users to interact with the interface in their preferred language.
lib/i18n · high confidence
Introduction of the main application shell and navigation structure
The application now features a new \AppShell\ widget that serves as the primary layout container, replacing the previous entry point structure. This shell implements a \NavigationRail\ for switching between the Dashboard, Projects, and Explore screens, along with an \AppBottomBar\ and an \InfoDrawer\ for selected details. It includes logic to automatically open the info drawer when a release is selected and handles compatibility checks by redirecting users to a \CompatCheckScreen\ if key components are missing. The layout adapts to platform specifics, such as adding rounded corners and borders on Windows, and integrates internationalization for navigation labels.
lib/src/modules/common · high confidence
MacOS app project structure and build configuration established
The macOS build system for the 'Sidekick' application has been initialized with a standard Xcode project structure. This includes the core project file defining targets for the Runner app, integration with CocoaPods for dependency management, and configuration files for debug and release builds. The setup ensures the app can be built, tested, and archived using Xcode, linking necessary frameworks like libc++ and Pods\_Runner.
macos/Runner.xcodeproj · high confidence
New FVM cache and release management UI components
The FVM module now includes a set of new UI components to manage Flutter versions: FvmCacheSize displays a progress bar showing used vs. unused cache space; EmptyVersions shows a prompt to explore releases when no SDK is installed; FvmReleaseListItem, FvmReleaseStatus, and FvmReleaseActions provide list items, status indicators (including upgrade prompts), and action menus (set global, view details, remove, upgrade); FvmMasterStatus and SetupButton handle master channel status and pending setup states. These components integrate with the existing Riverpod providers and internationalization system.
lib/src/modules/fvm/components · high confidence
New FVM management dialogs for cleanup, deletion, and global configuration
The FVM module now includes three new dialog components to improve user control over Flutter SDK versions. Users can now clean up unused SDK versions via a new dialog that lists unpinned versions and allows selective removal to free up space. A new confirmation dialog has been added for deleting specific release items from the system cache. Additionally, a global configuration dialog displays the current Flutter PATH, includes a button to copy this path to the clipboard, and provides guidance and links for updating the path if FVM is not yet configured.
lib/src/modules/fvm/dialogs · high confidence
New FVM management screen and underlying state providers
Users can now view and manage their locally cached Flutter SDK versions through a dedicated FVM screen. This change introduces the \FVMScreen\ UI, which displays a list of installed versions, shows the total cache size, and provides a button to clean up unused versions. The screen is powered by new providers (\fvmCacheProvider\, \fvmQueueProvider\) that handle caching, directory watching for changes, and a queue for operations like install, setup, upgrade, and removal. A new \FlutterConfigService\ is also added to read and write Flutter SDK configuration settings (such as analytics and platform enablement) directly via the FVM client.
lib/src/modules/fvm · high confidence
New Releases module for managing Flutter SDK versions and channels
Users can now view and manage Flutter SDK releases through a dedicated screen that displays the master channel, available release channels (e.g., stable, beta, dev), and specific version history. The interface allows users to install or switch between SDK versions directly from the list, with support for filtering versions and viewing relative release dates. This module integrates with the existing FVM (Flutter Version Management) provider to fetch and display current installation states and available updates.
lib/src/modules/releases · high confidence
New centralized settings module with persistent storage and IDE configuration
A new settings module has been introduced to manage application preferences, including theme mode, project paths, and supported locales. This change adds persistent storage for Sidekick settings using Hive, allowing users to save and retrieve their configuration across sessions. It also introduces support for configuring the default IDE (VS Code, Xcode, or a custom location) and enables platform-specific Flutter build targets (Linux, macOS, Windows, Web). The settings are managed via a Riverpod provider, ensuring state consistency across the application.
lib/src/modules/settings · high confidence
New common utility library for app infrastructure
The application now includes a new set of shared utilities in the common utils module. This adds a compute pool for managing background tasks, debouncing and throttling helpers for UI events, and directory scanning/statistics tools. It introduces a custom IndexedTransitionSwitcher widget for state-preserving page animations, a LayoutSize helper for responsive sizing, and a migration utility to move Hive database files to a new location. Additionally, it provides cross-platform helpers for opening links and files (including VS Code, Xcode, and custom apps), internationalization extensions, and toast notifications.
lib/src/modules/common/utils · high confidence
New error screen for database and settings issues
A new ErrorDBScreen has been added to handle cases where Sidekick fails to read its settings or database. This screen displays a user-friendly error message explaining the issue, provides a link to create a new GitHub issue for support, and includes a button to close the application. It also features window management controls for dragging and closing the window.
lib/src/screens · high confidence
New molecule components for UI structure and interaction
Added four new UI components to the molecules layer: SkAppBar (a top app bar with platform-specific window controls, search, and settings actions), SkListTile (a customizable list tile with selection and tap handling), InfoBanner (a styled notification banner), and VersionInstallButton (a button that manages FVM installation queues, caching status, and loading states).
lib/src/components/molecules · high confidence
New sandbox terminal component with command history and selectable output
A new SandboxTerminal widget has been added to the sandbox components, providing a terminal-like interface for interacting with sandbox releases. Users can now view selectable and scrollable terminal output, submit commands via a text field, and navigate through command history using up and down arrow keys. The component automatically scrolls to the latest output and manages focus, displaying a loading indicator while commands are being processed.
lib/src/modules/sandbox/components · high confidence
New search functionality for projects and releases
A new search provider has been added to the application, enabling users to search across Flutter projects, release channels, and specific stable or beta releases. The implementation filters results based on project names, pinned versions, release names, and channel names, grouping them into distinct categories for easier navigation.
lib/src/modules/search · high confidence
New search interface with categorized results
The search module now features a dedicated floating search bar that automatically opens when navigating to the search screen. As users type, the interface displays a categorized list of results, grouping items into channels, projects, stable releases, and beta releases. The search experience includes a blurred background overlay, debounced input handling, and localized text for all labels and empty states.
lib/src/modules/search/components · high confidence
New set of UI atom components for the Sidekick interface
This change introduces a collection of new reusable UI components in the \lib/src/components/atoms\ directory, including \BlurBackground\, \SkCheckBox\, \Console\, \CopyButton\, \EmptyDataset\, \SkGroupTile\, \SkLoadingIndicator\, \RefreshButton\, \SliverAnimatedSwitcher\, \SliverHeaderDelegate\, \SliverSection\, and various typography widgets (\Paragraph\, \Caption\, \ConsoleText\, \Heading\, \Subheading\). These components provide foundational building blocks for the application's interface, such as a blur effect overlay, a custom checkbox with Material Design Icons, an expandable console view for FVM output, and sliver-based list headers.
lib/src/components/atoms · high confidence
New shared UI components and keyboard navigation support
This change introduces three new components in the organisms layer: \SkScreen\ provides a standardized screen layout with a title, optional actions, and a processing progress indicator; \AppBottomBar\ displays a collapsible console view that appears when a background task is active; and \SkShortcutManager\ enables keyboard shortcuts (Cmd/Ctrl + 1-4) for quick navigation between Home, Projects, Explore, and Search screens.
lib/src/components/organisms · high confidence
New update notification UI components
The updater module now includes dedicated UI components for displaying update status and actions. The new SkUpdateButton component shows an ActionChip when an update is ready, which opens a dialog allowing the user to download the installer immediately or dismiss the notification. The SkUpdateInfo component displays the current and latest version numbers, provides a refresh button to check for updates, and shows a prompt with a download link when a new version is available.
lib/src/modules/updater/components · high confidence
New updater module with platform-specific download support
The application now includes a dedicated updater module that checks for new releases on GitHub and downloads the appropriate installer for the current platform. The system supports Windows (MSIX), macOS (DMG), and Linux (AppImage) by detecting the operating system and fetching the corresponding file extension. It manages the update lifecycle by comparing the current version against the latest GitHub tag, downloading the installer to the user's downloads directory, and providing a mechanism to open the installer once ready. This implementation replaces previous update-checking logic, removing dependencies on external GitHub libraries in favor of direct HTTP requests via Dio.
lib/src/modules/updater · high confidence
Windows Flutter integration initialized with native plugin support
The Windows build system now includes the necessary CMake configuration and generated plugin registrant files to integrate the Flutter engine with the host application. This setup enables the use of specific Windows plugins, including bitsdojo\_window\_windows, file\_selector\_windows, flutter\_acrylic, screen\_retriever, url\_launcher\_windows, and window\_manager, allowing the app to leverage native window management, acrylic effects, and file/URL handling capabilities.
windows/flutter · high confidence
Behavioural changes
5 commits (2 fixes) modifying windows/runner/resources
A change to existing behaviour in windows/runner/resources — 5 commits (2 fixs), 2 files.
assets, windows/runner/resources · medium confidence · unverified
Added macOS build configuration files for the Runner target
The macOS build system now includes dedicated xcconfig files to manage application metadata and compiler settings. AppInfo.xcconfig defines the application name as 'Sidekick', sets the bundle identifier to 'app.fvm.sidekick', and specifies copyright information. Debug.xcconfig and Release.xcconfig are introduced to include base Flutter configurations and the new Warnings.xcconfig. Warnings.xcconfig enables a comprehensive set of compiler warnings and sanitizers, such as nullability checks and undefined behavior detection, to improve code quality during builds.
macos/Runner/Configs · high confidence
Custom window chrome and platform-specific transparency effects
The application now uses a custom window border implementation (via bitsdojo\_window) that replaces the default title bar with a styled header containing move and window control buttons (minimize, maximize, close) that adapt to the current theme's brightness. Additionally, the window background now supports platform-specific transparency effects: Windows 11 (build 22000+) uses Mica, Windows 10 uses Aero, and macOS uses the sidebar effect, ensuring the app content blends with the OS theme rather than using a solid background color.
lib/src · high confidence
Custom window frame and single-instance behavior on macOS
The macOS app now uses a custom window frame (hiding the default title bar) and prevents the application from terminating when the last window is closed, ensuring a single persistent instance. This is achieved by integrating the bitsdojo\_window and macos\_window\_utils plugins in the main window controller, updating the app delegate to handle window reactivation, and enabling the Impeller rendering engine via Info.plist.
macos/Runner · high confidence
Linux application now supports custom window frames
The Linux build now uses the bitsdojo\_window plugin to enable custom window frames, allowing the application to render its own title bar and controls rather than relying on the system default. This change is implemented in the native C++ application entry points (my\_application.cc) and build configuration (CMakeLists.txt), where the binary is named 'Sidekick' and linked against the GTK3 and bitsdojo\_window libraries.
linux · high confidence
Linux build system and plugin registration updated
The Linux build configuration has been updated to include a new CMakeLists.txt that sets up the Flutter library and its GTK/GLib/GIO dependencies. Additionally, the generated plugin registrant files have been updated to explicitly register six Linux-specific plugins: bitsdojo\_window\_linux, file\_selector\_linux, flutter\_acrylic, url\_launcher\_linux, window\_manager, and window\_size, ensuring these capabilities are available in the Linux desktop build.
linux/flutter · high confidence
New detail drawer with localized release and cache information
The selected detail module now displays a dedicated drawer (SelectedDetailDrawer) that shows comprehensive information about the chosen release or channel. This includes reference details (channel name, SDK version, release notes link), local cache status (creation date, file path with open-in-file-system action), and release specifics (release date, download ZIP link, SHA256/hash with copy buttons). All user-facing text is now localized via i18next keys (e.g., 'modules:selectedDetail.components.advanced'), and the drawer integrates with the existing Riverpod state provider (selectedDetailProvider) to manage the selected release context.
_lib/src/modules/selected\detail · high confidence
New project management UI components
The project list view has been rebuilt with new components: ProjectListItem displays project details, icons, and action buttons; ProjectActions provides a menu to open the project directory or remove it; ProjectReleaseSelect allows users to pin a specific Flutter SDK version; and EmptyProjects shows a placeholder when no projects are added. These changes improve the user interface for managing Flutter projects within the app.
lib/src/modules/projects/components · high confidence
New settings UI scenes for Flutter, FVM, and General preferences
The settings interface has been restructured into dedicated scene files (flutter\_settings.scene.dart, fvm\_settings.scene.dart, general\_settings.scene.dart) that provide users with granular control over application behavior. Users can now configure Flutter-specific options such as analytics/crash reporting and target platform toggles (Web, macOS, Windows, Linux), adjust FVM installation behavior via a 'skip setup' toggle, and manage general preferences including theme mode (system/light/dark), IDE selection (with support for custom IDE paths), and application language/locale. These scenes also expose the current application version and a reset-to-defaults action for general settings.
lib/src/modules/settings/scenes · high confidence
Projects module restructured with auto-detected icons and FVM filtering
The projects module has been reorganized into dedicated service, provider, and screen files, introducing automatic project icon detection that prioritizes pubspec settings (sidekick.icon, flutter\_launcher\_icons) and falls back to assets/logo images. The Projects screen now includes a toggle to filter the list to only show projects with pinned FVM versions, and the provider manages project state including adding, removing, and reloading projects via FVM.
lib/src/modules/projects · high confidence
Sandbox module reorganized into src with new terminal state management
The Sandbox module has been moved into the src directory structure and reorganized into distinct components: a new state provider (sandbox.provider.dart) managing terminal output and command history via Riverpod, a dedicated screen (sandbox.screen.dart) for the UI, and a terminal processor (terminal\_processor.dart) handling isolated process execution. This change consolidates the sandbox functionality, improving code organization and separating concerns between state management, UI presentation, and background process handling.
lib/src/modules/sandbox · high confidence
Windows app now enforces a single running instance
The Windows runner has been updated to prevent multiple instances of Sidekick from running simultaneously. When a user launches the app while it is already active, the existing window is brought to the foreground instead of starting a new process. This change also includes the standard Windows runner infrastructure, such as the CMake build configuration, resource files, and high-DPI window management.
windows/runner · high confidence
Test coverage
Initial widget smoke test for the main application
Added a basic widget test that verifies the core counter functionality of the FvmApp, ensuring the counter starts at 0 and increments correctly when the add icon is tapped.
test · high confidence
Dependencies
Initial project setup with dependency lockfiles and macOS CocoaPods configuration
This change introduces the foundational build configuration for the Sidekick application. It adds the \pubspec.yaml\ manifest defining the Flutter SDK environment (3.4.3+) and direct dependencies such as \hooks\_riverpod\, \fvm\, \hive\, and \bitsdojo\_window\, alongside a generated \pubspec.lock\ that pins all transitive packages to specific versions. Additionally, it includes the \macos/Podfile\ and \macos/Podfile.lock\ to configure CocoaPods for the macOS platform, setting the deployment target to macOS 10.14 and registering native plugins like \window\_manager\ and \file\_selector\_macos\.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 59.
Lenses
- Code Health 95
- Architecture 100
- Maturity 48
- Readiness 59
- Security 59
- Domain Modelling 100
Changes since last survey
- 300 commits — 239 feature/other, 61 fixes
By area
- (repo) — 96 commits
- (root) — 75 commits
- lib/src — 53 commits
- .github/workflows — 34 commits
- macos/Runner — 6 commits
- assets/promo-windows — 3 commits
- macos/Runner.xcodeproj — 3 commits
- .github/dependabot.yaml — 2 commits
- localizations/ar-SA — 2 commits
- localizations/tr-TR — 2 commits
- localizations/uk-UA — 2 commits
- localizations/zh-TW — 2 commits
- macos/Podfile.lock — 2 commits
- windows/flutter — 2 commits
- .github/ISSUE_TEMPLATE — 1 commit
- .vscode/launch.json — 1 commit
- assets/sidekick_installer.icns — 1 commit
- lib/main.dart — 1 commit
- localizations/bn-BD — 1 commit
- localizations/en-GB — 1 commit
Notable commits
- fix: Disable appImage until the step is fixed
- fix: Fix #214 on Windows 11
- fix: Fix AppImage Scripts
- fix: Fix Flutter 3.0.0 build
- fix: Fix Github Action MS Store release
- fix: Fix MS Store package name
- fix: Fix MSIX for non-store version
- fix: Fix MacOS build dmg issue
- fix: Fix Mircosoft badge
- fix: Fix action issues
- fix: Fix brew install command
- fix: Fix crash
- fix: Fix deprecations
- fix: Fix deprecations
- fix: Fix flutter settings display logic
- fix: Fix icon path
- fix: Fix issue regarding certificate in MSIC
- fix: Fix macOS build issues
- fix: Fix openCustom for MacOS
- fix: Fix pub get issue
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
leoafarias/sidekick was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit d1110ea4367431b1864a2b8164a545bdadfebbaa — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.