Skip to content
CAI
Software that uses CAICheck a score

n0ix/SFDL.NET

42.9

Weak · 20 September 2026

6.1k

lines of production code

VB.NET

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

SFDL.NET 3 is a Windows desktop application designed for managing and executing file downloads from SFDL container archives. It provides a graphical interface for configuring FTP connections, handling archive extraction, and monitoring download sessions, while supporting legacy SFDL v2 file migration. The system includes utilities for video playback verification, speed reporting, and system power management to ensure reliable background operations.

Features

Added English localization and debug launch script

The application now includes English language support for the user interface, with new resource files (Strings.en.resx and Strings.en.Designer.vb) providing translations for menus, download lists, and settings. A new Debug.bat script has been added to the Resources folder to simplify launching the application with logging enabled via the /log parameter.

SFDL.NET 3/Resources · high confidence

Added SFDL v2 to v3 converter

A new converter class has been introduced to migrate SFDL files from version 2 to version 3. This tool maps legacy connection settings to the new container structure, specifically translating FTP data connection types (such as AutoActive, AutoPassive, EPRT, and EPSV) into their modern equivalents (Active, Passive, or ExtendedPassive) and updating encryption modes to use TLS or SSL3 protocols. It also handles the structural migration of packages, bulk folders, and file items, ensuring that metadata like hashes, paths, and names are preserved in the new format.

SFDL.NET 3/Classes/SFDL Converter · high confidence

Added XAML value converters for UI binding logic

This change introduces a suite of new XAML value converters to support data binding in the user interface. These include Boolean2VisibliltyConverter for visibility toggling, CollectionViewNameConverter and CollectionViewNameSecureIndicatorConverter for resolving container session names and secure connection status, ExistingFileHandlingConverter for managing file conflict options, FileSizeConverter for human-readable size display, InvertBooleanConverter for logical negation, and LangauageConverter for language selection highlighting.

SFDL.NET 3/Classes/XAML Converter · high confidence

Initial ViewModel architecture for SFDL.NET 3

The application introduces a new Model-View-ViewModel (MVVM) structure for the user interface, centered around a new MainViewModel that manages download sessions, task synchronization, and UI state. This change adds a redesigned Settings window backed by SettingsViewModel, which now supports live theme switching via MahApps.Metro and includes validation for the download directory. Additionally, a new dialog for selecting the download path is implemented with folder browsing and write-permission checks, replacing previous ad-hoc file dialogs.

SFDL.NET 3/Classes/ViewModels · high confidence

Initial implementation of core SFDL.NET 3 download modules

This change introduces the foundational helper modules for the SFDL.NET 3 application, establishing the core mechanics for container-based file downloading. It adds FTP connectivity support via \FTPHelper\, which configures the \ArxOne.Ftp\ client with SSL/TLS protocols, character encoding (including UTF-8), and connection timeouts. The update includes \UnRARHelper\ and \InstantVideoHelper\ to manage archive extraction using the \cRARk\ tool and verify video playback readiness. Additional modules handle session management (\SFDLFileHelper\), logging configuration (\LogHelper\), speed report generation (\SpeedreportHelper\), and system utilities like long-path support and administrative privilege checks (\GeneralHelper\, \FileRegisterHelper\).

SFDL.NET 3/Modules · high confidence

Initial repository structure and documentation

This change establishes the foundational repository structure by adding the solution file (SFDL.NET 3.sln) which references the main application and several supporting projects (Container, DragnDrop, RHash, FTP). It also includes initial documentation files (README.md, LICENSE.md) and configuration for GitHub Pages deployment (\_config.yml) and CI/CD (.gitlab-ci.yml).

(repo-wide) · high confidence

Introduction of new data models for session management and settings

The application introduces a comprehensive set of new model classes in the Models directory to support updated download and session handling. Key additions include ContainerSession and ContainerSessionState to track individual download sessions and their lifecycle states, DownloadItem to manage individual file progress and status, and AppTask for background task notifications. The Settings model has been expanded to include RemoteControlSettings, SpeedreportSettings, and UnRARSettings, while new models like Blacklist, BlacklistItem, and BasicAvailabilityTestResult support security checks and connectivity validation. These changes provide the underlying data structures for the new session storage, priority handling, and availability testing features.

SFDL.NET 3/Classes/Models · high confidence

New utility classes for download management and UI support

This change introduces several new helper classes in the core logic layer to support improved download handling and UI responsiveness. It adds a DelegateCommand for MVVM binding, a DispatchService for safe UI thread marshaling, and an extended ObservableCollectionEx that supports efficient bulk AddRange and RemoveRange operations to reduce UI updates. It also includes a StandbyHandler to manage system power states (preventing sleep during downloads or triggering standby after completion) via native Windows APIs, a FixedWidthColumn for ListView styling, and a NotifyTaskCompletion wrapper to expose async task status to the UI.

SFDL.NET 3/Classes · high confidence

SFDL.NET 3 application launch and initial configuration

The SFDL.NET 3 application is introduced, featuring a MahApps.Metro-based UI with Light.Blue theme support, single-instance enforcement via named pipes, and .sfdl file association registration. It includes a Settings window with general options (language, standby prevention, instant video, update search, minimize to tray), theme synchronization with Windows, and download path configuration. The application supports command-line arguments (/log for logging, .sfdl file paths), drag-and-drop functionality, and long path handling via AppContext switches.

SFDL.NET 3 · high confidence

Behavioural changes

Application version updated to 3.0.8.2 with persistent window and folder settings

The application assembly version has been incremented to 3.0.8.2. Additionally, the application now persists the user's last selected download folder path and remembers the main window's size, position, and state (e.g., maximized) across sessions, ensuring a consistent user experience upon restart.

SFDL.NET 3/My Project · high confidence

New exception types for download lifecycle and validation errors

The application now introduces specific exception classes to handle distinct download scenarios, allowing for more precise error handling. These include BasicAvailabilityTestFailedException for failed availability checks, DownloadStoppedException for user-initiated or system-stopped downloads, FileNameTooLongException for invalid file names, NoSpeedreportDataException for missing speed report data, and NotEnoughFreeDiskSpaceException for storage issues. This enables the application to distinguish between these specific failure modes rather than relying on generic errors.

SFDL.NET 3/Classes/Exceptions · high confidence

Updated blacklist to block specific executable and archive files

The application's blacklist configuration has been updated to explicitly block specific file types and names. The new rules prevent execution of Windows Script Host files (.SCR) and shortcut files (.lnk/.LNK), and specifically block the files 'IMG001.exe', 'Info.zip', and 'info.zip'.

SFDL.NET 3/Blacklist · high confidence

Dependencies

Initial project setup with updated NuGet dependencies

The SFDL.NET 3 project has been initialized with a set of NuGet packages, establishing the application's external dependencies. This includes MahApps.Metro (2.4.2) and its Modern icon pack (4.8.0) for the user interface, NLog (4.7.5) for logging, and ControlzEx (4.4.0) for extended WPF controls. Additional libraries such as MoreLinq (3.3.2), Microsoft.Xaml.Behaviors.Wpf (1.1.19), and SmartThreadPool (2.2.6) are also included to support application functionality.

(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 43.

Lenses

  • Code Health 78
  • Architecture 98
  • Maturity 25
  • Readiness 29
  • Security 100

Changes since last survey

  • 300 commits — 193 feature/other, 107 fixes

By area

  • SFDL.NET 3/Classes — 145 commits
  • SFDL.NET 3/Resources — 33 commits
  • SFDL.NET 3/Modules — 24 commits
  • (repo) — 18 commits
  • (root) — 18 commits
  • SFDL.NET 3/My Project — 13 commits
  • SFDL.NET 3/MainWindow.xaml — 9 commits
  • SFDL.NET 3/SFDL.NET 3.vbproj — 7 commits
  • SFDL.NET 3/UpdateCheck — 7 commits
  • SFDL.NET 3/Application.xaml.vb — 5 commits
  • SFDL.NET 3/MainWindow.xaml.vb — 5 commits
  • SFDL.NET 3/App.config — 4 commits
  • SFDL.NET 3/SettingsWindow.xaml — 4 commits
  • SFDL.NET 3/Blacklist — 3 commits
  • SFDL.NET 3/External Binaries — 2 commits
  • DownloadTest/My Project — 1 commit
  • SFDL.NET 3/SelectContainerDownloadPathPopUp.xaml — 1 commit
  • sfdl.net 3/classes — 1 commit

Notable commits

  • fix: # 148 | Fixed duplicate Priority
  • fix: Added 'SaveWindowPosition="True"' for Settings Window. --> Fixes #72
  • fix: Added ClicknLoad --> Fixes #74
  • fix: Added DownloadStatus "Already Downloaded" -> Fixed #50
  • fix: Added Feature Request to Close SFDl via Context Menu. --> Fixes #35
  • fix: Added Glow Brush. -> Fixed #57 , #78
  • fix: Added PostDownload functionality -> Fixes #29
  • fix: Added Reset Settings Buttons | #146 Fixed Leading Zero miss at CRC Calculation | #144
  • fix: Added Session Storage -> Fixes #53
  • fix: Added UpdateCheck fixes #75
  • fix: Added more detailed UnRAR Messages -> Fixes #51
  • fix: Bugfix: FTPDataType in SFDL was not honored
  • fix: Completed Translation - Fixes #3
  • fix: Download Directory generation HotFix
  • fix: DownloadStartedTime and DownloadStoppedTime are now getting reseted each time the download is started. --> Fixes #41
  • fix: DragnDrop now also working with multiple Files -> Fixes #65
  • fix: Fix for Ui Icons
  • fix: Fix: Retry now is Forced to ResumeFile | #111
  • fix: Fix: TotalContainerSize is not resetting. | #116
  • fix: Fixed TrayIcon Bug (thx tox!)
  • …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

n0ix/SFDL.NET 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 20 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 3bea13b4bfd9f06faa5f719d759775dd94a8022c — 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-b51f968c9b10.