Remove deprecated container.credentials_host_path backwards-compat in favor of credentials_host_dir #77
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#77
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As a maintainer, I want the backwards-compat path that accepts
container.credentials_host_path(a file) inagents.jsonremoved,so that the config surface has exactly one way to name the credentials
bind source and the compat code doesn't outlive the migration window
it was written for.
Context
Issue #57 added directory-mount support for the credentials bind, with
an explicit migration window:
container.credentials_host_dir— thebind-source directory. Survives
claude logininode refreshes.container.credentials_host_path— afile path. The code resolves
dirname(…)as the directory.Every
agents.jsonentry onmaintoday uses the new key. Noproduction config still relies on the old one. The compat branch in
the loader has done its job and can come out.
Removal keeps the config schema simpler and deletes a
@deprecatedfunction that's become dead-code on the happy path.
Scope — concrete
Code
src/container.ts: remove the@deprecateddefaultHostCredentialsPath()function. Its only remainingcallers are tests that lock the legacy path.
src/webhook-config.ts: remove thedirname(credentials_host_path)fallback inloadWebhookConfig.Keep the
credentials_host_dirbranch + the default-pathbranch.
credentials_host_pathin theiragents.jsonwould now see aundefinedcredentials dir →service defaults to
defaultHostCredentialsDirPath(). That'sa deliberate break — the config was wrong anyway; fix the
config.
Tests
src/webhook-config.test.tsandsrc/container.test.tsthat specifically exercise thecredentials_host_path→dirnamebranch and thedefaultHostCredentialsPath()function.credentials_host_dirbranch and the default fallback.Docs
CLAUDE.md: grep for any mention ofcredentials_host_pathand remove.
justfilecontainers-rebuildrecipe: the compat-resolutionblock (
creds_file=$(jq -r … credentials_host_path …)) can go— leaves only the
credentials_host_dirlookup and thedefault fallback.
Out of scope
credentials_host_dir. The key name stays as-is.defaultHostCredentialsDirPath(). That's the defaultused when no per-agent override is set; it stays.
credentials_host_dirvalues. Every agenton
mainalready uses the new key; nothing needs edits inagents.json.References
mount and the compat path.
key per agent.
into the new key.
Dependencies
main.Validation note
This ticket doubles as the first container-mode dispatch for
dev(see #76's AC). Successful end-to-end completion — worktree in
container, git auth via the shim,
just qagreen inside thecontainer, PR opened — is itself the signal that dev's
container-mode migration works for the
implement/ PR flow.container.credentials_host_pathcompat branch #78mcp__forgejo__update_filefor code edits (use Edit/Write + git CLI) #79