aboutsummaryrefslogtreecommitdiffstats
path: root/src/features/ark.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-08-18 00:42:47 -0700
committerAdam Soltys <[email protected]>2026-08-18 00:42:47 -0700
commit6cffbb23fbbc69fc55f44a4a94161aa539d49629 (patch)
tree78a160a87615d97a42c86279b7bedea5f384a585 /src/features/ark.js
parent0a19b26e1289f79de7b9e3ddd149617c894e6250 (diff)
downloadcoinosv3-6cffbb23fbbc69fc55f44a4a94161aa539d49629.tar.gz
coinosv3-6cffbb23fbbc69fc55f44a4a94161aa539d49629.zip
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 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
Diffstat (limited to 'src/features/ark.js')
-rw-r--r--src/features/ark.js5
1 files changed, 4 insertions, 1 deletions
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(() => {});