Skip to content

SessionStart hook loads handoff from wrong project #3

Description

@IlyaGorsky

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions