You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Redesign home category tiles with updated gradients, soft radial bloom, and surface lift effects across iOS and Android
- Add a "Today" task preview section to the Android home screen with swipe-to-action support (edit, delete)
- Implement `TodayTaskRow` with task completion toggles and swipe-to-reveal action buttons
- Update `HomeViewModel` to handle task mutations (complete, delete, update) and optimistic UI updates
- Remove category tile watermarks in iOS to match the new minimalist aesthetic
- Refactor `CategoryGrid` into `HomeCategoryPillRow` on Android for better layout control
- Integrate `CreateTaskBottomSheet` for task editing directly from the Home screen preview
- iOS: Conditionally update `HomeSearchBarFrameKey` only when search is expanded to prevent jitter during normal scrolling
- Android: Add a `snapThresholdPx` (88.dp) to the scroll-to-top logic to prevent unwanted snapping when scrolling deep within the home content
- Android: Refine scroll-snapping condition to target only partially visible search bar states
- Remove custom vertical translation and pointer tracking from `TdayPullRefresh` to rely on standard component behavior
- Replace basic scroll snapping with `NestedScrollConnection` in `HomeScreen` to provide elastic resistance when scrolling the title bar
- Implement spring-based snapping for the title bar zone (60% threshold) using `snapshotFlow`
- Reduce elevation levels for category pills and remove radial gradient "soft bloom" effect for a cleaner UI
- Improve snapping reliability by reading item height directly from `LazyListLayoutInfo`
* **Android**: Add an internal adaptive car-mode surface at `tday://car` using Jetpack Compose, featuring mode switching between Today and Floater tasks and voice-to-text task creation.
* **iOS**: Implement CarPlay support using `CPTemplateApplicationScene` and `CPListTemplate`, including App Intents for Siri-integrated voice task creation.
* **Core**: Introduce shared UI models and state builders for car-specific views, focusing on task visibility and completion while driving.
* **Telemetry**: Add event tracking for car surface access, mode switching, and voice creation results across both platforms.
* **Documentation**: Update architecture, product direction, and testing docs to include car surface constraints and verification strategies.
* **Testing**: Add unit tests for state mapping, voice creation payloads, and empty state logic for both platforms.
Update the `EmptyTaskWatermark` to dynamically change its icon based on the time of day, switching between sun and moon icons to reflect daytime or nighttime.
- **Android (Compose)**:
- Utilize `rememberIsDaytime()` to toggle the `EmptyTaskWatermark` icon between `Icons.Rounded.WbSunny` and `Icons.Rounded.NightsStay`.
- **iOS (SwiftUI)**:
- Wrap the watermark in a `TimelineView` to periodically update the UI.
- Implement logic to switch the system icon between `sun.max.fill` and `moon.stars.fill` based on the current time provided by the timeline context.
* Add an 8-second window to skip redundant network syncs when local state is up-to-date.
* Introduce `TodoDashboardCacheSnapshot` and `TodoListCacheSnapshot` to encapsulate data mapping from the offline cache.
* Refactor `HomeViewModel` and `TodoListViewModel` to hydrate UI state from repository snapshots.
* Improve `PullToRefresh` stability by managing refresh tasks and handling view disappearance.
* Implement `AppBottomSheet`, `TaskFormSheet`, and `ListFormSheet` to standardize mobile interactions.
* Add appearance settings to allow manual and system theme selection.
* Redesign the mobile home dashboard with updated tiles, colors, and layout.
* Optimize mobile inputs and viewport settings to improve usability and prevent auto-zoom.
* Update `Modal` and `Dialog` components with refined animations.
* Refactor task and list creation flows to utilize the new sheet-based components.
…ottom sheet, replacing the dedicated `/app/add-task` route. Update the floating action button to trigger the global sheet and implement list deletion functionality within the `ListFormSheet` component. Re-route home dashboard links to a new `/app/today` path.
We reviewed changes in 7c5ea3b...05d85dd on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.
Some issues found as part of this review are outside of the diff in this pull request and aren't shown in the inline review comments due to GitHub's API limitations. You can see those issues on the DeepSource dashboard.
AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.
The reason will be displayed to describe this comment to others. Learn more.
`TdayApp` has a cyclomatic complexity of 48 with "Very High" risk
Cyclomatic complexity is a software metric that measures the number of
independent paths through a function. A function with high cyclomatic
complexity can be hard to understand and maintain. A higher cyclomatic
complexity indicates that the function has more decision points and is more complex.
The reason will be displayed to describe this comment to others. Learn more.
Multiple occurrences of the same string literal within a single file detected. Prefer extracting the string literal into a property or constant.
Avoiding repeated string literals in the same scope is considered good practice in Kotlin. By using shared constants/variables, one improves code maintainability, readability, consistency, and support for localization efforts. Repeated string literals can make code harder to understand, update, and translate. Using shared constants or variables promotes code consistency and potential performance optimizations.
The reason will be displayed to describe this comment to others. Learn more.
Multiple occurrences of the same string literal within a single file detected. Prefer extracting the string literal into a property or constant.
Avoiding repeated string literals in the same scope is considered good practice in Kotlin. By using shared constants/variables, one improves code maintainability, readability, consistency, and support for localization efforts. Repeated string literals can make code harder to understand, update, and translate. Using shared constants or variables promotes code consistency and potential performance optimizations.
The reason will be displayed to describe this comment to others. Learn more.
Multiple occurrences of the same string literal within a single file detected. Prefer extracting the string literal into a property or constant.
Avoiding repeated string literals in the same scope is considered good practice in Kotlin. By using shared constants/variables, one improves code maintainability, readability, consistency, and support for localization efforts. Repeated string literals can make code harder to understand, update, and translate. Using shared constants or variables promotes code consistency and potential performance optimizations.
The reason will be displayed to describe this comment to others. Learn more.
Multiple occurrences of the same string literal within a single file detected. Prefer extracting the string literal into a property or constant.
Avoiding repeated string literals in the same scope is considered good practice in Kotlin. By using shared constants/variables, one improves code maintainability, readability, consistency, and support for localization efforts. Repeated string literals can make code harder to understand, update, and translate. Using shared constants or variables promotes code consistency and potential performance optimizations.
The reason will be displayed to describe this comment to others. Learn more.
Multiple occurrences of the same string literal within a single file detected. Prefer extracting the string literal into a property or constant.
Avoiding repeated string literals in the same scope is considered good practice in Kotlin. By using shared constants/variables, one improves code maintainability, readability, consistency, and support for localization efforts. Repeated string literals can make code harder to understand, update, and translate. Using shared constants or variables promotes code consistency and potential performance optimizations.
The reason will be displayed to describe this comment to others. Learn more.
Multiple occurrences of the same string literal within a single file detected. Prefer extracting the string literal into a property or constant.
Avoiding repeated string literals in the same scope is considered good practice in Kotlin. By using shared constants/variables, one improves code maintainability, readability, consistency, and support for localization efforts. Repeated string literals can make code harder to understand, update, and translate. Using shared constants or variables promotes code consistency and potential performance optimizations.
The reason will be displayed to describe this comment to others. Learn more.
Multiple occurrences of the same string literal within a single file detected. Prefer extracting the string literal into a property or constant.
Avoiding repeated string literals in the same scope is considered good practice in Kotlin. By using shared constants/variables, one improves code maintainability, readability, consistency, and support for localization efforts. Repeated string literals can make code harder to understand, update, and translate. Using shared constants or variables promotes code consistency and potential performance optimizations.
The reason will be displayed to describe this comment to others. Learn more.
Multiple occurrences of the same string literal within a single file detected. Prefer extracting the string literal into a property or constant.
Avoiding repeated string literals in the same scope is considered good practice in Kotlin. By using shared constants/variables, one improves code maintainability, readability, consistency, and support for localization efforts. Repeated string literals can make code harder to understand, update, and translate. Using shared constants or variables promotes code consistency and potential performance optimizations.
The "summary returns ai source when model responds" test hardcoded a task
due date of 2026-05-30 and asserted it under mode="today". The summary route
resolves "today" via LocalDate.now(zoneId), so the test only passed on that
calendar day and broke CI once the date passed. Use a task due today (UTC) so
the test is time-independent.
Also adds the patch-todo regression test guarding null-description reschedule.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.