Deferred finding (F9) from the adversarial review of #3233 (per-channel notification settings, #3160).
channelNotifyPrefsSync serializes and NIP-44-encrypts the whole prefs store with no size budget. NIP-44 payloads cap at 65,535 bytes; a store that accumulates enough customized channels, tombstones, and preserved unknown fields will cross the limit, after which every publish fails into a console.warn and preferences silently stay local-only.
Needed:
- A pruning strategy before publish (e.g. drop oldest default-level tombstones first, then compact entries for channels deleted from the roster).
- Surface persistent publish failure to the user instead of warn-and-drop.
- A regression test at/over the boundary.
🤖 Generated with Claude Code
Deferred finding (F9) from the adversarial review of #3233 (per-channel notification settings, #3160).
channelNotifyPrefsSyncserializes and NIP-44-encrypts the whole prefs store with no size budget. NIP-44 payloads cap at 65,535 bytes; a store that accumulates enough customized channels, tombstones, and preserved unknown fields will cross the limit, after which every publish fails into aconsole.warnand preferences silently stay local-only.Needed:
🤖 Generated with Claude Code