Skip to content
CAI
Software that uses CAICheck a score

paul1956/CareLink

49.6

Weak · 20 September 2026

34.2k

lines of production code

VB.NET

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

CareLink is a Windows desktop application designed to interface with the Medtronic CareLink API and MiniMed Flex pump devices for diabetes management. It retrieves and visualizes patient health data, including sensor glucose history, basal rates, and active insulin, while providing tools to parse and display device configuration settings from PDF reports. The system supports user authentication via OAuth, manages multiple patient profiles, and offers customizable data grids and charts for monitoring therapy metrics.

How it got here

2021–2023 — Initial scaffolding and core infrastructure

21 changes.

This period established the foundational structure for the CareLink Windows application, focusing on project scaffolding, environment configuration, and the implementation of core application startup logic. It introduced essential utility modules, custom UI controls, and data handling infrastructure to support pump records and user data management. The work also involved consolidating global state and constants while upgrading the framework to .NET 11.

12 changes.

This period focused on building the CareLink integration by introducing comprehensive data models for record discovery, SSO configuration, authorization, and patient data. It also established a robust API communication layer with improved token handling and refactored helper modules to standardize data processing, UI presentation, and PDF report generation.

11 changes.

This period focused on integrating support for the CareLink Flex API and device PDF reports, including new OAuth authentication flows and data models. The work also involved modernizing the user interface with dark mode and high-DPI support, updating the WebView2 runtime distribution, and expanding test coverage for client and UI components.

Features

Add PDF record models for MiniMed Flex device settings

The PdfRecords directory now includes a comprehensive set of data classes (e.g., PdfSettingsRecord, LowAlertsRecord, NamedBasalRecord) to parse and represent device configuration data from PDF files. This addition introduces support for the MiniMed Flex device family, enabling the application to extract and structure settings such as basal rates, alerts, and sensor configurations.

src/CareLink/Records/PdfRecords · high confidence

Added JSON model classes for MarkersData

New Visual Basic classes (Content, Data, DataValues, Item, Marker, View) have been added to the MarkersData folder to define the structure for deserializing marker-related JSON data. These models map JSON fields like 'type', 'timestamp', 'dataValues', and 'views' to strongly-typed properties, enabling the application to parse and handle marker data records from the CareLink service.

src/CareLink/Records/PatientData/MarkersData · high confidence

Added Unicode-aware line splitting helper

A new helper module, UnicodeNewline, has been introduced to provide robust string processing capabilities. It includes a SplitLines extension method that correctly identifies and splits text based on various Unicode newline delimiters (such as LF, CR, CRLF, NEL, VT, FF, LS, and PS), with an optional parameter to trim whitespace from the resulting lines.

src/CareLink/Helpers/UnicodeHelpers · high confidence

New classes have been introduced in the CareLink Records module to represent the authorization response structure, including the provider details (ID, authentication URL, and polling URL) and the top-level authorization object containing the identity provider and list of providers. These models support the deserialization of authorization data for CareLink record access.

src/CareLink/Records/AuthorizeRecords · high confidence

New classes (CPEntry, CertificateInfo, ConfigRecord, CountryInfo, DiscoveryRoot) were added to the DiscoverRecords module to represent the structure of the discovery configuration response, including support for SSO configurations, base URLs, and country-specific data.

src/CareLink/Records/DiscoverRecords · high confidence

Added data models for patient personal and user information

New classes \PatientPersonalInfo\ and \UserInfo\ have been added to the \CommunicationRecords\ area to map patient profile and user account data. These models define the structure for deserializing JSON responses from the CareLink API, including fields such as login dates, account IDs, roles, and MFA status, enabling the application to correctly parse and display user-specific information.

src/CareLink/Records/CommunicationRecords · high confidence

Added empty Class1 placeholder in JsonDeserializationWithException

A new empty class file (Class1.cs) was added to the JsonDeserializationWithException project. The class contains no members or logic, serving only as a structural placeholder within the namespace.

JsonDeserializationWithException · high confidence

Added scripts to download country flag images

New PowerShell scripts have been added to the repository to download country flag images (PNGs) from FlagCDN, with a fallback to Twemoji for unavailable sources. The \download-all-flags.ps1\ script downloads the full set of ISO 3166-1 alpha-2 country flags to \src\\CareLink\\Images\\Flags\, while \download-flags.ps1\ allows downloading specific flags based on provided codes or a \codes.txt\ file. These scripts support configurable image sizes and can optionally copy the downloaded assets to the runtime output folder.

scripts · high confidence

The application project has been initialized with core configuration files, including the application entry point, assembly metadata, and user settings. This setup establishes the runtime behavior (such as high-DPI support and single-instance mode), defines the main form, and configures user-scoped settings for CareLink credentials, country codes, and system preferences like audio alerts and speech recognition thresholds. Additionally, resource definitions for UI assets (icons, images) and alarm sounds are included to support the application's visual and auditory interface.

src/CareLink/My Project · high confidence

Initial project scaffolding and development environment configuration

This change establishes the foundational structure for the CareLink Windows application repository. It introduces a comprehensive .editorconfig file to enforce consistent C\# and VB.NET coding styles, including naming conventions, indentation, and null-checking preferences. The solution is configured with Directory.Build.props and Directory.Build.targets to centrally manage Roslyn analyzers and resolve duplicate WebView2 native DLL packaging conflicts. Additionally, the repository includes essential documentation (README, GettingStarted, License), a .gitignore tailored for Visual Studio and .NET artifacts, and configuration files for Visual Studio extensions, Copilot instructions, and code coverage testing.

(repo-wide) · high confidence

A new internal Client2 class has been added to handle CareLink API interactions, featuring a robust retry loop for transient failures, centralized HTTP client management, and improved token handling using JsonElement for better parsing of access token payloads. This change replaces previous implementation patterns with a more reliable and maintainable approach to data retrieval and authentication flows.

src/CareLink/CareLinkCommunications · high confidence

New About dialog and control position debugging tool

The application now includes a new About box that displays the product name, version, copyright, company details, and description, along with the specific .NET runtime version being used. Additionally, a new Control Positions form has been added, which presents a read-only DataGridView listing the layout coordinates of application controls, serving as a diagnostic tool for UI positioning issues.

src/CareLink/Forms · high confidence

The application introduces new internal structures to manage CareLink user credentials and current session state. A new \CareLinkUserDataList\ class provides a data-binding-capable collection for storing and editing multiple user profiles, while \CareLinkUserDataRecord\ handles individual user settings such as login credentials, country codes, and time zone preferences, including persistence to application settings and CSV export. Additionally, a \CurrentUserRecord\ class now encapsulates the active user's context, including insulin type, carb ratios, and active insulin calculations, with specific logic to disable advanced AIT decay options for Flex insulin pumps.

src/CareLink/Records/UserDataRecords/CareLinkUserData · high confidence

New DataGridView helper modules for consistent styling and export

This change introduces a new set of helper modules in the DataGrivView Helpers directory to standardize and improve the presentation and usability of data grids. DgvCellStyleHelpers provides extension methods for formatting cell values, including handling zero values, applying bold styles, and coloring cells based on content (such as URIs). DgvColumnEventArgsExtensions and DgvInitializationExtensions centralize the configuration of DataGridView columns and controls, ensuring consistent appearance and behavior across the application. DgvDataTableHelpers simplifies the process of binding DataTables to grids within TableLayoutPanels, while DgvEmptyHelpers manages the display of 'No records found' states. Additionally, DgvExportHelpers adds support for exporting grid data to Excel with formatting and copying data to the clipboard, enhancing the user's ability to interact with and share data.

src/CareLink/DataGrivView Helpers · high confidence

New DataGridViewNumericUpDown custom control for numeric data entry

A new custom control set has been added to the CareLink application, introducing \DataGridViewNumericUpDownCell\, \DataGridViewNumericUpDownColumn\, and \DataGridViewNumericUpDownEditingControl\. This allows users to edit numeric values directly within DataGridView columns using a familiar up-down spinner interface, supporting configurable properties such as decimal places, increment steps, and minimum/maximum bounds. This replaces the need for standard text-box editing in numeric fields, providing a more intuitive and robust data entry experience for quantitative data.

src/CareLink/CustomControls/DataGridViewNumericUpDown · high confidence

New Form1 helper modules for image caching, data collection, and UI updates

The Form1Helpers directory now includes several new modules that support the main application form: BitmapCache and CompositeGenerators manage preloaded and dynamically generated composite images (such as battery indicators) with a bounded temporary cache; Form1CollectMarkersHelper processes and scales glucose/insulin markers from JSON data; Form1SummaryTabHelpers and Form1TransmitterBatteryHelper update the summary DataGridView and sensor status displays; Form1UpdateHelpers handles date parsing, time-zone logic, and SG list ordering; ImageHelper coordinates composite image creation; LoggingHelpers provides a fallback disk-log mechanism when the logger window is hidden; MenuHelpers cleans up menu separators; and TabLocation, FileNameStruct, FlagHelpers, and ControlInspector provide supporting structures and utilities.

src/CareLink/Helpers/Form1Helpers · high confidence

New PDF parser support for Flex pump alert and delivery settings

The PumpSetup module now includes new VB.NET modules (AlertSettings.vb and DeliverySettings.vb) to parse and format Flex-specific pump data into PDF reports. AlertSettings handles high/low alerts, reminders, and sensor ending alerts, with specific logic to detect Flex devices (via \pdf.IsFlex\ and \l1.ValueUnits Is Nothing\) to display Carb/BG units as 'Grams' and 'mg/dL' respectively, and to omit legacy properties like 'Time Before High' and 'Resume Basal Alert'. DeliverySettings parses bolus wizard setup (carbohydrate ratios, insulin sensitivity, blood glucose targets), basal patterns, max basal/bolus, dual/square wave settings, bolus increment/speed, and preset bolus configurations, ensuring all these details are correctly rendered in the generated PDF.

src/CareLink/Extensions/PumpSetup · high confidence

The PatientData directory now includes a comprehensive set of new VB.NET classes (e.g., ActiveInsulin, Basal, LastSG, TherapyAlgorithmState) that map directly to the CareLink JSON payload structure. These models enable the application to correctly parse and display detailed pump and sensor data, including basal rates, active insulin, sensor glucose history, and therapy algorithm states.

src/CareLink/Records/PatientData · high confidence

Added a set of new VB.NET classes in the SsoConfig namespace to represent the structure of Single Sign-On configuration data. These models, including SsoConfig, Server, Client, SystemEndpoints, OAuth, MagConfig, and related types, map JSON fields (such as endpoint paths, token lifetimes, and BLE service UUIDs) to strongly-typed properties using System.Text.Json.Serialization, enabling the application to parse and handle the new SSO protocol configuration.

src/CareLink/Records/SsoConfig · high confidence

New color management helpers for graph lines and UI contrast

The application introduces a new set of helper modules in the ColorHelpers directory to standardize how colors are managed and displayed. ColorDictionaryHelpers defines a persistent dictionary mapping graph legend items (such as Active Insulin, Basal Series, and SG Target) to specific KnownColors, supporting loading and saving these preferences to a file. NearestKnownColor provides algorithms to find the closest standard color to any arbitrary RGB value, enabling more intuitive color picking. Additionally, ColorHelpers offers utility functions to calculate contrasting text colors (black or white) based on background brightness and to determine if a color is dark, ensuring that text remains readable against colored backgrounds in tables and charts.

src/CareLink/Helpers/ColorHelpers · high confidence

New custom UI controls for color selection and percentage input

Added three new custom controls to the CareLink interface: KnownColorComboBox, which provides a dropdown for selecting from a list of known colors with visual swatches; NameColorComboBox, which displays a list of specific graph colors with their names and associated values; and PercentUpDown, a numeric up-down control that automatically formats its input and output with a percentage sign. These controls enhance the user experience for color editing and percentage-based data entry within the application.

src/CareLink/CustomControls · high confidence

New dialogs for cleanup, exception handling, and initialization

Added three new Windows Forms dialogs to the application: a 'Cleanup Stale Files' dialog that allows users to selectively delete error report files via a tree view; an 'Unhandled Exception' dialog that captures crash details, generates a report file, and guides users to report issues on GitHub; and an 'Initialize' dialog for configuring pump settings such as AIT, carb ratios, and targets.

src/CareLink/Dialogs · high confidence

New enum definitions for UI assets, server data, and system constants

Added several new enumeration modules to the CareLink application to support UI resource management, data serialization, and system constants. The new \ImageEnums\ module defines identifiers for various pump and sensor status icons (such as battery levels, connectivity states, and calibration indicators), including support for dark/light themes. \ServerDataEnum\ provides a structured list of fields for mapping server-side health data responses. Additionally, \CursorInfoVisibilityEnums\ defines bitmasks for cursor visibility states, \FileEnum\ specifies options for file loading during login or initialization, and \UnicodeEnums\ standardizes newline character handling.

src/CareLink/Enums · high confidence

New extension methods for asynchronous tasks, UI controls, and data handling

The application introduces a suite of new extension methods in the Extensions module to improve code consistency and usability. Asynchronous operations now use a dedicated ConfigureAwaitFalse helper to standardize context handling. UI controls benefit from new methods to manage visibility, center forms and labels on their parents, and auto-adjust font sizes to fit available width. Data handling is enhanced with extensions to search ComboBox collections by key or value, validate CareLink access tokens for expiration, and robustly parse dictionary data into strongly-typed class objects.

src/CareLink/Extensions · high confidence

New marker data models for pump records

Added new data classes in the MarkerrTypes folder to represent specific pump marker records, including AutoBasalDelivery, AutoModeStatus, BgReading, Calibration, Insulin, LowGlucoseSuspended, Meal, and TimeChange. These classes standardize how timestamp, display time, and specific event data (such as insulin amounts, glucose readings, and basal rates) are parsed and exposed for downstream processing and display.

src/CareLink/Records/PatientData/MarkersData/MarkerrTypes · high confidence

New pump record models and data handling infrastructure

This change introduces several new data record classes for pump data, including AcknowledgedRecord, CarbRatioRecord, InsulinActivationRecord, SnoozedRecord, and SummaryRecord, along with supporting utilities like OADate and ItemIndexesModule. These additions enable the application to parse, store, and display specific pump settings (like carbohydrate ratios), activation events, and summary data with improved type safety and formatting.

src/CareLink/Records/Pump Records · high confidence

New support classes for control metadata, indexed enumeration, and time formatting

Added three new support classes to the CareLink application: ControlInfo, which stores UI control metadata and formats anchor styles; IndexClass, which provides indexed enumeration context for iterating sequences; and TimeSpanParts, which formats time durations into human-readable day and hour strings.

src/CareLink/SupportClasses · high confidence

New test helper utilities for HTTP mocking and test data resolution

Added three new helper classes to the test project to improve test reliability and maintainability. CapturingHandler and SimpleResponseHandler provide lightweight HTTP message handlers for mocking responses in tests, allowing tests to intercept and verify HTTP requests without external dependencies. FileHelpers introduces a robust, multi-strategy path resolution system for locating TestData directories, walking up the directory tree to find test data relative to the calling file or solution root, which simplifies test setup and reduces brittle path assumptions.

src/TestProject/TestHelpers · high confidence

New utility modules for browser launching, discovery, and update checking

The application introduces several new utility modules in the Utilities folder to support core functionality. BrowserUtilities provides a method to open URLs in the user's default web browser with cursor feedback. Discover handles fetching and caching configuration data for supported countries and server regions. UpdateChecker asynchronously checks for new application versions on GitHub, ignoring pre-release builds, and notifies the user via the status strip. FileUtilities manages login data files, including validation and sanitization of token JSON by removing deprecated fields like client\_secret. CertificateSigningRequest (now deprecated) and RandomFunctions provide utilities for generating CSRs and random identifiers. DllImports centralizes Windows API calls used for window attributes and formatting.

src/CareLink/Utilities · high confidence

The PDF Device Settings parser now supports extracting configuration data from CareLink Flex device reports in addition to the existing legacy format. This change introduces a new \FlexPdfParser\ module and updates the main \PdfSettingsParserRoot\ to automatically detect Flex PDFs (by checking for 'MiniMed Flex' in the text) and route them to the new parser, while legacy reports continue to use the \LegacyPdfParser\. The new parser handles Flex-specific settings such as basal rates, bolus wizard, and SmartGuard reminders.

src/CareLink/Helpers/PDF DeviceSettings · high confidence

Architecture

Centralized constants for charts, time, messages, and system settings

The application now uses a dedicated set of constant modules in the Constants folder to manage configuration and display data. This includes definitions for chart series names (e.g., Basal, ActiveInsulin), time spans and formats, power broadcast codes, server region locations (US, EU, Clinical), and user-facing notification messages for both standard and Flex pump modes. System constants also define insulin activation times, blood glucose unit conversions (mg/dL to mmol/L), and HTTP headers, providing a single source of truth for these values across the application.

src/CareLink/ProgramVariables/Constants · high confidence

Consolidate global variables into dedicated modules

The application's global state management has been refactored by introducing three new modules—NativeMmolLSupport, PumpVariables, and SystemVariables—to replace scattered global fields. This change centralizes blood glucose unit handling (mmol/L vs. mg/dL), pump-specific data structures (such as basal lists and markers), and system-wide settings (including cached fonts and user preferences) into organized, maintainable components.

src/CareLink/ProgramVariables · high confidence

Refactored charting logic into modular helper modules

The charting implementation in src/CareLink/Helpers/Charting has been reorganized into distinct, focused modules to improve maintainability and readability. New files include CalloutHelpers for managing chart annotations, ChartingHelpers for utility functions like minimum basal detection, CreateChartItems for series and chart area configuration, GetManualBasalPoints for extracting manual basal data, PaintMarkerExtensions for rendering markers and limit rectangles, PlotMarkers for handling marker data points, PlotSeriesBasal for basal insulin plotting, PlotSeriesLimits for target and limit lines, PlotSeriesSg for sensor glucose plotting, and PlotSuspend for low-glucose suspension areas. This refactoring consolidates related logic, removes unused parameters, and standardizes chart rendering behavior.

src/CareLink/Helpers/Charting · high confidence

Behavioural changes

Added application configuration file

The project now includes an Application.myapp file that defines the startup behavior, setting Form1 as the main form, enabling visual styles, and configuring single-instance and shutdown modes.

src/TestProject/My Project · high confidence

This change introduces the core application startup and configuration files for the CareLink client. It adds an App.config defining user settings such as country code (defaulting to US), auto-login, and Time-in-Tight-Range (TiTR) thresholds. ApplicationEvents.vb implements startup logic to prefetch discovery data based on the configured region and configures the application for high-DPI support, dark mode, and deferred form reveal. Additionally, a runtimeconfig.template.json enables the AnchorLayoutV2 Windows Forms feature, and sample JSON files are added to provide test data structures for user profiles and server discovery.

src/CareLink · high confidence

Pump Setup dialog now supports dark mode and high-DPI displays

The Pump Setup application window now adapts to the system's dark color scheme and scales correctly on high-DPI monitors. This is achieved by configuring the application to use PerMonitorV2 high-DPI handling and enforcing a dark system color mode at startup, ensuring the interface remains readable and properly sized regardless of the user's display settings.

src/PumpSetup · high confidence

Refactor OAuth token handling and model definitions

The CareLink application introduces new model classes to standardize OAuth token processing and configuration. AccessTokenDetails and TokenData now explicitly map JSON fields (such as access\_token, refresh\_token, and user profile claims) for improved parsing reliability, while EndpointConfig and RedirectResult provide structured handling for SSO configuration and redirect states. This change supports a more robust token refresh flow and browser-based OAuth handling, ensuring that access tokens and associated user data are stored and processed consistently.

src/CareLink/Models · high confidence

Refactored helper utilities and introduced new diagnostic tools

The \src/CareLink/Helpers\ directory has been reorganized into distinct modules to improve maintainability and add new capabilities. New helper modules include \ClassHelpers\ and \DataTableHelpers\ for mapping class properties to \DataGridViewCellStyle\ and \DataTable\ structures, \CultureHelpers\ for managing date formatting cultures, and \FileIoHelpers\ for standardizing file path resolution and I/O operations. A new \NewMessageBox\ module replaces standard dialogs with \TaskDialog\-based messages that support auto-close timers and verification checkboxes. Additionally, \ExtensionDataAuditScanner\ was added to recursively scan and log unexpected JSON fields for debugging, while \SpeechSupport\ (formerly \SpeechRecognition1\) and \TimeInRangeHelpers\ provide refined speech synthesis, error handling, and Time In Range calculations.

src/CareLink/Helpers · high confidence

Refactored patient data helpers with new modules for basal, notifications, and data cleaning

The PatientDataHelpers directory has been reorganized into dedicated helper modules: ActiveBasalHelpers now extracts active basal rate records from the current PDF; NotificationHelpers manages DataGridView event handlers, cell formatting (including background color and colon spacing), and layout for notification tables; PatientDataHelpers provides a CleanPatientData function that sanitizes serialized patient data by replacing personal information (name, serial numbers) with placeholders; RunningActiveInsulinHelpers adds extension methods to adjust and conditionally sum active insulin levels; and SummaryHelpers handles notification message translation, variable extraction from parentheses, and sensor update time mapping. This refactoring improves code maintainability and separates concerns for basal rates, notifications, insulin calculations, and data privacy.

src/CareLink/Helpers/PatientDataHelpers · high confidence

The login helper components have been restructured to support the new CareLink™ API changes, including Flex PDF report generation and other Flex-specific features. This update introduces a new OAuth browser form using WebView2 for authentication, improves OAuth token handling and refresh flows, and adds support for region-specific endpoint discovery (US/EU). The changes also include fixes for login crashes, deadlock prevention, and improved reliability in token parsing and storage.

src/CareLink/Helpers/LoginHelpers · high confidence

WebView2 runtime distribution updated to use bootstrapper installer

The application now includes the Microsoft Edge WebView2 runtime bootstrapper (MicrosoftEdgeWebView2RuntimeInstallerX64.exe) in its build output and ZIP deployments, replacing the previous NuGet-package-only distribution method. This change ensures that end-users can install the required WebView2 runtime automatically if it is not already present on their system, while the build process continues to target Microsoft.Web.WebView2 version 1.0.818.41 for the managed wrapper and native loader.

BuildAssets · high confidence

Fixes

Added CareLinkUserDataList data source configuration

A new data source configuration file for the CareLinkUserDataList has been added to the project. This file defines the generic object data source settings used by the Visual Studio designer to bind to the CareLinkUserDataList type, enabling the editing of CareLink user file data within the application's UI.

src/CareLink/My Project/DataSources · medium confidence

Test coverage

New test files have been added to the \src/TestProject/Tests\ directory to cover various components of the CareLink application. These include \BasalListExtensionsTests\ for basal list logic, \Client2IntegrationTests\ for endpoint resolution, \Client2RefreshTests\ for token refresh flows (including handling of legacy \client\_secret\ and \mag-identifier\ fields), and \Client2TransientErrorsTests\ for HTTP error resilience. Additional tests cover UI extensions (\ComboBoxExtensionsTests\, \ControlExtensionsTests\), data helpers (\DateHelperTests\, \MathExtensionsTests\, \NativeMmolLSupportTests\), file utilities (\FileUtilitiesTests\), PDF parsing (\LegacyPdfTests\), and configuration parsing (\DiscoverySsoParsingTests\, \ColorDictionaryHelpersTests\).

src/TestProject/Tests · high confidence

Dependencies

Upgrade to .NET 11 and update test dependencies

The CareLink application, PumpSetup utility, and TestProject have been upgraded to target the .NET 11.0 framework (specifically net11.0-windows10.0.17763.0). Additionally, the test project has updated its dependencies to use xunit v4.0.1, FluentAssertions 8.11.0, and Microsoft.NET.Test.Sdk 18.10.0.

(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

Score

  • CAI 49 → 50 (+0.1)
  • Rubric changed (rubric-2026.08.17 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 80 → 65 (-15.0)
  • Architecture 61 → 66 (+5.5)
  • Maturity 55 → 59 (+4.4)
  • Readiness 33 → 33 (+0.0)
  • Security 100 → 87 (-13.3)

Resolved (54)

  • Build did not complete in the analyzer
  • Change coupling: ControlExtensions.vb ↔ Form1.vb (src/CareLink/Extensions/ControlExtensions.vb)
  • Change coupling: CountryCodes.vb ↔ Form1.vb (src/CareLink/Extensions/CountryCodes.vb)
  • Change coupling: DrawingExtensions.vb ↔ Form1.vb (src/CareLink/Extensions/DrawingExtensions.vb)
  • Change coupling: Form1.vb ↔ ColorDictionaryHelpers.vb (src/CareLink/Forms/Form1.vb)
  • Change coupling: Form1.vb ↔ CountrySettingsRecord.vb (src/CareLink/Forms/Form1.vb)
  • Change coupling: Form1.vb ↔ ExceptionHelpers.vb (src/CareLink/Forms/Form1.vb)
  • Change coupling: Form1.vb ↔ ItemIndexesModule.vb (src/CareLink/Forms/Form1.vb)
  • Change coupling: Form1.vb ↔ PumpVariables.vb (src/CareLink/Forms/Form1.vb)
  • Change coupling: MathExtensions.vb ↔ Form1.vb (src/CareLink/Extensions/MathExtensions.vb)
  • Change coupling: SensorRecord.vb ↔ UtilitiesRecord.vb (src/CareLink/Records/UserDataRecords/PDF DeviceSettings/SensorRecord.vb)
  • Coverage not measured — test suite did not build
  • DeviceSettingsExtensions.GetSingleLineValue (cognitive 53) (src/CareLink/Records/UserDataRecords/PDF DeviceSettings/DeviceSettingsExtensions.vb)
  • DeviceSettingsExtensions.GetSingleLineValue (cyclomatic 22) (src/CareLink/Records/UserDataRecords/PDF DeviceSettings/DeviceSettingsExtensions.vb)
  • Discover.GetDiscoveryData (cognitive 19) (src/CareLink/Utilities/Discover.vb)
  • Duplicated block (12 lines × 2) (src/CareLink/Forms/Form1.vb)
  • Duplicated block (13 lines × 2) (src/CareLink/Extensions/SgExtensions.vb)
  • Duplicated block (17–85 lines × 2) (src/CareLink/Extensions/JsonExtensions.vb)
  • Duplicated block (20 lines × 2) (src/CareLink/Records/UserDataRecords/PDF DeviceSettings/HighAlertRecord.vb)
  • Duplicated block (6 lines × 2) (src/CareLink/Records/UserDataRecords/PDF DeviceSettings/PresetBolusRecord.vb)
  • …and 34 more

New (183)

  • BitmapCache.ReplaceTempBitmap (cognitive 22) (src/CareLink/Helpers/Form1Helpers/BitmapCache.vb)
  • CareLinkService.ResolveEndpointConfigFromDiscoveryAsync (cognitive 18) (src/CareLink/Helpers/LoginHelpers/CareLinkService.vb)
  • Change coupling: ActiveInsulin.vb ↔ Limit.vb (src/CareLink/Records/PatientData/ActiveInsulin.vb)
  • Change-coupling hub: Form1.vb → DgvCellStyleHelpers.vb, DgvColumnEventArgsExtensions.vb, InitializeDialog.vb, ControlExtensions.vb, DateTimeExtensions.vb, DrawingExtensions.vb, MathExtensions.vb, StringExtensions.vb, TimeZoneExtensions.vb, CalloutHelpers.vb, PaintMarkerExtensions.vb, PlotSeriesBasal.vb, ColorDictionaryHelpers.vb, ExceptionHelpers.vb, FileIoHelpers.vb, Form1CollectMarkersHelper.vb, CareLinkService.vb, OAuthBrowserForm.vb, LegacyPdfParser.vb, RunningActiveInsulinHelpers.vb, SummaryHelpers.vb, TimeConstants.vb, PumpVariables.vb, SystemVariables.vb, ItemIndexesModule.vb, Discover.vb, FileUtilities.vb (src/CareLink/Forms/Form1.vb)
  • ClassTooLong: LoginDialog (src/CareLink/Dialogs/LoginDialog.vb)
  • ClassTooLong: LoginHelpers (src/CareLink/Helpers/LoginHelpers/LoginHelpers.vb)
  • ClassTooLong: RegionCountryLists (src/CareLink/Extensions/CountryCodes.vb)
  • ClassTooLong: SummaryHelpers (src/CareLink/Helpers/PatientDataHelpers/SummaryHelpers.vb)
  • Client2.DoRefreshAsync (cognitive 24) (src/CareLink/CareLinkCommunications/Client2.vb)
  • Client2.DoRefreshAsync (cyclomatic 18) (src/CareLink/CareLinkCommunications/Client2.vb)
  • Client2.internalInit (cyclomatic 16) (src/CareLink/CareLinkCommunications/Client2.vb)
  • Coverage not measured — test suite did not build
  • DeviceSettingsExtensions.GetSingleLineValue (cognitive 40) (src/CareLink/Extensions/PdfParseExtensions/DeviceSettingsExtensions.vb)
  • DeviceSettingsExtensions.GetSingleLineValue (cognitive 53) (src/CareLink/Extensions/PdfParseExtensions/DeviceSettingsExtensions.vb)
  • DeviceSettingsExtensions.GetSingleLineValue (cyclomatic 19) (src/CareLink/Extensions/PdfParseExtensions/DeviceSettingsExtensions.vb)
  • DeviceSettingsExtensions.GetSingleLineValue (cyclomatic 22) (src/CareLink/Extensions/PdfParseExtensions/DeviceSettingsExtensions.vb)
  • Discover.GetConfigJson (cognitive 20) (src/CareLink/Utilities/Discover.vb)
  • Discover.GetDiscoveryDataAsync (cognitive 20) (src/CareLink/Utilities/Discover.vb)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • …and 163 more

Changes since last survey

  • 111 commits — 80 feature/other, 31 fixes

By area

  • src/CareLink — 94 commits
  • (root) — 8 commits
  • src/TestProject — 7 commits
  • (repo) — 2 commits

Notable commits

  • fix: Add Flag support to login Fix ActiveInsulin Estimate to for FLex
  • fix: Add URL display WebView2 Form Fix logic for now US/Clinical servers
  • fix: Add support for e.VisualStylesMode Add .Net Version to Status Bar Fix a few Buttons that were clipped with VisualStylesMode.Net11
  • fix: Adjust Text Position on Shield Update all PUmp Battery Images Fix Crash in Image Helper Fully decode Json and use <JsonExtensionData> Public Property AdditionalProperties As Dictionary(Of String, JsonElement)
  • fix: Cache most of the fonts Fix issue with new login process that broke login for some users. Fixed formating of Time where : was separed by a space in addation colon. Added new message to support new CareLink™ API.
  • fix: Cleanup MenuStartHere_DropDownOpening Move LoginHelper to propper Folder Fix UpdateSeparators to use Avaiable not Visible.
  • fix: Finally fix refresh issue
  • fix: Fix CursorPanel positioning
  • fix: Fix CursorPictureBox Visible with InfusionSet
  • fix: Fix HitTest to properly show the Infusion Set State.
  • fix: Fix Simplera Like Display
  • fix: Fix SummaryChart Y1 Axis formating
  • fix: Fix Token Logging Fix Advnaced AIT messages
  • fix: Fix ToolStringSeparator Name Hide unneeded Separators
  • fix: Fix access token expiration message
  • fix: Fix capitalization of Type names
  • fix: Fix crash in LoginDialog.Show when its already visible
  • fix: Fix crash in second login or login from Menu. Remove Panels that are causing issue is control positioning
  • fix: Fix deadlocks
  • fix: Fix messaging and logginf for Token Expiration Improve WebView2 Deployment.
  • …and 91 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

paul1956/CareLink 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 37eb449636f0a1d053f357e3e046ff52fdc7886f — 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.