fix: derive clearnet price consent from Nym state - #1362
Conversation
A Nym-off wallet consented to clearnet only when the indicator read exactly `off`. A rejecting `disableMixnet()` settles the view on `unknown`, so consent went false and the cadence cleared with nothing to republish it, killing the price surface for the session. Treat a Nym-off wallet as consented in every state except one where the mixnet route actually serves (`ready`/`bootstrapping`). The Nym-on half is unchanged. Closes #1361 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Visual review — ✅ matches baselineHead vs |
juanky201271
left a comment
There was a problem hiding this comment.
Right fix for #1361 — it moves the consent off the transport state instead of patching the symptom, and the ready/bootstrapping exclusion also covers the mirror race when Nym is switched off. One thing on the predicate, inline.
Two minor notes: the new test renders UNKNOWN_VIEW directly, so it asserts the state, not the publish(OFF_REPORT) -> publish(failure) transition that produces it. And if disableMixnet() really rejected, the core may still hold Mixnet Mode on and refuse the fetch anyway — the cadence now retries every 5-10 min instead of dying, which is the right shape, but the issue shouldn't close claiming a guaranteed price in that case.
This PR fixes #1361.