Skip to content

test(notifications): add scheduler validation suite#542

Merged
ucguy4u merged 2 commits into
mainfrom
codex/issue-515-notification-validation
Jun 29, 2026
Merged

test(notifications): add scheduler validation suite#542
ucguy4u merged 2 commits into
mainfrom
codex/issue-515-notification-validation

Conversation

@ucguy4u

@ucguy4u ucguy4u commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR introduces changes to the notification scheduler validation path.
Goal: make issue #515 reproducible with deterministic host-runnable coverage while documenting the remaining device-only notification checks.

Core outcome:

  • suppresses duplicate reminder scheduling in the shared scheduler
  • emits stable deep-link payloads for notification routing context
  • adds focused scheduler tests, a Make target, and a release runbook for notification validation

Changes

Code

  • Added:
    • scheduler validation test coverage in app/test/features/agent_chat/data/services/agent_notification_scheduler_test.dart
    • notification validation runbook in docs/release/NOTIFICATION_VALIDATION.md
  • Updated:
    • shared scheduler duplicate suppression and payload generation in app/lib/features/agent_chat/data/services/agent_notification_scheduler.dart
    • release checklist and validation entry point in docs/release/RELEASE_CHECKLIST.md and Makefile
    • app dev dependency wiring for the async preferences platform test harness in app/pubspec.yaml

Logic

  • duplicate reminder requests now return the existing scheduled notification instead of scheduling again
  • zoned notifications now carry a stable JSON payload with category, schedule type, deep link, and metadata
  • completion bookkeeping still awards points once and cancels daily_until_done reminders after completion
  • persisted scheduled reminders are stored and reloaded in chronological order

API Changes (if any)

  • No external API changes.

Database Changes (if any)

  • None.

Observability / Logging

  • None.

Performance Impact

  • Negligible. Duplicate suppression avoids unnecessary platform schedule calls.

Risks

  • Deep-link payload structure is now standardized; downstream tap-handling code should continue to treat payloads as opaque JSON.
  • Device-only OS presentation and tap-routing flows still require manual verification.
  • Rollback plan:
    • revert this PR to restore prior scheduling behavior and remove the validation artifacts

Testing

  • Unit tests:
    • make test-notification-validation
  • Integration tests:
    • none in this slice
  • Manual testing:
    • adb devices -l confirmed a connected Pixel 9 is available for the device-only matrix
    • device-only notification scenarios are documented in docs/release/NOTIFICATION_VALIDATION.md

Deployment Notes

  • No config changes.

Related Commits

  • test(notifications): add scheduler validation suite

Notes

  • This addresses the framework-owned portion of issue Validation: Notifications #515; recording/download presentation and tap-routing still need the documented Android manual matrix before the issue can close.

- suppress duplicate reminder scheduling in the shared notification scheduler
- emit stable deep-link payloads and verify completion bookkeeping
- add a focused Make target, runbook, and framework tests for issue #515

This turns notification validation into a reproducible host-runnable workflow while keeping device-only notification behavior explicitly documented.
@github-actions

Copy link
Copy Markdown
Contributor

Plugin Module Size Gate

Policy: modules over 3 MB must be delivered as plugins; plugin modules over 5 MB must document cache management.

Module Size Type Status
No changed Dart/Flutter modules detected n/a n/a OK

@github-actions

Copy link
Copy Markdown
Contributor

🚀 PR Quick Check Summary

Check Status Description
PR Validation ❌ failure Title format, docs, bundled model guardrail
Code Quality ✅ success Analyze, formatting
Core Tests ✅ success Core package unit tests

💡 Note: Full app tests, coverage reports, and security scans run on merge to main.

View Details

- record duplicate suppression and stable reminder deep-link payloads
- point maintainers to the notification validation runbook and manual Android matrix

Satisfies the docs/wiki completeness gate for the notification scheduler validation slice.
@ucguy4u ucguy4u merged commit 104b113 into main Jun 29, 2026
4 checks passed
@ucguy4u ucguy4u deleted the codex/issue-515-notification-validation branch June 29, 2026 16:18
@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Contributor

🚀 PR Quick Check Summary

Check Status Description
PR Validation ✅ success Title format, docs, bundled model guardrail
Code Quality ✅ success Analyze, formatting
Core Tests ✅ success Core package unit tests

💡 Note: Full app tests, coverage reports, and security scans run on merge to main.

View Details

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