docs: note rateLimit config is settable only programmatically

MessagingClientConf.rateLimit cannot be set through the JSON config or a CLI
flag: it carries no name pragma, and RateLimitConfig is a nested object with
no parseCmdArg, so applyJsonFieldsToConf rejects it with "cannot be set via
JSON". Record the limitation and the fix path on the field.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
stubbsta 2026-07-24 10:31:49 +02:00
parent 1bc8e453da
commit 1d078a8f80
No known key found for this signature in database

View File

@ -55,6 +55,13 @@ type MessagingClientConf* = object
## Per-epoch message rate limit enforced by the send service. `Opt` like
## every other field so `merge` propagates a caller's override; unset falls
## back to `DefaultRateLimitConfig` (rate limiting disabled).
##
## Known limitation — settable only programmatically (build the object, or
## via `merge`), not through the JSON config or a CLI flag. It carries no
## `{.name.}` pragma, and because `RateLimitConfig` is a nested object with
## no `parseCmdArg`, the JSON overrides walker rejects it with "cannot be
## set via JSON" (see `applyJsonFieldsToConf`). Exposing it over JSON/CLI
## needs a `parseCmdArg(RateLimitConfig)` or nested-object support there.
proc applyMode*(conf: var WakuNodeConf, mode: LogosDeliveryMode): ConfResult[void] =
## Sets the protocol flags implied by the mode.