Repository navigation
CLI rc.6 fails to boot when ~/.dsh/.credentials.yaml is in DSH Desktop format (structured version/refs/records) #9845
Replies: 1 comment
The document is the shape this line requires — the failing half is the CLI build's readerThanks for the precise reproduction; the boot path and the error text are accurate. One correction on the direction of the contract, because it decides the remedy. At the current upstream head (
Version boundary, from this repository's own history rather than from memory: the sectioned document with Two details worth having before editing the file by hand:
One more property of the diagnostics that is easy to trip over: errors here never quote a value, only the key name and the position ( I read this repository, not the registry, so I have not verified which published CLI versions carry the sectioned reader — choose the CLI build by its own version rather than by my claim about it. |
Uh oh!
There was an error while loading. Please reload this page.
Summary
When DSH Desktop has written
~/.dsh/.credentials.yamlin its structured format (version/refs/records), the CLI (@deepseek-ai/dsh@0.1.0-rc.6) aborts boot entirely:credentials-localexpects a flat mapping of credential ref → non-empty string and rejects the Desktop-written file wholesale.Environment
@deepseek-ai/dsh0.1.0-rc.6 (npm global install, Node v22, macOS, Apple Silicon)~/.dsh/.credentials.yamlRepro
Let DSH Desktop create/update
~/.dsh/.credentials.yaml. Its top-level shape is:Boot any CLI profile, e.g.
dsh --profile web.Actual behavior
Boot dies at the credentials loader entry and the entire plugin tree fails to load:
After manually quoting
versionas a string, boot then fails identically onrefs(a mapping, not a string). Root cause:parseCredentialsDocumentindsh-credentials-localtreats every top-level key as a credential ref with a non-empty string value, so any Desktop-written envelope is rejected.Expected behavior
One of:
refs, ignoresversion/records; orversionfield suggests this was planned); or~/.dsh/.credentials.yaml.Workaround (confirmed working on rc.6)
Repoint the credentials plugin per-profile to a CLI-only flat file, leaving Desktop's file untouched —
profiles/<name>/cordis.patch.yml:Downside: keys rotated in Desktop must be re-synced into the CLI file manually.
Happy to test any fix. Thanks for the great tool — the plugin architecture has been a pleasure to build on.
All reactions