network/node apply: add repeatable --config-value for spec.configValues (PLT-1246) - #253
network/node apply: add repeatable --config-value for spec.configValues (PLT-1246)#253bdchatham wants to merge 3 commits into
Conversation
…es (PLT-1246) Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
PR SummaryMedium Risk Overview New Reviewed by Cursor Bugbot for commit 395374c. Bugbot is set up for automated code reviews on this repo. Configure here. |
1. BlockingNone. 2. Non-blocking
3. Summary
seidroid review · decision Findings: 0 blocking | 6 non-blocking | 1 posted inline |
…gOverrides overlap Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Summary
Closes PLT-1246. The controller's spec 002/003
spec.configValues(typed per-file TOML overlays) had no authoring path in seictl other than--set spec.configValues[N].*, which replaces list slots by index and can't express a bool/number without three--sets. Bothnetwork applyandnode applynow take a repeatableNew
internal/cliutil/configvalue.go:valueisjson.Unmarshaled when it parses (bool, number, array, table,"quoted string"); anything else is kept as a plain string, sosc-write-mode=asyncandtimeout_commit="400ms"both do the obvious thing.^[A-Za-z0-9_-]+\.toml$(≤64), key^[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+)*$(≤256),null/nestednullrefused (no TOML representation → plan-build failure),MaxItems=100.--set/--override; an entry with the same(fileName, key)already in the list (from preset or--set) is replaced in place, new ones append in flag order. Empty flag list is a no-op (does not createspec.configValues).Help text for both commands documents the layering and the operational caveat that editing
configValueson a live SeiNetwork restarts the entire validator pool.Tests: helper table tests (typed values,
=inside value, each rejection path, merge, max-items, no-op) plus render tests inseinetworkandseinodefor merge-with---setand TOML-only refusal.go build ./... && go test ./... && make lintclean.Link to Devin session: https://app.devin.ai/sessions/967951560dfc4f51a8fe1c8697305c7b
Open in Devin Desktop: https://app.devin.ai/desktop/session/967951560dfc4f51a8fe1c8697305c7b?variant=devin
Requested by: @bdchatham