docs: say where the API key goes before the first request fails - #30
Merged
Conversation
Install ends at `dsh --profile dsh-cctui`, and the next thing a new user meets is `MISSING_CREDENTIAL` — with nothing in this README saying where a key belongs. The harness resolves one per request through `dsh-credentials-local`, so the answer was only ever in that package's own docs, a dependency-of-a-dependency away from anyone reading this one. Records the managed store as the recommended home, and the three facts that are easy to get wrong on the way there: the `0600` mode is enforced rather than advisory (the provider refuses a document with any group or other bit and fails at boot), the document is watched so a key stored mid-session needs no restart, and the key never belongs in `cordis.patch.yml` — adapter config carries `apiKeyEnv`, a reference, not a secret. Also states the layer precedence, that one key covers `web_search` too, and what `0600` does not buy: it stops other OS users, not the model, whose bash and filesystem tools run as the same user. Docs only, so no version bump — matching 69ae70d, 52c365c, and faa956d. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Install ends at
dsh --profile dsh-cctui, and the next thing a new user meets isMISSING_CREDENTIAL— with nothing in this README saying where a key belongs. The harnessresolves one per request through
dsh-credentials-local, so the answer was only ever in thatpackage's own docs, a dependency-of-a-dependency away from anyone reading this one.
Adds an API key subsection under Install, recording the managed store
(
$DSH_HOME/.credentials.yaml) as the recommended home plus the three facts that are easy to getwrong on the way there:
0600mode is enforced, not advisory — the provider refuses a document carrying any groupor other permission bit and fails at boot
cordis.patch.yml— adapter config carriesapiKeyEnv, a reference,not a secret
Also states the layer precedence (launching environment > store >
<cwd>/.env>~/.dsh/.env),that one key covers
web_searchtoo, and what0600does not buy: it stops other OS users, notthe model, whose bash and filesystem tools run as the same user.
Every claim was checked against the booted profile (
dsh --profile dsh-cctui --dump-configmounts
dsh-credentials-localanddsh-llm-deepseekwith the defaultapiKeyEnv: DEEPSEEK_API_KEY) and against those packages' READMEs, and the documented path waswalked end to end on a real key.
Docs only, so no version bump — matching 69ae70d, 52c365c, and faa956d.
🤖 Generated with Claude Code