Skip to content

K2GO-557 feat(dashboard): in-app update alerts (low-memory gate, failure dialog) - #751

Merged
luisguzman-adfa merged 2 commits into
mainfrom
feat/K2GO-557-update-notifications
Nov 8, 2026
Merged

luisguzman-adfa merged 2 commits into
mainfrom
feat/K2GO-557-update-notifications

Conversation

@luisguzman-adfa

Copy link
Copy Markdown
Collaborator

What changes

  • tools/rebuild-dashboard.sh: on the staging install, reuse the live better_sqlite3.node when better-sqlite3 is unchanged, instead of a full node-gyp recompile. Any mismatch (version change, binary does not load, or a new native dep) falls back to compiling from source.
  • Replace the staged smoke gate's blind sleep 3 with a poll up to 45 s (K2GO_REBUILD_STAGE_TIMEOUT), shared with the live verify through one poll_smoke helper.
  • Add a dry-run mode (K2GO_REBUILD_DRYRUN=1) that stops after the staged build and smoke, with no live promote.

Why

  • On a low-RAM 32-bit box the node-gyp recompile of better-sqlite3 took about 20 min and risked OOM. The binary is unchanged across most updates, so reuse skips it.
  • A cold second node on that hardware needs about 11 s to answer. sleep 3 false-failed the staged smoke and aborted the update. The poll absorbs the boot time.
  • Correctness does not depend on reuse: any miss falls back to the prior full install, and a bad staged build is caught by the smoke before promote.

Verifications

  • End-to-end on the farm Q8 (Android 12, armeabi-v7a, 1.4 GB RAM): reuse hit (better-sqlite3 12.11.1 unchanged, reused binary loads OK, recompile skipped); the staged node answered at about 14 s (the old sleep 3 would have false-failed); promote, restart and live verify passed. The reuse path finished in about 4.5 min; the recompile it replaces is about 20 min on this hardware.
  • Blue-green rollback path unchanged: a failed staged smoke leaves the live dashboard untouched.

Notes

  • Tool-only change: tools/rebuild-dashboard.sh is the updater, not the dash-node source, so there is no dash-node version bump or changelog entry.

…ure dialog)

Replace the system-notification advisory and failure with in-app UX: a pre-start
low-memory gate, a failure dialog, and an app-wide foreground observer that
re-shows a pending failure. One flag in UpdateStatusCache is the single source of
truth. Low-memory trigger raised to 450 MB from on-device measurement.
Migrate the 8 K2GO-557 UI strings from the untranslated tracker into the 33 locale
strings.xml files. Machine-translated, marked for human review.
@luisguzman-adfa
luisguzman-adfa merged commit 992a579 into main Nov 8, 2026
4 of 10 checks passed
@luisguzman-adfa
luisguzman-adfa deleted the feat/K2GO-557-update-notifications branch November 9, 2026 05:33
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