fix(issue-45): review R1-R3 - herdr checks the config, any TOML spelling kept, source never overwritten
R1: tomllib accepting a file is not herdr accepting it (a schema error makes
herdr drop the whole file, restore included). The shim passes REAL_HERDR and
the written file must pass `herdr config check` ("parse error"/"using defaults"
reject; unknown keys and sound-file notices do not), else the key-only file is
written and checked. A non-table `session` and a source that is not UTF-8 reach
that fallback instead of raising.
R2: the line edit is replaced by parse -> set -> serialize; the result must
parse back to the source plus the key, so dotted keys and inline tables keep
the user's other settings.
R3: the output is never the source (aliases included) nor a file not generated
for the same source; then a per-source name beside it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ce91cc11b9
commit
811b080966
3 files changed
+274
-88
No files matched your search
@@ -235,9 +235,10 @@ except Exception:
|
||||
# relaunch every saved agent with herdr's own resume command (no permission
|
||||
# flags, deleted agents included). It gets HERDR_CONFIG_PATH = the user's
|
||||
# herdr config with [session] resume_agents_on_restore = false, rebuilt on
|
||||
# every start (lib_py/herdr_config.py). Without that file the server still
|
||||
# starts - with restore on, as before.
|
||||
MAM_SERVER_CFG=$(python3 -m lib_py.herdr_config server-config --fallback-dir "$_SHIM_DIR/.." || true)
|
||||
# every start and checked by this herdr's `config check`
|
||||
# (lib_py/herdr_config.py). Without that file the server still starts -
|
||||
# with restore on, as before.
|
||||
MAM_SERVER_CFG=$(python3 -m lib_py.herdr_config server-config --fallback-dir "$_SHIM_DIR/.." --herdr "$REAL_HERDR" || true)
|
||||
export MAM_SERVER_CFG
|
||||
if [ -z "$MAM_SERVER_CFG" ]; then
|
||||
echo "WARNING: restore-on-restart stays enabled for herdr session $_MAM_SESSION (no server config)" >&2
|
||||
|
||||
Reference in new issue
Block a user