Skip to content

bug(plugin): SessionStart bootstrap and stale global UserPromptSubmit hook leave mode workflow behavior inconsistent in v5.3.0 #1376

Description

@JeremyDev87

Summary

CodingBuddy's keyword-mode experience in v5.3.0 is not uniformly broken, but it is inconsistent across installation states because the plugin currently relies on a split bootstrap design:

  • hooks/hooks.json does not include UserPromptSubmit
  • session-start.py bootstraps a global UserPromptSubmit hook into ~/.claude/settings.json
  • upgraded installs can keep running an older global hook instead of converging on the current self-contained hook

The result is that fresh installs and upgraded installs can behave differently, and stale global hook state can mask or override the intended standalone-capable path.

What this issue is really about

This is a parent issue for the plugin's mode-bootstrap architecture and legacy-hook migration gap.

It is not an assertion that every v5.3.0 user always gets raw Claude with no mode behavior. Fresh installs can still bootstrap correctly via SessionStart. The more accurate failure boundary is:

  • bootstrap behavior is split between plugin-local metadata and global settings mutation
  • upgraded installs can retain stale global hook state
  • users may see inconsistent behavior across environments

Scope

In scope:

  • SessionStart-based bootstrap of the global UserPromptSubmit hook
  • stale legacy global hook migration
  • investigation of plugin install/cache artifacts that affect MCP-mode discovery
  • fallback and diagnostic hardening for mode-detection behavior

Out of scope:

  • unrelated TUI behavior
  • cosmetic documentation changes with no effect on bootstrap or migration

Acceptance criteria

  • fresh installs and upgraded installs converge on the same current self-contained mode-detection behavior
  • stale legacy global hook state no longer overrides or masks the intended path
  • plugin install/bootstrap behavior is clearly diagnosable
  • parent and child issues describe the actual current architecture accurately

Related sub-issues

Notes

  • current session-start.py intentionally installs a global UserPromptSubmit hook into ~/.claude/settings.json
  • the highest-confidence concrete bug in this family is the stale-hook migration problem, not a universal total failure of the keyword workflow

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Priority 1: First ImpressionbugSomething isn't workingparent-issue하위 이슈를 포함하는 상위 이슈pluginpackages/claude-code-pluginpriority:mustMust Have - 반드시 필요, 없으면 릴리즈 불가

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions