Bug
SessionStart hook finds the first memory.js across ALL projects instead of scoping to the current project. This causes cross-project memory pollution.
Root cause
Current hook command in settings.json:
```bash
MEM=$(find ~/.claude/projects -maxdepth 3 -name memory.js -path "/memory/" 2>/dev/null | head -1)
DIR=$(dirname "$MEM" 2>/dev/null)
cat "$DIR/workstreams/handoff.md" 2>/dev/null
```
find returns the first memory.js from any project alphabetically — if tms comes before tms-common, the tms handoff is loaded in a tms-common session.
Fix
Derive memory dir from $PWD (same logic as the session-start skill bootstrap):
```bash
PROJ_KEY=$(echo "$PWD" | tr '/.' '-' | sed 's/^-//')
DIR="$HOME/.claude/projects/-${PROJ_KEY}/memory"
cat "$DIR/workstreams/handoff.md" 2>/dev/null
```
Observed
- Session opened in
tms-common/tools/claude-bridge
- scaffold context from
tms project appeared in session-start summary
- Confirmed via notes:
2026-05-15.md line 85
Environment
- CC version: 2.1.142
- memory-toolkit: 1.3.6
Bug
SessionStart hook finds the first
memory.jsacross ALL projects instead of scoping to the current project. This causes cross-project memory pollution.Root cause
Current hook command in
settings.json:```bash
MEM=$(find ~/.claude/projects -maxdepth 3 -name memory.js -path "/memory/" 2>/dev/null | head -1)
DIR=$(dirname "$MEM" 2>/dev/null)
cat "$DIR/workstreams/handoff.md" 2>/dev/null
```
findreturns the firstmemory.jsfrom any project alphabetically — iftmscomes beforetms-common, thetmshandoff is loaded in atms-commonsession.Fix
Derive memory dir from
$PWD(same logic as the session-start skill bootstrap):```bash
PROJ_KEY=$(echo "$PWD" | tr '/.' '-' | sed 's/^-//')
DIR="$HOME/.claude/projects/-${PROJ_KEY}/memory"
cat "$DIR/workstreams/handoff.md" 2>/dev/null
```
Observed
tms-common/tools/claude-bridgetmsproject appeared in session-start summary2026-05-15.mdline 85Environment