Skip to content
CAI
Software that uses CAICheck a score

igorescodro/alkaa

48.5

Weak · 22 September 2026

17.5k

lines of production code

Kotlin

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Alkaa is a cross-platform task management application built with Kotlin Multiplatform, supporting Android, iOS, and Desktop. It provides core features for managing tasks, categories, and alarms, with a shared domain and data layer that leverages SQLDelight for local persistence and Koin for dependency injection. The system includes a comprehensive Kuvio design system for UI components, handles platform-specific implementations for notifications and permissions, and features a tracker for completed tasks.

How it got here

2018–2023 — Kotlin Multiplatform migration

65 changes.

The project underwent a comprehensive migration to Kotlin Multiplatform (KMP), restructuring the codebase to share domain, data, and presentation logic across Android and iOS. This period established a unified architecture using Koin for dependency injection, SQLDelight for local storage, and Jetpack Compose for the UI, while introducing platform-specific implementations for notifications, alarms, and system permissions.

2024–2025 — Multiplatform and navigation modernization

35 changes.

This period focused on modernizing the application's architecture by migrating to Kotlin Multiplatform and the Nav3 navigation system. It involved implementing platform-specific support for Android, iOS, and Desktop, alongside a comprehensive overhaul of the design system and UI components.

2026 — Kuvio design system expansion

10 changes.

This period focused on expanding the Kuvio design system with new UI components, including icons, text elements, and interactive bars. The work also introduced supporting infrastructure such as a code review agent, a documentation page, and skills to guide the implementation of these new elements.

Features

Add AlarmInterval enum for alarm repetition intervals

The application now includes a new AlarmInterval enum class in the common module, defining the available options for recurring alarm intervals (Never, Hourly, Daily, Weekly, Monthly, Yearly). Each option is associated with a Compose StringResource for localization, enabling users to select how frequently a task alarm repeats.

features/task/src/commonMain/kotlin/com/escodro/task/model · high confidence

Add Alkaa Design System reference page

A new static HTML page has been added to the design system assets, providing a comprehensive reference for the Alkaa Design System. The page includes a full set of CSS variables for light and dark themes, covering colors, elevations, spacing, and typography. It also features a sidebar navigation and displays various UI components and design tokens, including task list items, color palettes, iconography, and elevation examples.

assets/designsystem · high confidence

Add Android Glance widget for task list

The Android-specific implementation of the Glance widget has been moved to the \androidMain\ source set. This includes the \AndroidManifest.xml\ configuration, the \TaskListGlanceWidget\ presentation layer, state management via \TaskListStateDefinition\, and background updates through \TaskListUpdaterWorker\. The widget displays a list of tasks with options to mark them as complete, utilizing Koin for dependency injection and WorkManager for periodic updates.

features/glance/src · high confidence

Add CategoryColorMenu component for horizontal color selection

A new \CategoryColorMenu\ composable has been added to the design system, providing a horizontal list of selectable color options. This component renders a \LazyRow\ of circular color items, each acting as a selectable radio button that triggers a callback when a new color is chosen.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/menu · high confidence

Add Floating Action Button component

A new AddFloatingButton composable is introduced in the design system library, providing a standard floating action button with a primary color container and an outlined add icon. The component accepts content description, click handler, and modifier, and includes a preview for UI testing.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/button · high confidence

Add Kuvio icon components

The design system's Kuvio icon library has been expanded with a new set of reusable Compose components, including KuvioAddTaskIcon, KuvioAlertIcon, KuvioBackIcon, KuvioCalendarIcon, KuvioClockIcon, KuvioCloseIcon, KuvioCommentIcon, KuvioCompleteIcon, KuvioDeleteIcon, KuvioEditIcon, KuvioEmojiIcon, KuvioFavouriteIcon, KuvioForwardIcon, KuvioHomeIcon, KuvioLocationIcon, KuvioMoreIcon, KuvioNotesIcon, KuvioPriorityIcon, KuvioProfileIcon, KuvioRemindersIcon, KuvioRepeatIcon, KuvioSearchIcon, KuvioShareIcon, KuvioStarIcon, and KuvioUserIcon. These components provide consistent iconography for navigation, task management, communication, and utility actions across the application.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/icon · high confidence

Add KuvioAddButton and KuvioCalendarIcon components

The design system introduces two new UI components for the Kuvio icon button set: KuvioAddButton, a circular 'add' button with a border and plus icon, and KuvioCalendarIcon, a circular touch target for date picking. Both components are implemented in Kotlin using Compose, featuring light and dark theme previews.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/icon/button · high confidence

Add LeadingIcon component to the design system

A new LeadingIcon composable has been added to the design system, providing a standardized way to render a leading icon with a semi-transparent primary color tint. This component accepts an ImageVector, a content description for accessibility, and an optional modifier, allowing consistent styling for leading icons across the application.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/icon · high confidence

Add MainTopBar and AlkaaToolbar components to the design system

The design system now includes two new top bar components for common UI patterns. MainTopBar provides a centered title bar using Material 3's CenterAlignedTopAppBar, while AlkaaToolbar offers a navigation header with either a back or close button depending on the screen context. These components are now available for use across the application.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/topbar · high confidence

Add PreferenceItem component to the design system

A new \PreferenceItem\ composable has been added to the design system, providing a reusable UI component for displaying a title and optional description in a clickable column layout.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/item · high confidence

Add Task API module with TaskDetailScreen interface

A new Task API module has been introduced, containing a .gitignore file and a README. The module exposes the Task feature's API, specifically defining the TaskDetailScreen interface with a Composable Content method that accepts a taskId and an onUpPress callback, allowing other modules to integrate the task detail view.

features/task-api · medium confidence

Add Task bottom sheet with alarm and category selection

The Add Task screen now uses a ModalBottomSheet that allows users to create a new task by entering a title, selecting a category, and configuring an alarm. The UI includes a text field for the task title, a category selection component, and an alarm selection component that lets users set a due date and alarm interval. The underlying ViewModel has been refactored to use AndroidX ViewModel and Koin for dependency injection, and the codebase has been migrated from kotlinx.datetime to kotlin.time for time handling.

features/task/src/commonMain/kotlin/com/escodro/task/presentation/add · medium confidence

Add animated circular graph and list components for the tracker feature

The tracker feature now includes new UI components for displaying task data: an animated circular graph (TaskGraph) that visualizes category percentages with smooth transitions, and a list view (TaskTrackerList) that displays each category's name, icon, and task count. These components are part of the tracker's presentation layer, enabling users to see their tracked data in both graphical and list formats.

features/tracker/src/commonMain/kotlin/com/escodro/tracker/presentation/components · medium confidence

Add category selection UI with loading, empty, and loaded states

The \CategorySelection\ composable is introduced to display a horizontal list of category chips. It handles three states: a loading indicator (\AlkaaLoadingContent\), an empty state message, and a scrollable list of \CategoryItemChip\ components. The implementation includes a preview for UI testing and integrates with the \CategoryState\ to manage category selection and scrolling behavior.

features/task/src/commonMain/kotlin/com/escodro/task/presentation/category · high confidence

Add color conversion utility for Compose UI

A new extension function, toArgbColor(), has been added to the design system's common module, allowing hex color strings to be converted to ARGB integers for use with Compose UI components.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/extensions · high confidence

Add coroutines utility library

A new \libraries/coroutines\ module has been introduced, providing a \CoroutineDebouncer\ for delaying function execution and a \CoroutineDispatcherProvider\ to abstract standard Kotlin coroutine dispatchers (IO, Main, Default). The module also includes a Koin dependency injection module (\CoroutinesModule\) that wires these components into the application's DI container.

libraries/coroutines · high confidence

Add desktop app entry point and module scaffolding

The desktop-app module now includes a main entry point that initializes the Koin dependency injection container and launches a Compose for Desktop window displaying the shared AlkaaMultiplatformApp. A .gitignore file was added to exclude the /build directory, and a README.md was created to document the desktop-specific module.

desktop-app · high confidence

Add desktop-specific alarm and notification implementations

The application now includes desktop-specific implementations for alarm permissions, notification scheduling, and task notifications. These new classes (DesktopAlarmPermission, DesktopNotificationScheduler, DesktopTaskNotification) provide the necessary abstractions for the desktop platform, allowing the alarm feature to function on desktop environments, although the core logic is currently marked as unimplemented.

features/alarm/src/desktopMain · high confidence

Add desktop-specific preference module and app info provider

The application now supports retrieving the app version on the desktop platform. This is achieved by introducing a new Koin module (PreferenceModule) and a DesktopAppInfoProvider implementation that reads the 'packageVersion' system property to determine the version string. This change enables the preference feature to function correctly on desktop environments by providing the necessary platform-specific dependencies.

features/preference/src/desktopMain · high confidence

Add iOS DataStore implementation

The iOS platform now has a concrete implementation of the DataStore, enabling local data persistence on that platform. The new \IosDataStore\ class resolves the document directory path and provides a \DataStore\<Preferences\>\ instance, which is wired into the dependency injection container via \PlatformDataStoreModule\.

data/datastore/src/iosMain · high confidence

Add task data mappers for domain-to-view conversion

New mappers (AlarmInterval, Category, Task, and TaskWithCategory) have been added to the task feature's common module. These classes handle the conversion of domain models into view models, including mapping alarm intervals, category details, and task data, enabling the UI layer to consume structured data for display.

features/task/src/commonMain/kotlin/com/escodro/task/mapper · high confidence

Added Android code review agent and memory structure

Introduced a new Android code review agent that evaluates Android code for architectural issues, best practices, bugs, and memory leaks, outputting a structured Markdown report. This change also initializes the underlying memory structure with empty files for errors, feedback, tasks, and language, alongside a version file.

.junie · high confidence

Introduced Android-specific deep link handling in the navigation API, providing utility methods to generate Android Intents for navigating to the home screen and task detail screens. This addition enables proper deep link support for Android-specific flows such as notifications and widgets.

features/navigation-api/src/androidMain · high confidence

Added Kuvio design system components for badges, cards, and dialogs

Introduced new UI components within the Kuvio design system: a badge counter for displaying numeric counts, a counter card for home screen statistics, and a versatile dialog component supporting icon, image header, and informational layouts. These additions provide consistent styling and interaction patterns for notifications, data display, and user prompts.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/badge, libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/card, libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/dialog · high confidence

Added TaskNotificationReceiver for handling alarm actions

A new Android BroadcastReceiver, TaskNotificationReceiver, has been added to the alarm feature. This component listens for specific broadcast intents (alarm, complete, snooze, and boot completed) and routes them to corresponding use cases (ShowAlarm, CompleteTask, SnoozeAlarm, RescheduleFutureAlarms) via Koin dependency injection, enabling the app to process alarm-related events.

features/alarm/src/androidMain/kotlin/com/escodro/alarm/receiver · high confidence

Added TaskSearchMapper for search feature

A new internal mapper class, TaskSearchMapper, has been added to the search feature. It converts a list of TaskWithCategory domain models into an immutable list of TaskSearchItem UI models, handling the conversion of category colors from string to Color objects.

features/search/src/commonMain/kotlin/com/escodro/search/mapper · high confidence

Added color semantics support for UI accessibility

A new \ColorSemantics.kt\ file introduces a \ColorKey\ semantics property, allowing UI components to expose color naming information for accessibility purposes.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/semantics · low confidence

Added desktop-specific DataStore implementation and Koin module

Introduced the DesktopDataStore class and its corresponding Koin dependency-injection module for the desktop platform. This provides the platform-specific DataStore configuration, enabling the application to persist data on desktop environments.

data/datastore/src/desktopMain · high confidence

Added iOS-specific SQLDelight database driver

Users on iOS can now access local data through a new IosDriverFactory that initializes the SQLite database using the NativeSqliteDriver, enabling platform-specific database operations for the AlkaaDatabase schema.

data/local/src/iosMain/kotlin/com/escodro/local/provider · high confidence

Added new Gradle convention plugins for Kotlin Multiplatform and code quality

Three new Gradle convention plugins have been introduced to streamline project setup. The 'com.escodro.multiplatform' plugin configures Android and JVM targets with specific SDK versions, test runners, and compiler flags. The 'com.escodro.kotlin-quality' plugin integrates Detekt and Ktlint into the check task. Additionally, a new 'com.escodro.kotlin-parcelable' plugin is added to configure the Kotlin parcelize plugin for multiplatform libraries.

plugins/src/main/java · medium confidence

Android DataStore implementation and dependency injection

The Android-specific DataStore implementation is now provided via the AndroidDataStore class, which configures the DataStore to use the standard Android file path (context.filesDir) to ensure data persistence across app updates. This implementation is wired into the application's dependency injection container through the new PlatformDataStoreModule, which registers the DataStore as a singleton.

data/datastore/src/androidMain · high confidence

Convert Preference, About, and Open Source screens to KMP

The Preference, About, and Open Source screens have been converted to Kotlin Multiplatform (KMP) in the commonMain source set. This introduces new presentation components (About.kt, OpenSource.kt, AppThemeDialog.kt, Preference.kt, etc.) that use Compose for UI, replacing the previous platform-specific implementations. The app theme selection is now handled via an enum (AppThemeOptions) and a dialog, and the open source licenses are loaded from a JSON file. The ViewModel uses AndroidX ViewModel and Koin for dependency injection, ensuring cross-platform compatibility.

features/preference/src/commonMain/kotlin/com/escodro/preference/presentation · medium confidence

Initial Android app module setup and configuration

Established the Android application module with a .gitignore file to exclude build artifacts, a README.md documenting the module's role as the Android entry point, and a proguard-rules.pro file containing rules for AndroidX Window, InstrumentationRegistry, and AutoService.

app · high confidence

Initial iOS app structure and notification handling

The iOS application is now fully initialized with a SwiftUI-based entry point that hosts the main Compose view. The app registers the AppDelegate to handle push notifications, ensuring that notification actions are properly delegated to the shared Kotlin code. Additionally, the app's configuration includes support for multiple localizations (English, Portuguese, French, Spanish) and enables specific Apple-required settings like disabling the minimum frame duration on iPhone.

ios-app/alkaa · high confidence

Initial iOS project structure and build configuration

The iOS application project has been established with a complete Xcode project file, workspace configuration, and build scheme. This includes the core Swift source files (AppDelegate, ContentView, alkaaApp), resource bundles (Assets, PrivacyInfo), and a build phase script to connect the iOS app with the shared Kotlin Multiplatform (KMP) code. The project is configured to support English, French, and Spanish localizations.

ios-app/alkaa.xcodeproj · high confidence

Initialize AlkaaApp and MainActivity entry points

The application's core entry points are established with the creation of AlkaaApp and MainActivity. AlkaaApp initializes the Koin dependency injection framework and configures Android logging via Logcat. MainActivity sets up the Compose UI by rendering the MainView component.

app/src/main/java · high confidence

Introduce Android-specific SQLDelight driver for local storage

Added Android-specific implementation for SQLDelight database driver, enabling platform-specific database access on Android. The new \AndroidDriverFactory\ creates an \AndroidSqliteDriver\ for the \AlkaaDatabase\, and the \PlatformLocalModule\ registers this factory via Koin dependency injection. This change supports the broader goal of establishing platform-specific SQLDelight setups across the application.

data/local/src/androidMain · high confidence

Introduce Glance module for Android Home Screen widgets

A new 'glance' module has been added to the codebase to support Android Home Screen widgets using Jetpack Glance. This includes the necessary ProGuard rules to preserve the relevant classes and a README explaining the module's purpose.

features/glance · high confidence

Introduce Gradle plugins for Detekt and KtLint static analysis

Added new Gradle build scripts to configure static code analysis tools. The Detekt plugin is configured to run with all rules enabled, including Compose-specific rules, and is ordered to execute after resource accessor generation tasks. Additionally, KtLint tasks are registered to check and format Kotlin code style, generating XML reports.

plugins/src/main/java/quality · high confidence

Introduce TaskDetailScreen and ViewModel for task details

Added the TaskDetailScreen implementation and TaskDetailViewModel in the task feature module. The screen delegates to a shared TaskDetailScreen composable, while the ViewModel manages task loading and updates using AndroidX ViewModel and Kotlin coroutines.

features/task/src/commonMain/kotlin/com/escodro/task/presentation/detail/main · high confidence

Introduce local data layer with SQLDelight and Koin integration

Added a new local data layer for storing and retrieving tasks, categories, and search results using SQLDelight. This includes SQL schema definitions, data access objects (DAOs) and their implementations, data sources, and mappers for converting between repository and local models. The module is wired into the application via a Koin dependency injection module, with platform-specific driver factories for desktop. Default categories are pre-populated on first run.

data/local/src/commonMain · high confidence

Introduce new alarm selection UI and state management

The task detail screen now features a dedicated alarm selection interface, including a date and time picker dialog, an interval selection menu, and permission handling dialogs. This change introduces new composables (AlarmSelection, AlarmSelectionComponents, DateTimePicker) and a state holder (AlarmSelectionState) to manage the UI state for setting alarms. It also adds a new ViewModel (TaskAlarmViewModel) and an interactor (OpenAlarmScheduler) to handle alarm updates and permission checks.

features/task/src/commonMain/kotlin/com/escodro/task/presentation/detail/alarm · high confidence

Introduce new domain, repository, and feature-layer models for tasks, categories, and navigation

The application now defines explicit data models for tasks, categories, and navigation destinations across the domain, repository, and feature layers. New data classes such as Task, Category, and TaskWithCategory are introduced to represent core entities, while the navigation layer defines destinations like HomeDestination and TasksDestination to structure the app's flow. Additionally, state management classes like CategoryState and SearchViewState are added to handle UI states for categories and search results, enabling a more structured approach to managing app state and navigation.

shared · high confidence

Introduce new navigation API components for multi-pane and event-based navigation

The navigation-api module introduces a new set of classes and interfaces to support modern navigation patterns. This includes a \NavBackStack\ controller to manage navigation history and top-level destinations, a \NavEventController\ interface for handling navigation events via Kotlin Flows, and marker interfaces (\TopLevel\, \TopAppBarVisible\) to define destination behaviors. Additionally, a \NavGraph\ provider interface is added to integrate with the new navigation runtime, and a \WindowSizeClass\ extension is provided to determine single-pane layouts based on window width.

features/navigation-api/src/commonMain · high confidence

Introduce platform-specific permission controllers and effects

Added a new \PermissionController\ interface and \BindPermissionEffect\ composable to handle permission requests and status checks across Android, iOS, and Desktop. Android uses the Moko library for actual permission binding, while iOS and Desktop provide stub implementations that currently return false or do nothing. Each platform registers its specific controller implementation via Koin dependency injection modules.

libraries/permission · high confidence

Introduce repository layer with Koin dependency injection

The \data/repository\ module now provides the concrete implementations for all repository interfaces (Category, Task, Search, Preferences, and TaskWithCategory) along with their corresponding data source interfaces. Each repository delegates to a data source and uses mappers to convert between repository and domain models. The \RepositoryModule\ registers these implementations with Koin, wiring up the dependency injection for the repository layer.

data/repository · high confidence

Introduce the Tracker feature with a new presentation layer and mapper

The Tracker feature is now available, providing a view of completed tasks grouped by category. This change introduces the core presentation components (TrackerScreen, TrackerViewModel) and a new TrackerMapper to convert domain models to UI models. The UI displays task statistics, including a graph and list of categories, with support for empty and error states.

features/tracker/src/commonMain/kotlin/com/escodro/tracker/presentation · high confidence

Introduced AlkaaInputTextField component

Added a new AlkaaInputTextField composable that wraps Material3's OutlinedTextField with specific keyboard handling and typography styles, providing a standardized input field for forms within the design system.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/textfield · high confidence

Introduces domain-layer abstractions for task, alarm, and category management

The domain module now exposes a comprehensive set of interfaces and implementations for managing tasks, categories, alarms, and user preferences. This includes use cases for creating, updating, and deleting tasks and categories, as well as scheduling, canceling, and snoozing alarms. The update also adds repository interfaces for tasks, categories, and search, alongside interactor interfaces for notifications, alarms, and glances. Additionally, models for alarm intervals and app theme options are introduced to support these new capabilities.

domain/src/commonMain · high confidence

Kotlin Multiplatform support for Parcelable serialization

The parcelable library now provides a unified Kotlin Multiplatform implementation for object serialization. A common interface and annotations are defined in the common source set, with platform-specific implementations for Android (mapping to android.os.Parcelable), Desktop (mapping to java.io.Serializable), and iOS (providing a base interface). This enables consistent parcelable behavior across all supported platforms.

libraries/parcelable · high confidence

Kuvio text components now support text decoration

All Kuvio text components (Body, Display, Headline, Label, and Title in Large, Medium, and Small sizes) now accept a \textDecoration\ parameter. This allows developers to apply text decorations such as underlines or strikethroughs to the Kuvio text components in the design system.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/text · high confidence

Migrate project to Kotlin Multiplatform and Gradle Kotlin DSL

The project has been restructured to support Kotlin Multiplatform (KMP), introducing new modules for shared domain logic, data repositories, and feature-specific implementations across Android, iOS, and Desktop. The build system has been migrated from Groovy to Kotlin DSL (\.kts\), and dependencies are now managed via a central version catalog. This change enables code sharing between Android and iOS platforms while maintaining platform-specific implementations where necessary.

(dependencies) · high confidence

New KuvioAddTaskBar component for task input

A new persistent input bar has been added to the design system, anchoring at the bottom of task list screens. It features a text field that expands to show calendar and add-action icons when focused, with animated transitions and theme-aware styling.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/bar · high confidence

New reusable component for task detail sections

A new Composable component, TaskDetailSectionContent, has been added to the task feature's presentation layer. This component provides a standardized layout for displaying a leading icon alongside content within the task detail view, improving consistency and reusability across the UI.

features/task/src/commonMain/kotlin/com/escodro/task/presentation/detail · high confidence

New reusable content components for loading and icon-text states

The design system introduces two new Compose components: AlkaaLoadingContent, which provides a basic loading screen, and DefaultIconTextContent, which displays an icon and header text for error, info, or empty list states. These components are now available for use across the application to standardize loading and informational states.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/content · high confidence

New skill for implementing Kuvio design system components

A new skill, write-design-system-component, has been added to guide the implementation of new Kuvio components within the Alkaa Design System. This skill provides a structured workflow for creating theme-aware, multiplatform Compose Multiplatform components, enforcing strict naming conventions (e.g., Kuvio prefix), code style rules (e.g., using MaterialTheme.colorScheme instead of hardcoded colors), and quality checks via a new verify\_quality.sh script. The skill includes an implementation guide detailing steps from extracting design specs to adding previews and verifying code quality.

.claude/skills/write-design-system-component · high confidence

New transition animations for navigation and top bar

A new Transitions.kt file introduces reusable Compose animation definitions for the design system. Users will see slide-in/slide-out horizontal transitions with fading for general navigation, and specific fade-in/slide-up (enter) and fade-out/slide-down (exit) transitions for the top bar, all using 200-600ms durations with linear easing.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/animation · high confidence

New write-local-datasource skill for local data persistence

Added the write-local-datasource skill, which provides a complete 8-phase guide for implementing local data persistence using SQLDelight. This includes reference documentation for the DataSource interface, DAO, LocalDataSource, Mapper, DI registration, and DB migrations, along with a verification script to ensure schema and migration integrity.

.claude/skills/write-local-datasource · high confidence

Platform-specific date formatting and relative date providers for tasks

Added Android and iOS-specific implementations for formatting and relative date display. On Android, the \AndroidRelativeDateTimeProvider\ uses \DateUtils.getRelativeDateTimeString\ for relative dates, while \LocalDateTime.format()\ uses \DateFormat\ for absolute dates. On iOS, the \IosRelativeDateTimeProvider\ uses \NSRelativeDateTimeFormatter\ for relative dates, and \LocalDateTime.format()\ uses \NSDateFormatter\ for absolute dates. These changes enable the task feature to display dates in a user-friendly, platform-native way.

features/task/src/androidMain · medium confidence

Project documentation and configuration files added

The repository now includes a comprehensive set of documentation and configuration files to improve project onboarding and maintenance. A new CLAUDE.md file provides detailed guidance on the project's architecture, module structure, and build commands. A PRIVACY-POLICY.md file has been added to inform users about data collection and third-party services. Additionally, an .editorconfig file enforces consistent code formatting and linting rules, while a renovate.json file configures automated dependency updates. The README.md has been significantly expanded to include build badges, screenshots, and detailed descriptions of the tech stack and architecture. Finally, the .gitignore file has been updated to exclude AI-generated output files and Kotlin-specific directories.

(repo-wide) · high confidence

iOS app initialization and compliance updates

The iOS application module is initialized with a new Xcode project structure, including a .gitignore file to manage build artifacts and user-specific settings. A PrivacyInfo.xcprivacy file has been added to declare access to the NSPrivacyAccessedAPICategoryFileTimestamp API, satisfying Apple's privacy manifest requirements. Additionally, a README.md file documents the iOS-specific module and its use of Compose Multiplatform.

ios-app · high confidence

iOS task notifications now support a 'Done' action to complete tasks

On iOS, task notifications now include a 'Done' action that allows users to complete a task directly from the notification. This is implemented via the new IosNotificationScheduler, which schedules notifications with a category containing the 'Done' action, and the NotificationActionDelegate, which handles the action response to complete the task. The IosTaskNotification class was also added to manage notification display and dismissal on iOS.

features/alarm/src/iosMain/kotlin/com/escodro/alarm/notification · medium confidence

Behavioural changes

Add LocalDateTime formatting extension

A new extension function is added to format a LocalDateTime instance into a user-friendly string representation, supporting the migration from kotlinx.datetime to kotlin.time.

features/task/src/commonMain/kotlin/com/escodro/task/extension · medium confidence

Add desktop-specific date formatting and relative time logic

Introduced platform-specific implementations for the desktop target to handle date formatting and relative time display. A new \PlatformTaskModule\ registers the \DesktopRelativeDateTimeProvider\, which formats \LocalDateTime\ instances into user-friendly relative strings (e.g., "just now", "2 hours ago") using the \kotlinx.datetime\ library. Additionally, a \LocalDateTime\ extension function is provided to format dates using the system's locale settings.

features/task/src/desktopMain · high confidence

Add iOS-specific SQLDelight driver factory

An iOS-specific dependency injection module has been added to configure the SQLDelight database driver for the iOS platform. This change introduces the IosDriverFactory as the concrete implementation of the DriverFactory interface, ensuring the correct platform-specific setup for local data storage on iOS devices.

data/local/src/iosMain/kotlin/com/escodro/local/di · high confidence

Add iOS-specific alarm and notification dependency injection bindings

The iOS implementation of the alarm feature now includes a dedicated Koin module that registers platform-specific services. This new \PlatformAlarmModule\ binds \IosNotificationScheduler\ to \NotificationScheduler\, \IosTaskNotification\ to \TaskNotification\, and \IosAlarmPermission\ to \AlarmPermission\, while also providing a singleton for \NotificationActionDelegate\. This change enables the iOS layer to inject and use these concrete implementations for handling alarms and notifications.

features/alarm/src/iosMain/kotlin/com/escodro/alarm/di · high confidence

Add iOS-specific alarm permission handling

The iOS implementation for alarm permissions has been introduced, providing a concrete class that returns true for exact alarm permissions and throws an exception when attempting to open the specific permission screen, while opening the app settings for general permissions.

features/alarm/src/iosMain/kotlin/com/escodro/alarm/permission · medium confidence

Added CI script to install and cache JDK 17 for KMM builds

A new \ci\_post\_clone.sh\ script has been added to the iOS app's CI configuration. This script ensures that JDK 17 is installed in the Xcode Cloud build environment, with support for both Apple Silicon (M1) and Intel architectures. It also handles caching of Gradle build artifacts to speed up subsequent builds, which is necessary to support Kotlin Multiplatform (KMM) builds.

_ios-app/ci\scripts · high confidence

Added desktop-specific theme provider implementation

Users on desktop platforms will now have a dedicated ThemeProvider implementation that explicitly disables dynamic color support, ensuring consistent theme behavior across the application's multi-platform architecture.

libraries/designsystem/src/desktopMain · high confidence

Added signing configuration for release builds

A new \signing.properties\ file was added to the \config/signing\ directory, defining the key alias, password, keystore path, and store password required for signing releases.

config/signing · high confidence

Added temporary design system configuration

A new configuration object, DesignSystemConfig, has been introduced in the design system library to manage feature flags during the migration to the new design system. Currently, the IsNewDesignEnabled flag is set to false for production builds, allowing developers to manually enable the new design system during development.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/config · medium confidence

Alarm API module refactored to Kotlin Multiplatform

The Alarm API module has been converted to Kotlin Multiplatform (KMP), moving the core logic into the commonMain source set. This includes a new AlarmPermission interface that defines platform-agnostic methods for verifying and requesting alarm permissions, such as hasExactAlarmPermission() and openExactAlarmPermissionScreen(). A README.md was also added to document the module's purpose as the API layer for the Alarm feature.

features/alarm-api · medium confidence

Alkaa 3.0.0 introduces multiplatform support

The 'What's New' release notes for Alkaa 3.0.0 have been added in English and Portuguese, announcing that the application is now multiplatform.

assets/whatsnew · medium confidence

Android alarm and notification implementation for task reminders

The Android-specific implementation for task reminders has been refactored to use Android's AlarmManager for scheduling notifications and a dedicated NotificationChannel for Android O+. The AndroidTaskNotification class now builds notifications with 'Complete' and 'Snooze' actions that trigger broadcast receivers, while the scheduler uses exact alarms to ensure timely delivery. This change replaces the previous iOS-specific or platform-agnostic logic with a native Android approach, ensuring that task notifications are properly scheduled and displayed on the device.

features/alarm/src/androidMain/kotlin/com/escodro/alarm/notification · high confidence

Android alarm permission handling updated for Android 12+

The alarm feature now uses a new Android-specific implementation to check and request the SCHEDULE\_EXACT\_ALARM permission, which is required on Android 12 (API 31) and higher. The app will now correctly navigate users to the system settings screen to grant this permission, ensuring alarms function as expected on newer Android versions.

features/alarm/src/androidMain/kotlin/com/escodro/alarm/permission · high confidence

Android-specific alarm and permission dependencies registered in Koin

The Android-specific implementations for alarm scheduling, task notifications, SDK versioning, and permission checking are now explicitly bound to their respective interfaces in the Koin dependency injection container. This change provides the concrete Android classes (such as AndroidNotificationScheduler and AndroidPermissionChecker) to the shared codebase, enabling the alarm feature to interact with Android system services through the defined abstractions.

features/alarm/src/androidMain/kotlin/com/escodro/alarm/di · high confidence

Category mapping logic moved to common module

The mapping logic for converting between domain and view models for categories has been moved to the common module. This change centralizes the CategoryMapper class, which handles the transformation of Category entities, including color conversion from ARGB to hex formats.

features/category/src/commonMain/kotlin/com/escodro/category/mapper · high confidence

Centralized version management and KMP extension utilities

The plugin now centralizes version and library management through new Kotlin extension files. VersionCatalogLibraries.kt adds internal accessors for 'ktlint' and 'composerules-detekt' libraries, while VersionCatalogVersions.kt exposes 'android.sdk.compile' and 'android.sdk.min' versions. KmpExtensions.kt introduces a helper to configure iOS and desktop targets for Kotlin Multiplatform projects, setting static frameworks and bundle IDs.

plugins/src/main/java/extension · high confidence

Migrate Category API to Kotlin Multiplatform

The Category API module has been converted to Kotlin Multiplatform (KMP), moving the presentation layer into the common codebase. Specifically, the \CategoryListViewModel\ is now a shared abstract class in \commonMain\, replacing the previous Android-specific implementation. This change enables the category feature's core logic and interfaces to be reused across different platforms, while the module continues to expose necessary interfaces and entry points for other modules.

data/datastore/src/commonMain, features/category-api · medium confidence

Migrate Category bottom sheet to Kotlin Multiplatform

The Category bottom sheet UI and logic have been migrated to the commonMain source set, enabling cross-platform support. This includes new ViewModels (CategoryAddViewModel, CategoryEditViewModel) that use AndroidX ViewModel and Koin for dependency injection, and a Compose-based CategoryBottomSheet component that replaces the previous Android-specific implementation. The change also introduces a CategoryColors enum to define available category colors for the UI.

features/category/src/commonMain/kotlin/com/escodro/category/presentation/bottomsheet · medium confidence

Migrate Preference feature to Kotlin Multiplatform

The Preference feature has been converted to Kotlin Multiplatform (KMM), moving the dependency injection module and theme options mapper to the commonMain source set. This change introduces a new Koin-based dependency injection setup for the Preference feature, including the PreferenceViewModel, AppThemeOptionsMapper, and navigation graph, while maintaining platform-specific module inclusion. Users will see the preference settings functionality now shared across platforms.

features/preference/src/commonMain/kotlin/com/escodro/preference/di · medium confidence

Migrate Task feature to Koin dependency injection

The Task feature's dependency injection has been migrated to Koin, replacing the previous \viewModelDefinition\ approach with \viewModelOf\ and \factoryOf\ registrations in \TaskModule.kt\. This change introduces Koin-based view models (\TaskListViewModel\, \TaskDetailViewModel\, \TaskAlarmViewModel\, \AddTaskViewModel\) and factories for mappers and the \OpenAlarmScheduler\. A new \RelativeDateTimeProvider\ interface is added to handle relative date formatting, supporting the re-enabled relative date formatter in the task list.

features/category/src/commonMain/kotlin/com/escodro/category/di, features/task/src/commonMain/kotlin/com/escodro/task/di · medium confidence

Migrate alarm feature to Kotlin Multiplatform

The alarm feature has been refactored into shared Kotlin code for the commonMain source set, introducing new abstractions for dependency injection (AlarmModule), interactor implementations (AlarmInteractorImpl, NotificationInteractorImpl), a task mapper, and platform-specific notification and permission interfaces (NotificationScheduler, TaskNotification, PermissionChecker, SdkVersion). This change enables the alarm logic to be shared across platforms while preserving platform-specific implementations via expect/actual patterns.

features/alarm/src/commonMain · medium confidence

Migrate category list to Kotlin Multiplatform

The category list feature has been migrated to Kotlin Multiplatform (KMP) and now uses Compose Resources instead of Moko Resources. This change updates the presentation layer to use Jetpack Compose UI components and the new resource system, ensuring consistent behavior across platforms.

features/category/src/commonMain/kotlin/com/escodro/category/presentation/list · medium confidence

Migrate category navigation to the new Nav3-based navigation system

The category feature now uses a new \CategoryNavGraph\ implementation that integrates with the \navigation-api\ module, replacing the previous Event-based navigation with a Nav3-based approach. This change introduces structured navigation for the category list and bottom sheet, utilizing the new \NavGraph\ interface and \NavEventController\ for event handling.

features/category/src/commonMain/kotlin/com/escodro/category/navigation · medium confidence

Migrate preference navigation to Nav3 with adaptive transitions

The preference feature's navigation has been migrated to the new Nav3 system, replacing the previous implementation. This update introduces consistent horizontal slide transitions for navigating between the preferences list, about screen, open-source licenses, and tracker screens. The navigation now leverages the new \navigation-api\ module for event handling and destination definitions, and adapts the UI layout based on the window size class to determine single-pane versus multi-pane modes.

features/preference/src/commonMain/kotlin/com/escodro/preference/navigation · medium confidence

Migrate task navigation to the new navigation-api module and Nav3

The task feature's navigation has been refactored to use the new \navigation-api\ module and the Nav3 navigation system. This change introduces a \TaskNavGraph\ implementation that defines routes for the task list, task detail, and add-task bottom sheet. It leverages the \NavEventController\ for navigation events and applies specific transition animations (FadeIn/FadeOut for the list, horizontal slides for detail) to the new navigation structure.

features/task/src/commonMain/kotlin/com/escodro/task/navigation · high confidence

Migrate to Navigation3 and add dialog navigation support

The navigation layer has been updated to use the Navigation3 library, introducing support for dialog-based navigation screens. The implementation now relies on a NavEventController to manage backstack state and handles top-level navigation clearing, while also integrating with the Moko permissions library for lifecycle-bound permission effects.

features/navigation/src · medium confidence

Placeholder file added for iOS domain layer

A .gitkeep file was added to the iOS main source set for the domain package, ensuring the directory structure is preserved in version control.

domain/src/iosMain · medium confidence

Platform-specific app info providers for preference feature

The preference feature now uses platform-specific implementations to retrieve app information. On Android, the \AndroidAppInfoProvider\ is registered via Koin to provide the app version, while on iOS, the \IosAppInfoProvider\ handles the same. This change introduces the Android and iOS modules for the \PlatformPreferenceModule\, allowing the shared preference logic to access native app metadata through the \AppInfoProvider\ interface.

features/preference/src/androidMain · medium confidence

Platform-specific theme providers for Android and iOS

The design system now uses platform-specific implementations for theme color schemes. On Android, the app can use dynamic color schemes based on the device's wallpaper, while on iOS, dynamic theming is not supported and defaults to standard color schemes. This change introduces separate \ThemeProvider\ implementations for each platform, allowing the shared design system to adapt to platform capabilities.

(repo-wide) · high confidence

Redesign home screen with NavigationSuiteScaffold and top bar visibility control

The home screen layout has been updated to use Material 3's NavigationSuiteScaffold for the bottom navigation, replacing the previous implementation. The top app bar now supports visibility control, allowing it to hide or show based on the current section, with smooth enter/exit transitions. Additionally, the screen now uses rememberSaveable to preserve navigation state across configuration changes.

features/home/src · high confidence

Replaced Moko ViewModel with AndroidX ViewModel

The task list feature now uses AndroidX ViewModel instead of the previous Moko-based implementation. This change updates the presentation layer to align with standard Android architecture components, ensuring better compatibility and lifecycle management for the task list and its associated view models.

features/task/src/commonMain/kotlin/com/escodro/task/presentation/list · high confidence

Search feature adopts new navigation API and adaptive UI support

The Search feature now uses the new navigation-api module, replacing the previous Event-based navigation system. This includes implementing the SearchNavGraph to define the search destination, which supports both compact and detail views based on the window size (isSinglePane). The search section now integrates with the new NavEventController for task clicks and applies fade-in/fade-out transitions for navigation.

features/search/src/commonMain/kotlin/com/escodro/search/navigation · high confidence

Search feature dependency injection migrated to Koin

The Search feature's dependency injection has been updated to use Koin, replacing the previous \viewModelDefinition\ approach. The new \SearchModule\ now registers the \SearchViewModel\, \TaskSearchMapper\, and \SearchNavGraph\ using Koin's DSL, aligning the search feature with the project's standard DI pattern.

features/search/src/commonMain/kotlin/com/escodro/search/di · medium confidence

Search feature migrated to KMM with adaptive UI and ViewModel

The Search feature has been converted to Kotlin Multiplatform (KMM) and now includes an adaptive UI that supports both compact and detail views. The implementation introduces a new SearchViewModel using AndroidX ViewModel, replacing the previous Moko-based approach. The UI now supports a two-pane layout for larger screens, allowing users to view task details alongside search results, while smaller screens display a single-pane list. The search text field now includes IME action support for better keyboard interaction.

features/search/src/commonMain/kotlin/com/escodro/search/presentation · medium confidence

Tracker feature now uses static dependency injection on iOS and dynamic on Android

The Tracker feature's dependency injection has been refactored to use Koin's factory and viewModelOf functions, replacing the previous viewModelDefinition approach. This change adapts the Tracker to be dynamic on Android and static on iOS, as indicated by the commit messages. The new TrackerModule.kt file defines the DI bindings for TrackerViewModel and TrackerMapper.

features/tracker/src/commonMain/kotlin/com/escodro/tracker/di · medium confidence

Updated design system theme and typography

The design system's color palette has been updated with new light and dark theme colors, including a primary blue (\#1A6FD4), secondary slate-blue, and purple tertiary accents. Typography has been refreshed to use Open Sans, Lato, and Nunito font families, with the active font family determined by the \DesignSystemConfig.IsNewDesignEnabled\ flag.

libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/theme · high confidence

Updated iOS workspace configuration

The iOS project workspace has been updated to use the modern \contents.xcworkspacedata\ format and includes the \IDEWorkspaceChecks.plist\ with \IDEDidComputeMac32BitWarning\ set to true, reflecting updated Apple build system configurations.

ios-app/alkaa.xcworkspace · medium confidence

Test coverage

Add iOS-specific test utilities and annotations; Added local data source tests for task search functionality; Added platform-specific test setup and ignore annotations; Added unit and UI tests for the search feature; Added unit tests for TrackerViewModel; Added unit tests for alarm permission handling; Added unit tests for domain use cases; Migrate task feature tests to Kotlin Multiplatform; Migrated category feature tests to Kotlin Multiplatform; New test utilities and platform-specific annotations for KMP.

Dependencies

Updated Gradle wrapper to version 9.5.1

The Gradle wrapper configuration has been updated to use Gradle version 9.5.1, ensuring the project builds with the latest stable release of the Gradle build tooling.

gradle · 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

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 49 → 48 (-0.8)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 99 → 98 (-0.7)
  • Architecture 96 → 93 (-3.5)
  • Maturity 75 → 80 (+5.0)
  • Readiness 59 → 44 (-14.8)
  • Security 42 → 52 (+9.3)
  • Domain Modelling 100 → 100 (+0.0)
  • Accessibility 38 → 36 (-1.1)

Resolved (46)

  • Change coupling: CategoryDao.kt ↔ TaskDao.kt (data/local/src/commonMain/kotlin/com/escodro/local/dao/CategoryDao.kt)
  • Change coupling: PreferenceNavGraph.kt ↔ TaskNavGraph.kt (features/preference/src/commonMain/kotlin/com/escodro/preference/navigation/PreferenceNavGraph.kt)
  • Change coupling: TaskDao.kt ↔ TaskDataSource.kt (data/local/src/commonMain/kotlin/com/escodro/local/dao/TaskDao.kt)
  • Change coupling: TaskDao.kt ↔ TaskRepositoryImpl.kt (data/local/src/commonMain/kotlin/com/escodro/local/dao/TaskDao.kt)
  • Change coupling: TaskDataSource.kt ↔ TaskRepository.kt (data/repository/src/commonMain/kotlin/com/escodro/repository/datasource/TaskDataSource.kt)
  • Change coupling: TaskDetailSectionContent.kt ↔ TaskDetail.kt (features/task/src/commonMain/kotlin/com/escodro/task/presentation/detail/TaskDetailSectionContent.kt)
  • Change coupling: TrackerScreen.kt ↔ TaskGraph.kt (features/tracker/src/commonMain/kotlin/com/escodro/tracker/presentation/TrackerScreen.kt)
  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (13 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/item/KuvioTaskItem.kt)
  • Duplicated block (13 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/item/KuvioTaskItem.kt)
  • Duplicated block (13 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/item/KuvioTaskItem.kt)
  • Duplicated block (14 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/dialog/KuvioDialog.kt)
  • Duplicated block (14 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/dialog/KuvioDialog.kt)
  • Duplicated block (14 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/dialog/KuvioDialog.kt)
  • Duplicated block (14 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/item/KuvioTaskListItem.kt)
  • Duplicated block (14 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/item/KuvioTaskListItem.kt)
  • Duplicated block (15 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/dialog/KuvioDialog.kt)
  • Duplicated block (15 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/dialog/KuvioDialog.kt)
  • Duplicated block (15 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/item/KuvioTaskItem.kt)
  • …and 26 more

New (74)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (11 lines × 2) (features/task/src/androidMain/kotlin/com/escodro/task/extension/LocalDateTimeExtensions.kt)
  • Duplicated block (13 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/chip/KuvioTaskChip.kt)
  • Duplicated block (13 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/item/KuvioTaskItem.kt)
  • Duplicated block (13 lines × 2) (libraries/permission/src/androidMain/kotlin/com/escodro/permission/api/AndroidPermissionController.kt)
  • Duplicated block (14 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/item/KuvioTaskListItem.kt)
  • Duplicated block (15 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/item/KuvioTaskItem.kt)
  • Duplicated block (16 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/item/KuvioTaskItem.kt)
  • Duplicated block (16 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/item/KuvioTaskItem.kt)
  • Duplicated block (16 lines × 4) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/dialog/KuvioDialog.kt)
  • Duplicated block (23 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/dialog/KuvioDialog.kt)
  • Duplicated block (25 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/dialog/KuvioDialog.kt)
  • Duplicated block (31 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/dialog/KuvioDialog.kt)
  • Duplicated block (39 lines × 2) (libraries/designsystem/src/commonMain/kotlin/com/escodro/designsystem/components/kuvio/dialog/KuvioDialog.kt)
  • Duplicated block (5 lines × 2) (features/preference/src/commonMain/kotlin/com/escodro/preference/mapper/AppThemeOptionsMapper.kt)
  • High secret: WD-SECRET-0004 (config/signing/alkaa-keystore)
  • High secret: WD-SECRET-0004 (config/signing/testing-keystore)
  • High: security finding (details withheld)
  • …and 54 more

Architecture

  • Containers 0 added · 0 removed · contexts 16 added · 1 removed · edges 22 added · 0 removed

Added bounded contexts (16)

  • alarm
  • appstate
  • category
  • category-api
  • coroutines
  • designsystem
  • domain
  • glance
  • local
  • navigation
  • navigation-api
  • permission
  • repository
  • search
  • task
  • tracker

Removed bounded contexts (1)

  • shared

Added dependency edges (22)

  • alarm → coroutines
  • alarm → domain
  • appstate → navigation-api
  • category → category-api (coupling)
  • category → coroutines
  • category → domain
  • category → navigation-api
  • glance → domain
  • local → coroutines
  • local → repository
  • navigation → coroutines
  • navigation → navigation-api
  • navigation → permission
  • repository → domain
  • search → domain
  • search → navigation-api
  • task → category-api (coupling)
  • task → coroutines
  • task → domain
  • task → navigation-api
  • …and 2 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

igorescodro/alkaa 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 22 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 8524e062027ca8f9766cc8bf434a13ffdcbfdb97 — 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-821afab8930d.