igorescodro/alkaa
48.5
Weak · 22 September 2026
17.5k
lines of production code
Kotlin
primary language
7
measurements over time
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
Added Android deep link support for navigation
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.