Skip to content

Replace dashboard score cards with task lists#5647

Merged
kodjima33 merged 1 commit intomainfrom
fix/replace-dashboard-score-with-tasks
Mar 15, 2026
Merged

Replace dashboard score cards with task lists#5647
kodjima33 merged 1 commit intomainfrom
fix/replace-dashboard-score-with-tasks

Conversation

@kodjima33
Copy link
Copy Markdown
Collaborator

Summary

  • replace the macOS dashboard score card with the existing tasks list widget and remove the duplicate tasks row
  • remove the mobile conversations dashboard daily score card and keep the existing tasks list section

Verification

  • cd app && flutter test test/providers test/widgets test/unit passed in the main workspace where local generated Firebase/env files exist
  • cd desktop/Desktop && swift build passed in the main workspace
  • cd desktop/Desktop && swift test ends with no tests found for this package
  • direct launch of the built macOS binary for UI automation is blocked in this environment because launching the raw SwiftPM executable is not a bundled app and UNUserNotificationCenter.current() asserts at startup
  • fresh clean-worktree Flutter test run is blocked by missing generated local files (firebase_options_*.dart, dev_env.g.dart, prod_env.g.dart) that are not present in a clean checkout on this machine

@kodjima33 kodjima33 merged commit 76e7779 into main Mar 15, 2026
2 checks passed
@kodjima33 kodjima33 deleted the fix/replace-dashboard-score-with-tasks branch March 15, 2026 09:09
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Mar 15, 2026

Greptile Summary

This PR simplifies both the mobile (Flutter) and macOS (SwiftUI) dashboards by removing the daily score card widgets and consolidating the task list display.

  • Flutter mobile: Removes the DailyScoreWidget import and rendering from conversations_page.dart, keeping only TodayTasksWidget and GoalsWidget. The showDailyScoreEnabled preference check is also removed from the visibility condition.
  • macOS desktop: Promotes TasksWidget from a full-width bottom row into the top row alongside GoalsWidget (replacing ScoreWidget), changing the grid from 3 rows to 1 row.
  • Minor dead code remains: _refreshGoals() is now a no-op in Flutter, and DashboardViewModel.loadScores() still fetches score data that no view consumes.

Confidence Score: 4/5

  • This PR is safe to merge — it only removes UI widgets and restructures layout with no logic changes.
  • The changes are purely UI cleanup: removing widget imports, dropping rendered components, and rearranging a grid layout. No business logic, data models, or API contracts are modified. Minor dead code (no-op method, unused API call) is non-breaking. Score deducted from 5 for the leftover dead code that adds unnecessary network calls.
  • desktop/Desktop/Sources/MainWindow/Pages/DashboardPage.swift — ViewModel still makes unused score API calls after ScoreWidget removal

Important Files Changed

Filename Overview
app/lib/pages/conversations/conversations_page.dart Removed DailyScoreWidget import and usage, replaced with existing TodayTasksWidget; left a no-op _refreshGoals() method and the showDailyScoreEnabled developer toggle is now orphaned.
desktop/Desktop/Sources/MainWindow/Pages/DashboardPage.swift Replaced ScoreWidget with TasksWidget in the top grid row and removed the full-width bottom TasksWidget row; ViewModel still loads unused score data.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    subgraph Before["Before (3-row grid)"]
        B_R1["Row 1: ScoreWidget | GoalsWidget"]
        B_R2["Row 2: ConversationsWidget | ActivitiesWidget"]
        B_R3["Row 3: TasksWidget (full width)"]
        B_R1 --> B_R2 --> B_R3
    end

    subgraph After["After (1-row grid)"]
        A_R1["Row 1: TasksWidget | GoalsWidget"]
        A_R2["Conversations embedded below"]
        A_R1 --> A_R2
    end

    Before -- "PR #5647" --> After
Loading

Comments Outside Diff (1)

  1. desktop/Desktop/Sources/MainWindow/Pages/DashboardPage.swift, line 11 (link)

    Unused scoreResponse and loadScores() remain

    The ScoreWidget was removed from the dashboard grid, but DashboardViewModel still declares @Published var scoreResponse (line 11), fetches scores in loadDashboardData() (line 52), and reloads scores after every task toggle (line 109). Since no view reads scoreResponse anymore, this is a wasted network call on every dashboard load and on every task completion toggle.

    Consider removing scoreResponse, loadScores(), and the await loadScores() call in toggleTaskCompletion to eliminate the dead API calls.

Last reviewed commit: 822ccfb

void _refreshGoals() {
_dailyScoreWidgetKey.currentState?.reloadGoals();
}
void _refreshGoals() {}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dead no-op method left behind

_refreshGoals() is now an empty body (no-op) but is still called on pull-to-refresh (line 168) and passed as a callback to GoalsWidget (line 218). Previously it delegated to DailyScoreWidget.reloadGoals(), which no longer exists.

Since the method does nothing, consider removing it entirely along with its call sites to avoid confusion. The GoalsWidget.onRefresh callback invokes this no-op on every goal refresh, which is harmless but misleading.

Suggested change
void _refreshGoals() {}
void _refreshGoals() {}

Glucksberg pushed a commit to Glucksberg/omi-local that referenced this pull request Apr 28, 2026
## Summary
- replace the macOS dashboard score card with the existing tasks list
widget and remove the duplicate tasks row
- remove the mobile conversations dashboard daily score card and keep
the existing tasks list section

## Verification
- `cd app && flutter test test/providers test/widgets test/unit` passed
in the main workspace where local generated Firebase/env files exist
- `cd desktop/Desktop && swift build` passed in the main workspace
- `cd desktop/Desktop && swift test` ends with `no tests found` for this
package
- direct launch of the built macOS binary for UI automation is blocked
in this environment because launching the raw SwiftPM executable is not
a bundled app and `UNUserNotificationCenter.current()` asserts at
startup
- fresh clean-worktree Flutter test run is blocked by missing generated
local files (`firebase_options_*.dart`, `dev_env.g.dart`,
`prod_env.g.dart`) that are not present in a clean checkout on this
machine
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant