-
-
Notifications
You must be signed in to change notification settings - Fork 105
Add a Home entry point to the AI briefing screen #447
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,59 @@ | ||
| // resolveBriefingToShow backs the Home "Briefing" link row (see EDGE-14 / | ||
| // PR #447). currentBriefingPeriod documents that past 17:00 it returns | ||
| // `evening` even before the evening recap exists, "falling back to the | ||
| // cached morning one until [it] exists" — a contract the row's first version | ||
| // did not honor: it just opened whatever currentBriefingPeriod said, so | ||
| // after 5pm with no evening sweep written yet it showed the generic "tap to | ||
| // write" prompt and opened an empty evening screen instead of the morning | ||
| // briefing already sitting in cache (Sourcery finding on PR #447). | ||
|
|
||
| import 'package:flutter_test/flutter_test.dart'; | ||
| import 'package:openstrap_edge/ai/briefing.dart'; | ||
|
|
||
| Briefing _briefing(BriefingPeriod period, String oneLiner) => Briefing( | ||
| day: '2026-09-20', | ||
| period: period, | ||
| oneLiner: oneLiner, | ||
| breakdownMd: '', | ||
| generatedAtMs: 0, | ||
| inputs: const {}, | ||
| ); | ||
|
|
||
| void main() { | ||
| test('morning, before 17:00: the morning briefing is used as-is', () { | ||
| final morning = _briefing(BriefingPeriod.morning, 'slept well'); | ||
| final result = | ||
| resolveBriefingToShow(BriefingPeriod.morning, morning, morning); | ||
| expect(result.period, BriefingPeriod.morning); | ||
| expect(result.briefing, morning); | ||
| }); | ||
|
|
||
| test('evening, recap already written: the evening briefing is used', () { | ||
| final morning = _briefing(BriefingPeriod.morning, 'slept well'); | ||
| final evening = _briefing(BriefingPeriod.evening, 'good day overall'); | ||
| final result = | ||
| resolveBriefingToShow(BriefingPeriod.evening, evening, morning); | ||
| expect(result.period, BriefingPeriod.evening); | ||
| expect(result.briefing, evening); | ||
| }); | ||
|
|
||
| test( | ||
| 'evening, recap not written yet, morning cached: falls back to the ' | ||
| 'morning briefing', () { | ||
| final morning = _briefing(BriefingPeriod.morning, 'slept well'); | ||
| final result = | ||
| resolveBriefingToShow(BriefingPeriod.evening, null, morning); | ||
| expect(result.period, BriefingPeriod.morning, | ||
| reason: 'currentBriefingPeriod documents this exact fallback'); | ||
| expect(result.briefing, morning); | ||
| }); | ||
|
|
||
| test('evening, neither written yet: stays on evening with nothing cached', | ||
| () { | ||
| final result = resolveBriefingToShow(BriefingPeriod.evening, null, null); | ||
| expect(result.period, BriefingPeriod.evening, | ||
| reason: 'the destination screen\'s own "write one now" state should ' | ||
| 'open for the period the user actually asked about'); | ||
| expect(result.briefing, isNull); | ||
| }); | ||
| } |
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
Repository: OpenStrap/edge
Length of output: 966
🏁 Script executed:
Repository: OpenStrap/edge
Length of output: 2157
Add the briefing keys to all five supported locale files.
app_de.arb,app_es.arb,app_fr.arb,app_hi.arb, andapp_zh.arbomithomeBriefingTitleandhomeBriefingSubtitleEmpty. Users of these locales can see the English fallback labels instead of translated text. Add translated values for both keys.🤖 Prompt for AI Agents