dsh-doctor — surface the patch failures that boot silently #432
asdf17128
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
While exploring the layering model I hit two failure modes that boot cleanly with exit code 0:
1. An id-targeted patch replaces an entry's whole
config.session-titlealso shipsfallbackMaxBytes: 40andmaxTitleBytes: 80. After this patch both are gone from the tree that boots.docs/architecture.mdcovers it in one clause — "restate unchanged fields" — but nothing warns at runtime, and--dump-configbefore/after is the only way to notice.2. A patch targeting an unknown entry id is inert.
Typo
agent-default-modelasagent-defualt-modeland you get one stderr line, then a normal boot with exit code 0. Launching the Web UI, you never see it — the customization just silently doesn't apply.Both are easy to hit after an upgrade renames an entry id, and neither surfaces until behaviour drifts weeks later.
I wrote a read-only checker for them:
It diffs
--dump-configagainst--dump-default-config, so every finding is attributable to the user's own patch layer rather than an upstream default.--fixrestates the dropped fields — textual edit inside that oneconfig:block,.bakfirst, so comments and!!jsexpressions survive--explaingroups the ~130-entry tree by area and reportsdisabled: !!js …entries as conditional rather than collapsing them to a booleanZero dependencies, never boots a plugin, never evaluates
!!jsexpressions.Repo: https://github.com/asdf17128/dsh-doctor
Happy to add rules for other silent-failure cases — reproductions welcome. And if either of these is considered a bug rather than intended strictness, I'd rather see dsh warn natively and delete my check.
All reactions