fix(agents): the claude projects root follows CLAUDE_CONFIG_DIR too (Issue #31, review)
stop resolves the uuid before it purges, through lib.sh's exported
CLAUDE_PROJECT_DIR and DiscoveryContext.claude_dir, both of which defaulted
to $HOME/.claude/projects. With CLAUDE_CONFIG_DIR alone the transcript under
<cfg>/projects was not found, so stop removed the row and purged nothing.
Both defaults are now ${CLAUDE_CONFIG_DIR:-<home>/.claude}/projects; an
explicit CLAUDE_PROJECT_DIR still wins.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
872d5f12fb
commit
f0af98971e
3 files changed
+7
-4
No files matched your search
@@ -74,7 +74,8 @@ _MAM_DIALOG_TOKENS="${_MAM_MODAL_TOKENS}|${_MAM_HINT_TOKENS}"
|
|||||||
|
|
||||||
# Workspace-relative defaults with environment overrides (Phase Z)
|
# Workspace-relative defaults with environment overrides (Phase Z)
|
||||||
HOME_DIR="${HOME_DIR:-$HOME}"
|
HOME_DIR="${HOME_DIR:-$HOME}"
|
||||||
CLAUDE_PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$HOME/.claude/projects}"
|
# claude keeps projects/ under its config root, which CLAUDE_CONFIG_DIR moves (Issue #31).
|
||||||
|
CLAUDE_PROJECT_DIR="${CLAUDE_PROJECT_DIR:-${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects}"
|
||||||
if [ -z "${LOCAL_BIN:-}" ]; then
|
if [ -z "${LOCAL_BIN:-}" ]; then
|
||||||
if [ -x "$HOME_DIR/bin/herdr" ]; then
|
if [ -x "$HOME_DIR/bin/herdr" ]; then
|
||||||
LOCAL_BIN="$HOME_DIR/bin"
|
LOCAL_BIN="$HOME_DIR/bin"
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ def _config_dir(ctx: DiscoveryContext) -> str:
|
|||||||
|
|
||||||
|
|
||||||
def _projects_dirs(ctx: DiscoveryContext) -> list:
|
def _projects_dirs(ctx: DiscoveryContext) -> list:
|
||||||
"""ctx.claude_dir (CLAUDE_PROJECT_DIR, else <home>/.claude/projects) and
|
"""ctx.claude_dir (CLAUDE_PROJECT_DIR, else the config root's projects/)
|
||||||
the config root's own projects/, each once."""
|
and the config root's own projects/, each once."""
|
||||||
dirs, seen = [], set()
|
dirs, seen = [], set()
|
||||||
for d in (ctx.claude_dir, os.path.join(_config_dir(ctx), "projects")):
|
for d in (ctx.claude_dir, os.path.join(_config_dir(ctx), "projects")):
|
||||||
real = os.path.realpath(d)
|
real = os.path.realpath(d)
|
||||||
|
|||||||
@@ -156,7 +156,9 @@ class DiscoveryContext:
|
|||||||
self.workspace = workspace
|
self.workspace = workspace
|
||||||
self.agent_name = agent_name
|
self.agent_name = agent_name
|
||||||
self.home_dir = resolve_home(home_dir)
|
self.home_dir = resolve_home(home_dir)
|
||||||
self.claude_dir = claude_dir or os.environ.get("CLAUDE_PROJECT_DIR", f"{self.home_dir}/.claude/projects")
|
# projects/ lives under claude's config root, which CLAUDE_CONFIG_DIR moves.
|
||||||
|
config_root = os.environ.get("CLAUDE_CONFIG_DIR") or f"{self.home_dir}/.claude"
|
||||||
|
self.claude_dir = claude_dir or os.environ.get("CLAUDE_PROJECT_DIR", f"{config_root}/projects")
|
||||||
self.epoch = epoch
|
self.epoch = epoch
|
||||||
self.row = row or {}
|
self.row = row or {}
|
||||||
self.mode = mode
|
self.mode = mode
|
||||||
|
|||||||
Reference in new issue
Block a user