From 6cffbb23fbbc69fc55f44a4a94161aa539d49629 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 18 Aug 2026 00:42:47 -0700 Subject: A confirmed board stops waiting on a flaky tip: confirmation itself counts for one, and a failed mailbox read no longer starves the drives that only need the chain Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz --- src/features/ark.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/features/ark.js') diff --git a/src/features/ark.js b/src/features/ark.js index 5641186..cefb877 100644 --- a/src/features/ark.js +++ b/src/features/ark.js @@ -343,7 +343,10 @@ export function arkFeature(ctx) { // them. Publishing on connect guarantees every device's ark balance // reaches the relay (and gets merged) without needing a transaction first. if (mgr.state && (mgr.state.vtxos || []).length) { try { wallet.saveCache(); } catch {} } - const tick = () => mgr.sync().catch(() => {}) + // A failed mailbox read must not starve the action drives: boards and + // refreshes progress on chain state alone, so push them even when the + // sync itself errored. + const tick = () => mgr.sync().catch(() => mgr.resumePending().catch(() => {})) .then(() => driveExits(mgr)).catch(() => {}) .then(() => { if (ark === mgr) return maybeAutoRefresh(mgr); }).catch(() => {}) .then(() => { if (ark === mgr) return maybeAutoWithdraw(mgr); }).catch(() => {}); -- cgit v1.2.3