gao-sun/eul
52.6
Weak · 27 September 2026
7.2k
lines of production code
Swift
primary language
4
measurements over time
What this system is
This release introduces a comprehensive suite of new system monitoring widgets for iOS and macOS, including dedicated views for battery, CPU, memory, network, and GPU metrics. The application undergoes a major architectural shift with a new SwiftUI-based status bar and menu implementation, featuring modular components, line charts, and a reorganized settings window. A significant portion of the update is dedicated to internationalization, adding full localization support for Arabic, Czech, Danish, German, Hungarian, Italian, Japanese, Korean, Mongolian, Polish, Portuguese, Russian, Swedish, Thai, Ukrainian, and both Simplified and Traditional Chinese. Additionally, the app now supports automatic self-updating on macOS and integrates Swift Package Manager for dependency management.
Features
Add Battery Widget to display device battery status
A new iOS/macOS widget (SystemSmall) has been added to display the device's battery charge, health, cycle count, and charging condition. The widget uses a new intent definition for configuration and includes localized strings for battery states and widget titles. The implementation includes the main widget view, a provider for entry data, and associated asset and configuration files.
BatteryWidget · high confidence
Add Burmese (Myanmar) localization
Users can now view the application interface in Burmese (Myanmar). A new Localizable.strings file has been added to the my.lproj directory, providing translations for system metrics (battery, CPU, memory, network), component labels, and general UI text.
Resource/my.lproj · high confidence
Add CPU widget to display system and user CPU usage
A new CpuWidget extension has been added to the application, providing a small system widget that displays CPU usage statistics. The widget renders system and user CPU usage percentages, along with temperature data, and supports configuration via an Intent defined in CpuWidget.intentdefinition. The implementation includes the main widget view, a data provider, and associated asset bundles for styling and icons.
CpuWidget · high confidence
Add Memory widget to display system memory usage
A new Memory widget has been added, allowing users to view system memory usage (used and free) on their home screen. The widget displays memory statistics in a small format, utilizing the app's localized strings and shared library for data retrieval.
MemoryWidget · high confidence
Add StableWidth and PreferredColorScheme view modifiers
Users can now use the new StableWidth modifier to maintain a consistent width based on a specified factor and optional minimum width, and the PreferredColorScheme modifier to explicitly set the color scheme for a view hierarchy.
eul/ViewModifier · high confidence
Add schema definitions for system monitoring widgets
Introduced new data models for system monitoring widgets, including BatteryEntry, CpuEntry, MemoryEntry, and NetworkEntry, each conforming to the SharedWidgetEntry protocol. These schemas define the structure for widget data, such as battery condition, CPU temperature and usage, memory usage, and network speeds. Additionally, a PreferenceEntry schema was added to store user settings like temperature units, and supporting types for temperature conversion and validation were included.
SharedLibrary/Schema · high confidence
Added Czech language support
The application now includes a complete Czech localization, allowing users to switch to Czech in the language settings. The translation covers all major UI components, including battery, CPU, memory, network, and general settings, ensuring the interface is fully accessible in Czech.
Resource/cs.lproj · high confidence
Added Hungarian language support
The application now includes a complete Hungarian translation for all user interface elements, including system metrics (battery, CPU, memory, network), component labels, and settings menus. Users can select Hungarian as their preferred language to view the app in their native language.
Resource/hu.lproj · high confidence
Added Korean (ko) localization
Users can now view the application interface in Korean. This change adds a new localizable strings file for the Korean language, translating all UI elements, component labels, and system messages into Korean.
Resource/ko.lproj · high confidence
Added Mongolian (mn) localization
The application now supports the Mongolian language, with all UI strings translated into Mongolian. This allows users to switch to Mongolian in the language settings to view the interface in their native language.
Resource/mn.lproj · high confidence
Added NetworkWidget to display network speed
A new macOS widget named NetworkWidget has been added, displaying real-time upload and download speeds (in bytes per second) using a standard provider pattern. The widget includes its own asset catalog for colors and icons, an Info.plist configuration for the WidgetKit extension, and an intents definition for network configuration. The implementation uses SwiftUI to render up/down speed metrics and handles invalid states with a 'not available' message.
NetworkWidget · high confidence
Added Polish language support
Users can now interact with the application in Polish. This update adds a new localisation file (Localizable.strings) containing Polish translations for all user-facing text, including system metrics (battery, CPU, memory, network), menu options, component labels, and general UI elements.
Resource/pl.lproj · high confidence
Added Simplified Chinese (zh-Hans) localization
The application now supports Simplified Chinese, providing translated strings for all UI components including battery, CPU, memory, network, and process management. This enables users to interact with the status bar, menu, and settings in their preferred language.
Resource/zh-Hans.lproj · high confidence
Added Swedish language support
The application now includes a complete Swedish (se) localization file, providing translations for system metrics (battery, CPU, memory, network), UI elements, and settings. Users with Swedish language preferences will see the interface in Swedish.
Resource/se.lproj · high confidence
Added Thai language support
The application now includes a complete Thai (th) localization file (Localizable.strings), enabling the user interface to be displayed in Thai. This adds translations for system components such as battery, CPU, memory, network, and general UI elements, allowing Thai-speaking users to interact with the app in their native language.
Resource/th.lproj · high confidence
Added Traditional Chinese (zh-Hant) localization
Users can now see the eul interface in Traditional Chinese, including translations for system components like battery, CPU, memory, and network, as well as general UI text and language selection options.
Resource/zh-Hant.lproj · high confidence
Added Ukrainian localization
Users can now see the application interface in Ukrainian, as a new Localizable.strings file has been added for the Ukrainian (uk) locale, covering translations for system components like CPU, memory, and network, as well as general UI elements and language options.
Resource/uk.lproj · high confidence
Added contributor recognition and project metadata files
The project now includes a \.all-contributorsrc\ configuration file and a \README.md\ that displays a table of all contributors and their roles (code, translation, documentation). Additionally, a \.gitignore\, \.swiftformat\, and \LICENSE\ (MIT) files have been added to the repository root to standardize development workflows and legal terms.
(repo-wide) · high confidence
Added line chart view for displaying system metrics
A new SwiftUI-based LineChart component has been introduced in the eul application, enabling the rendering of line graphs. This view calculates and draws a spline-interpolated line with a solid fill, providing the visual foundation for displaying CPU and memory usage data in the status bar.
eul/Views/Chart · high confidence
Added new shared UI components for status and progress display
The SharedLibrary/Components directory now includes several new SwiftUI views to improve the user interface: an ActivityIndicatorView for loading states, a BatteryIconView to display battery status and charging state, a ProgressBarView for visual progress tracking, a SectionView for organizing content headers, a SeparatorView for visual dividers, a TooltipView for contextual help overlays, a WidgetNotAvailbleView for unavailable states, and a WidgetSectionView for displaying title-value pairs.
SharedLibrary/Components · high confidence
Added shared utility classes for byte conversion and data persistence
The SharedLibrary/Utilities directory now includes ByteUnit.swift, a struct that converts byte counts into human-readable strings in KB, MB, and GB, and Container.swift, a static helper for encoding and decoding SharedEntry objects to UserDefaults. These utilities provide foundational support for memory and storage display and configuration persistence across the application.
SharedLibrary/Utilities · high confidence
Adds shared utility extensions and configuration for the app
The SharedLibrary/Extension directory now includes new Swift files that provide utility extensions for SwiftUI and Foundation types. These include Animation presets (normal, fast, slow), Color helpers for UI theming (border, menuBorder, controlBackground, etc.), and formatting extensions for Double (percentage, memory, numeric), Int (readable time), String (title case, regex matching), and Text (pre-styled views for menus, widgets, and sections). Additionally, an Info.plist is added to the SharedLibrary, establishing the bundle's metadata and versioning configuration.
SharedLibrary/Extension · high confidence
Arabic and Turkish language support added
The application now includes Arabic and Turkish localization files, allowing users to view the interface in their respective languages. This adds translation strings for system components like battery, CPU, memory, and network status, as well as UI elements for settings and process management.
Resource/ar.lproj · high confidence
Danish language support added
The application now includes a complete Danish translation for the user interface, covering system metrics (battery, CPU, memory, network), component labels, process actions, and settings. Users can select Danish as a language option to view the app in their native language.
Resource/dk.lproj · high confidence
French localization added
The application now supports French, with a new Localizable.strings file providing translations for system components (CPU, GPU, Fan, Memory, Network, Battery, Disk, Bluetooth), UI elements, and settings. This allows French-speaking users to interact with the app in their native language.
Resource/fr.lproj · high confidence
German (de) localization added
The application now supports the German language, with a new Localizable.strings file providing translations for all UI components, including battery, CPU, memory, network, and general settings.
Resource/de.lproj · high confidence
Initial English localization for system monitoring components
The application now includes comprehensive English translations for all system monitoring components, including CPU, GPU, Fan, Memory, Network, Battery, Disk, and Bluetooth. Users will see localized strings for status bar items, menu options, process actions, and general UI elements, enabling full English language support across the app's interface and settings.
Resource/en.lproj · high confidence
Introduce automatic app updates and GPU monitoring
The application now supports automatic background updates by downloading and installing new versions from GitHub releases. Additionally, users can now monitor GPU usage, temperature, and clock speeds via new utility classes that interface with system hardware. The update mechanism uses a self-update app to replace the current application, while the GPU features rely on new helper classes for system information retrieval.
eul/Utilities · high confidence
Introduce modular menu block views for system status
The application now uses distinct SwiftUI views for each system status category, each presented as a collapsible block in the menu. This includes BatteryMenuBlockView (showing charge, health, and power source), BluetoothMenuBlockView (listing paired devices and their battery levels), CpuMenuBlockView (displaying usage, load averages, temperature, and top processes), DiskMenuBlockView (listing drives with eject options), FanMenuBlockView (showing fan speeds), GpuMenuBlockView (displaying GPU usage and temperature), MemoryMenuBlockView (showing RAM usage and top processes), and NetworkMenuBlockMenuView (showing network speeds and top processes). The main StatusMenuView now iterates over these active components to render the menu.
eul/Views/Menu · high confidence
Introduce self-updating macOS application
The SelfUpdate project now includes a macOS application that supports automatic updates. The new AppDelegate implements an update mechanism that terminates the running application, replaces the app bundle with a new version, and relaunches it. The app's UI displays command-line arguments in a SwiftUI view, and the project includes standard macOS asset catalogs, storyboard, and entitlements required for the update process.
SelfUpdate · high confidence
Italian localization added
The application now supports the Italian language, with a new Localizable.strings file providing translations for all UI components, including battery, CPU, memory, network, and general settings. Users can now select Italian as their preferred language in the app's language settings.
Resource/it.lproj · high confidence
New UI components for process management and menu interactions
Added several new SwiftUI views to the eul/Components directory to support process management and menu interactions. This includes HorizontalOrganizingView for drag-and-drop reordering of components, ProcessRowView for displaying process details with action buttons (navigate, open, terminate), MenuActionButtonView and MenuActionTextView for consistent menu item styling, and supporting views like MenuInfoView and MiniSectionView for displaying system information. These components enable users to manage running processes and interact with the status bar menu more effectively.
eul/Components · high confidence
New modular status bar components for system metrics
The status bar now renders individual, configurable views for CPU, memory, disk, network, GPU, fan, and battery data. Each component can display an icon, a line chart graph, and/or text metrics (e.g., usage percentage, temperature, speed) based on user preferences. The main StatusBarView iterates through active components to display them, allowing users to see detailed system information directly in the menu bar.
eul/Views/StatusBar · high confidence
New preference panes for component configuration and display settings
The preferences window has been reorganized into distinct sections: General, Components, and Menu View. Users can now configure which components appear in the status bar and menu, including toggles for showing icons, graphs, and text for CPU, GPU, memory, fan, network, battery, and disk components. The display settings allow users to select language, temperature units, text display modes, font designs, and appearance modes (dark/light). Additionally, users can adjust refresh rates for system monitoring and select specific disks or network interfaces for data display.
eul/Views/Preference · high confidence
New schema types for system metrics and device data
The eul/Schema directory now includes new data models to support additional system monitoring features. These include BluetoothDevice for tracking connected Bluetooth peripherals, FanData and TemperatureData for hardware sensor readings, and ProcessUsage (with ProcessCpuUsage and RamUsage) for tracking top processes. Additionally, EulComponent and EulMenuComponent define the available system metrics (CPU, Memory, Disk, GPU, etc.) and their corresponding UI views, while Preference and EulComponentConfig handle user settings for appearance, font, and component configuration.
eul/Schema · high confidence
New settings window with organized preference sections
The application now features a dedicated settings window (ContentView) that organizes user preferences into distinct, navigable sections: General, Display, Refresh Rate, Components, and Menu View. Users can toggle component visibility in the status bar, adjust display and refresh rate settings, and configure individual components, all within a unified interface that supports light and dark mode.
eul/Views · high confidence
New store architecture for system metrics and component configuration
The application introduces a new, centralized store architecture for managing system metrics and component configuration. New store classes have been added for Battery, Bluetooth, CPU, Disk, Fan, GPU, Memory, Network, and Top processes, each responsible for fetching and exposing specific hardware data (e.g., CPU temperature, network speed, battery health). Additionally, a ComponentConfigStore and ComponentsStore mechanism have been implemented to manage the visibility and configuration of UI components, allowing users to toggle which system metrics are displayed in the menu bar and status items.
eul/Store · high confidence
New text component configurations for system metrics
Users can now configure text displays for battery, CPU, disk, fan, GPU, memory, and network metrics. Each component introduces specific data points (e.g., battery percentage, CPU temperature, disk usage) that can be customized via the settings, allowing for more detailed system monitoring in the status bar.
eul/Schema/TextComponents · high confidence
New utility extensions for arrays, collections, strings, and SwiftUI views
The eul/Extension directory now includes several new Swift extension files that provide helper methods and UI styling for the application. These include safe subscript access for collections, conditional array appending, string prefix removal, and pre-styled SwiftUI view modifiers for menu items and blocks. Additionally, notification names for system refresh events and application activation policies are now available as extensions.
eul/Extension · high confidence
Portuguese (pt) localization added
A new Portuguese (pt) translation file (Localizable.strings) was added to the application, providing Portuguese translations for system components such as battery, CPU, memory, network, and UI elements, enabling the interface to be displayed in Portuguese.
Resource/pt.lproj · high confidence
Spanish localization for system monitoring components
The application now provides Spanish translations for the status bar, CPU, memory, network, and other system monitoring components, allowing Spanish-speaking users to interact with the interface in their native language.
Resource/es.lproj · high confidence
Behavioural changes
Added empty Swift file to BuildTools
An empty Swift file named Empty.swift was added to the BuildTools directory. This appears to be a placeholder or structural addition to the build tools package, likely to satisfy package manager requirements or to serve as a base for future build-related Swift code.
BuildTools · low confidence
App behavior and configuration updates
The application no longer opens its preference window automatically at launch, instead requiring user interaction to open it. The app now handles system sleep/wake states to pause background refreshes, and applies the user's appearance mode (light/dark) to the main window. Additionally, the app's category is set to 'Utilities', and entitlements are updated to support shared application groups.
eul · high confidence
Japanese localization added for system metrics and UI
Users who select Japanese as their display language will now see translated strings for core system metrics (CPU, memory, fan, battery, network, temperature, Bluetooth, disk, and process management) as well as general UI elements, menus, and component settings. This enables full Japanese support across the application's status bar, menu views, and preferences.
Resource/ja.lproj · high confidence
Replaced status bar implementation with SwiftUI-based components
The status bar item and its menu are now managed by new SwiftUI-backed classes (StatusBarItem, StatusBarManager, StatusBarMenuHostingView). This change introduces a delay on app launch before checking the status item's visibility to avoid false alarms, and subscribes to preference changes (text display, component visibility, icon visibility, font design, and appearance mode) to automatically refresh the status bar. On macOS 11+, the status bar's appearance is updated to match the system's light/dark mode setting, while on earlier versions (e.g., Catalina) the appearance mode subscription is disabled to prevent potential crashes.
eul/StatusBar · high confidence
Russian localization for system monitoring components
The application now supports Russian, with a new Localizable.strings file providing translations for the status bar, CPU, GPU, fan, memory, network, and process management interfaces. Users can now interact with the app in Russian, including component selection, process termination prompts, and general UI elements.
Resource/ru.lproj · high confidence
Updated Xcode project configuration to support modern build settings
The Xcode project file (project.pbxproj) was updated to object version 54, enabling support for newer Xcode build configurations. Additionally, a new scheme file (eul.xcscheme) was added to define build, test, launch, and archive actions for the eul target, ensuring consistent build behavior across the development environment.
eul.xcodeproj · high confidence
Dependencies
Integrate SwiftFormat via Swift Package Manager
The project now uses Swift Package Manager to manage build-time dependencies. SwiftFormat 0.48.4 is added as a build tool dependency, while the main application dependencies (LaunchAtLogin 4.0.0, Localize\_Swift 3.1.0, SwiftyJSON 5.0.0, and SystemKit 0.0.12) are now tracked via SPM lockfiles, replacing the previous dependency management approach.
(dependencies) · medium 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
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 46 → 53 (+6.9)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 96 (-4.2)
- Architecture 95 (new)
- Maturity 43 → 44 (+1.0)
- Readiness 28 → 36 (+8.4)
- Security 80 → 86 (+6.2)
Resolved (5)
- Dimension evaluation failed
- High: security finding (details withheld)
- High: security finding (details withheld)
- No exposed public API
- The release notes link points to the latest release on GitHub, but there is no documentation about how to update/downgrade eul in-place. (README.md)
New (39)
- AutoUpdate.run (cognitive 19) (eul/Utilities/AutoUpdate.swift)
- Change coupling: StatusBarManager.swift ↔ PreferenceStore.swift (eul/StatusBar/StatusBarManager.swift)
- Change coupling: View.swift ↔ CpuView.swift (eul/Extension/View.swift)
- Dormant codebase
- Duplicated block (10 lines × 2) (NetworkWidget/NetworkWidget.swift)
- Duplicated block (13 lines × 2) (eul/Views/StatusBar/DiskView.swift)
- Duplicated block (21 lines × 2) (CpuWidget/CpuWidget.swift)
- Duplicated block (6 lines × 2) (SelfUpdate/AppDelegate.swift)
- Duplicated block (8 lines × 3) (eul/Store/ComponentConfigStore.swift)
- Duplicated block (8 lines × 4) (BatteryWidget/BatteryWidget.swift)
- FixmeComment (eul/Utilities/SMC.swift)
- FixmeComment (eul/Views/Menu/NetworkMenuBlockMenuView.swift)
- Fork-triggerable workflow runs with an unscoped write token
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- HorizontalOrganizingView.body (cognitive 19) (eul/Components/HorizontalOrganizingView.swift)
- Low cohesion: AppDelegate (LCOM4 5) (SelfUpdate/AppDelegate.swift)
- Low cohesion: BluetoothStore (LCOM4 4) (eul/Store/BluetoothStore.swift)
- Low cohesion: StatusBarItem (LCOM4 5) (eul/StatusBar/StatusBarItem.swift)
- …and 19 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
gao-sun/eul 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 27 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 b5c3bd0a5be2679ca7e22da676be5ac73e300f4a — 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-d00c643c3f66.