feat: Add is_subagent() helper method to all hook context classes#3
Closed
kitaekatt wants to merge 1 commit intoGowayLee:mainfrom
Closed
feat: Add is_subagent() helper method to all hook context classes#3kitaekatt wants to merge 1 commit intoGowayLee:mainfrom
kitaekatt wants to merge 1 commit intoGowayLee:mainfrom
Conversation
This adds the is_subagent() helper method to all hook context classes
(PreToolUseContext, PostToolUseContext, SessionStartContext, SessionEndContext,
UserPromptSubmitContext, NotificationContext, StopContext, SubagentStopContext,
PreCompactContext).
The method enables developers to detect whether a hook is running in a sub-agent
context vs main Claude context by examining the transcript_path filename pattern.
Main Claude sessions use 'session-{id}.jsonl', while sub-agents use 'agent-{id}.jsonl'.
This enables tool access gating patterns where main Claude and delegated task
contexts can have different authorization and capability requirements.
Changes:
- Add is_subagent() method to all 9 context classes
- Comprehensive unit tests covering main Claude, sub-agent, and edge cases
- All 320 existing tests pass without regression
The implementation is non-breaking (adds new method only) and has zero performance
overhead (just pattern matching on filename).
Author
|
Flaw in my approach |
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.
This adds the is_subagent() helper method to all hook context classes (PreToolUseContext, PostToolUseContext, SessionStartContext, SessionEndContext, UserPromptSubmitContext, NotificationContext, StopContext, SubagentStopContext, PreCompactContext).
The method enables developers to detect whether a hook is running in a sub-agent context vs main Claude context by examining the transcript_path filename pattern. Main Claude sessions use 'session-{id}.jsonl', while sub-agents use 'agent-{id}.jsonl'.
This enables tool access gating patterns where main Claude and delegated task contexts can have different authorization and capability requirements.
Changes:
The implementation is non-breaking (adds new method only) and has zero performance overhead (just pattern matching on filename).