Cover digital assets and vehicles with proper fast-path instruments

Digital assets: nonprobate.js's suggestion previously claimed channel
'bank-mandate' with label 'Multi-sig / pre-authorized release' — a
mismatch, since bank-mandate's fields (institution/nominee/reference)
don't fit crypto custody at all. New "digital-custody" channel with
custody-type-specific fields: exchange beneficiary feature, self-custody
multi-sig (warns that it only works if a living co-signer is already
configured), or key-escrow with executor (warns explicitly: never store
the actual seed phrase or private key in this app or any single record —
only a reference to WHERE access is arranged).

Vehicles/jewelry/valuables: were lumped into the same "trust" suggestion
as land, which is overkill for movable property that hands over cleanly
by a simple Hibah. Suggestion now points straight to Hibah for these;
land keeps the trust suggestion since it has no such easy path.

CoverageDashboard's suggestion-inline text simplified from an ad-hoc
ternary chain into a clean NEXT_STEP_TAB map, now correctly covering
hibah/trust/digital-custody/business-continuity.

e2e-digital-vehicle.cjs: new suite verifying digital asset exposed ->
custody-type warnings -> export -> covered, and vehicle exposed -> Hibah
suggestion (not trust) -> covered via Hibah link -> 100% combined
coverage. 10/10 passing. Re-verified all four prior suites (32/32,
16/16, 12/12, 10/10) — 80/80 total, no regressions.
This commit is contained in:
wmj
2026-08-13 17:41:25 +08:00
parent 051c9d9a94
commit 07b9f4f07a
5 changed files with 192 additions and 7 deletions
+9 -1
View File
@@ -15,9 +15,17 @@
'bank-mandate': 'Bank death mandate',
trust: 'Trust / nominee holding',
'business-continuity': 'Business continuity instrument',
'digital-custody': 'Digital custody plan',
'hibah-flagged-capped': 'Hibah flagged (marad al-mawt) — capped, partially exposed',
none: 'Not covered — exposed to Faraid/probate'
};
const NEXT_STEP_TAB = {
hibah: 'the Hibah tab',
trust: 'Nomination Registry (trust setup)',
'digital-custody': 'Nomination Registry (digital custody)',
'business-continuity': 'Nomination Registry (business continuity)'
};
</script>
<div class="module">
@@ -58,7 +66,7 @@
<strong>{r.asset.description}</strong>
<span class="muted">{r.ownedValue.toLocaleString()} · {CHANNEL_LABELS[r.channel]}</span>
{#if suggestion}
<span class="suggestion-inline">Next step: {suggestion.label} — go to {suggestion.channel === 'trust' ? 'a legal advisor for trust setup' : 'Nomination Registry'} or {r.asset.type?.toLowerCase().includes('property') ? 'Hibah/Waqf' : 'Hibah'}.</span>
<span class="suggestion-inline">Next step: {suggestion.label} — go to {NEXT_STEP_TAB[suggestion.channel] || 'Nomination Registry'}.</span>
{/if}
</div>
<span class="status-dot" class:on={r.fast}></span>