Repository navigation
feat: Android background task progress and result notifications - #25
Merged
Merged
Conversation
sugarforever
force-pushed
the
codex/background-notifications
branch
from
October 23, 2026 01:07
665c2f9 to
34459c8
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Android background work now shows committed running, retry, network-wait and approval states in the existing shared foreground-service notification. Once work settles, Moose reads the persisted final view before releasing the service and posts one conversation-specific completion/failure alert while the Activity is hidden. Tapping an individual notification selects the saved chat without submitting work. Cold links arriving before React bootstrap are retained by a small MainActivity config plugin.
Preserves the existing notification-permission admission, Stop-all action, cancellation acknowledgement, 30-minute budget and iOS suspension scope. Overlapping leases are deduplicated; multiple chats share an untargeted count notification and receive separate result targets. Fixed failure categories avoid exposing provider bodies or credentials. Unchanged historical outcomes never alert. Includes version 0.7.1; no dependencies, executor, scheduler or generic notification framework were added.
Validation:
npm run verifypassed: 245 tests, 37 skipped (including the environment-gated iSH native suite), 3 real bootstrap tests, strict types, portable Pi/SQLite smoke, and both Hermes exports. Expo Doctor 20/20; modified files passed Prettier and diff checks.No real credentials, billable model requests, new Xiaomi/physical-device or Doze/full-budget acceptance, iOS native build, or IPA publication. The emulator's unrelated saved Termux selection showed its existing connection error in the normal UI; persisted chat selection remained testable. Detailed evidence and reproduction steps are in
docs/background-recovery.md.