## ⚠️ Upstream sync — manual rebase needed Upstream **BasedHardware/omi** `main` is **1877** commit(s) ahead; the automatic rebase **hit conflicts**. **Conflicting files:** ``` backend/utils/other/storage.py ``` ### Land it (rebase model — force-updates `selfhost`, per RUNBOOK §4a) Run locally (your credentials carry the `workflow` scope the CI token lacks): ```bash git fetch upstream && git checkout selfhost && git rebase c16b958e14ddb5adbad382ca0c6449d0c6be1e2c # resolve conflicts if any git push --force-with-lease origin selfhost ``` That push triggers build-backend + build-app; the VM image + app-feed reconcilers then converge automatically. **Upstream commits (newest first, up to 40):** - 09fed2f31e chore: consolidate changelog for v0.12.329 - 703f8f9dad fix(desktop): stop re-answering voice threads whose reply only lost spoken delivery (#13273) - 637eb28f01 chore: consolidate changelog for v0.12.328 - 1cd5277e29 ci(desktop): cut Desktop Swift CI to one hosted Mac and defer the slow tail (80/20) (#13219) - 60a5d42d1a fix(desktop): make open_ask_omi report the chat-first composer it actually opens (#13234) - 75daab7f09 fix(desktop): stage undo as a single unsynced row so restoring a synced task can't duplicate it (#13259) (#13276) - e0308b66dd fix(windows): route an empty complete JIT watchlist to the ambient lane (#13277) - 8e353f948a chore: consolidate changelog for v0.12.327 - 99dcbbe87b chore(notifications-job): cut daily-summary selection over to indexed (#13275) - 45cb3d97b6 chore(notifications-job): give the cron 2Gi so shadow selection can finish - c7c1beb2e4 fix(backend): translation detection cache no longer collides on conf: prefixed text (#13270) - 595572b9e7 fix(desktop): return ptt_start after capture admission instead of behind the compositor capture (#13248) - 5c1bc6aafb fix(backend): accept the provider's documented chat file input types (#13247) - 970b97f9f3 fix(desktop): defer native PTT evidence attach until its journal row exists (#13235) - 6728e11797 feat(macos): classify PTT terminals as dictation vs question (#13240) - 5b9e7bd982 test(desktop): isolate the revocation-dissolve test from the shared auth defaults domain (#13260) - f2bd546aea chore: consolidate changelog for v0.12.326 - 0fbc4cf217 fix(desktop): a settled chat answer never restarts on a stale journal echo (#13241) - 7de8b90899 fix(desktop): developer bundles never touch the login keychain (#13253) - c32c6812cd feat(backend): record STT audio seconds by provider (#13243) - ca79229de5 chore(notifications-job): shadow daily-summary selection on prod (#13210) (#13255) - 9d5cfa8e3f chore(notifications-job): shadow daily-summary selection on dev (#13210) (#13244) - f4f9706ba8 fix(backend): keep delete-window override fence; no count() stream fallback - f32fef1eb7 perf(notifications): select daily-summary recipients with an indexed query instead of re-reading every user (#13210) (#13213) - 7961666ee7 test: allowlist file-isolated memory offset cost first-test CPU - c262ce0f2a fix(backend): keep Firestore count aggregation typed as Any - b3c4d8a509 chore: consolidate changelog for v0.12.325 - a92d83f519 fix(backend): type Firestore aggregation count helper for pyright - ba8973c4f4 fix(desktop): chat composer lane + attachment preview continuity (#13217) - e0a7ada02f Headless E2E pool: fail closed, not fail cold (#13212) - 2510ee3dd7 chore: consolidate changelog for v0.12.324 - 5d29ea0c35 fix(backend): compact speaker-map LLM transcript so summaries stop leaking Speaker N (#13188) - 3e251e43db fix(backend): cut memory Firestore query fan-out and NOT_FOUND misses - 5936532a41 fix(desktop): admit attachment-only automation sends (#13207) - 622d3a3ac9 chore: consolidate changelog for v0.12.323 - 2c7f354df3 fix(desktop): stop resurrecting completed tasks after a failed retry sync (#13102) (#13148) - 3dc2c53986 chore: consolidate changelog for v0.12.322 - 2654b4dc9b fix(cli): preserve literal error text and authentication exit codes (#13000) - 6ed33b30d8 fix(sdk): clean up deepgram tasks and allow reconnect on normal close (#13083) - ef31972c43 test(cli): add regression coverage for prompt interruption via click.Abort (#13063)
Upstream BasedHardware/omi
mainis 1877 commit(s) ahead; the automatic rebase hit conflicts.Conflicting files:
Land it (rebase model — force-updates
selfhost, per RUNBOOK §4a)Run locally (your credentials carry the
workflowscope the CI token lacks):That push triggers build-backend + build-app; the VM image + app-feed reconcilers then converge automatically.
Upstream commits (newest first, up to 40):