Version 5.1.3
[5.1.3] — 2026-09-07
A hotfix for cipi ini list: the table header printed, then the command died on the first setting.
Fixed
cipi ini listcrashed with_INI_SOURCE: unbound variable._ini_effectiverecorded which layer a value came from by assigning a global, then the caller captured the value withval=$(_ini_effective …). Command substitution runs in a subshell, so the assignment never reached the parent, andset -ukilled the process on the first catalog key — after printing the "SETTING / VALUE / SET BY" header and nothing else. The function now sets_INI_VALUEand_INI_SOURCEin the current shell;list,getand the companion-limit cascade all read those directly. No migration: the nextcipi self-updatecopies the newlib/ini.shand that is the whole fix.- A regression test now fails if this class of bug returns.
tests/verify-5.1.3.shwalks the full catalog underset -uand refuses a$(_ini_effective)call site.