Skip to content

feat(formulus): add configurable automatic sync - #943

Open
allennakalema06-web wants to merge 6 commits into
OpenDataEnsemble:devfrom
allennakalema06-web:feat/formulus-auto-sync
Open

allennakalema06-web wants to merge 6 commits into
OpenDataEnsemble:devfrom
allennakalema06-web:feat/formulus-auto-sync

Conversation

@allennakalema06-web

Copy link
Copy Markdown
Contributor

What & Why

Adds automatic sync to Formulus.

Users can enable auto-sync and choose how often observations should sync while the app is open. Auto-sync runs silently without showing manual sync notifications.

Type of Change

  • Bug fix
  • New feature / enhancement
  • Refactor / cleanup
  • Documentation
  • Chore / other

Component(s) Changed

  • formulus (React Native mobile app)

Testing

  • Added/updated tests
  • Manually tested
  • Not applicable

57 relevant tests passed.

Checklist

  • Pre-flight checks for changed packages passed (lint / format / tests)
  • Breaking changes (if any) have migration steps
  • Related issue linked, e.g. Closes #123

@najuna-brian
najuna-brian requested review from Mishael-2584, najuna-brian and r0ssing and removed request for najuna-brian September 28, 2026 22:19
@najuna-brian

Copy link
Copy Markdown
Member

Hi @allennakalema06-web
Thank you for the change. Considering that it is a major change, we are holding on to have it in the next release.
Please feel free to request for another issue at the moment

Thanks again

@najuna-brian

Copy link
Copy Markdown
Member

Hello @r0ssing and @Mishael-2584
Ping ping just to let you know about this issue 😄

@najuna-brian najuna-brian moved this from Triage to In review in ODE Community Board Oct 27, 2026
@Mishael-2584

Copy link
Copy Markdown
Contributor

Thanks for the implementation @allennakalema06-web . The existing focused tests pass, but please address these before we merge:

  1. Refresh this.appState from AppState.currentState inside start(). Otherwise, a foreground event missed while the listener is removed can leave auto-sync inactive after restart. Please add a regression test for that sequence.

  2. Handle settings-read failures in scheduleNext(). A rejected storage read currently becomes an unhandled rejection and leaves no scheduled retry. Please add coverage for recovery from a transient read failure.

  3. Add the 11 new auto-sync strings to sw.json. Their absence is currently failing the locale test in CI.

Please rerun the focused suites and full Formulus checks afterward. Thank you

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

3 participants