Fix worktree sessions fragmenting project identity#142
Merged
gvonness-apolitical merged 2 commits intomainfrom Feb 25, 2026
Merged
Fix worktree sessions fragmenting project identity#142gvonness-apolitical merged 2 commits intomainfrom
gvonness-apolitical merged 2 commits intomainfrom
Conversation
Claude Code v2.1.47+ passes worktree paths as cwd in hook stdin, causing sessions to be tagged as e.g. 'claude-worktree-abc123' instead of the real project name. All entry points now resolve worktree paths back to the main repository via git worktree list with a .git file parsing fallback. Bump version to 0.8.2.
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.
Summary
/tmp/claude-worktree-abc123/) ascwd, causing sessions to be tagged with the worktree name instead of the real project namesrc/utils/project-path.tsresolves worktree paths to main repo viagit worktree list --porcelain(500ms timeout) with.gitfile parsing fallback; skips submodulesTest plan
resolveCanonicalProjectPath(normal repo, worktree via git command,.gitfile fallback, submodule guard, caching, error cases)hook.test.tsandsession-reader.test.tsnpx causantic hook session-startwith worktree cwd — verify slug matches main repoclaudemd-generatorfrom worktree writes CLAUDE.md to worktree dir (not main repo)