Skip to content

Commit 9c516d0

Browse files
ithiria894claude
andcommitted
fix: scope badges show styled tooltip on hover explaining what each status means (v0.13.9)
Global: "Available globally from ~/.claude/ — applies to all projects" Ancestor: "From a parent directory — Claude Code loads CLAUDE.md by walking up" Shadowed: "Overridden by a project-scoped item with the same name" Conflict: "Same name in both scopes — Claude Code does not guarantee which applies" Tooltips use the same CSS style as pill tooltips (themed, max-width, fade-in). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 4dff736 commit 9c516d0

4 files changed

Lines changed: 35 additions & 7 deletions

File tree

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@mcpware/claude-code-organizer",
3-
"version": "0.13.8",
3+
"version": "0.13.9",
44
"description": "Organize all your Claude Code memories, skills, MCP servers, commands, agents, rules, and hooks — see what loads globally vs per-project, then move items between scopes",
55
"type": "module",
66
"files": [

src/ui/app.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -914,10 +914,10 @@ function renderItem(item) {
914914
const isFromAncestor = showEffective && effectiveAncestorKeys.has(key);
915915
const isShadowed = isFromGlobal && effectiveShadowedKeys.has(key);
916916
const isConflict = showEffective && effectiveConflictKeys.has(key);
917-
const effectiveBadge = isShadowed ? `<span class="scope-tag st-shadowed">Shadowed</span>`
918-
: isConflict ? `<span class="scope-tag st-conflict">⚠ Conflict</span>`
919-
: isFromAncestor ? `<span class="scope-tag st-ancestor">Ancestor</span>`
920-
: isFromGlobal ? `<span class="scope-tag st-global">Global</span>`
917+
const effectiveBadge = isShadowed ? `<span class="scope-tag st-shadowed" data-tooltip="This item is overridden by a project-scoped item with the same name">Shadowed</span>`
918+
: isConflict ? `<span class="scope-tag st-conflict" data-tooltip="Same name exists in both user and project scope — Claude Code does not guarantee which one applies">⚠ Conflict</span>`
919+
: isFromAncestor ? `<span class="scope-tag st-ancestor" data-tooltip="From a parent directory — Claude Code loads CLAUDE.md files by walking up from the working directory">Ancestor</span>`
920+
: isFromGlobal ? `<span class="scope-tag st-global" data-tooltip="Available globally from ~/.claude/ — applies to all projects on this machine">Global</span>`
921921
: "";
922922
const actions = (item.locked || isFromGlobal) ? "" : `
923923
<span class="item-actions">

src/ui/style.css

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -984,6 +984,34 @@ body {
984984
.st-ancestor { color: oklch(0.58 0.14 160); border-color: oklch(0.58 0.14 160); }
985985
.st-shadowed { color: var(--text-muted); border-color: var(--text-muted); opacity: 0.6; text-decoration: line-through; }
986986
.st-conflict { color: oklch(0.65 0.15 55); border-color: oklch(0.65 0.15 55); }
987+
.scope-tag[data-tooltip] { position: relative; cursor: help; }
988+
.scope-tag[data-tooltip]::after {
989+
content: attr(data-tooltip);
990+
position: absolute;
991+
top: calc(100% + 6px);
992+
left: 0;
993+
background: var(--surface-elevated, #1a1a2e);
994+
color: var(--text-secondary, #ccc);
995+
border: 1px solid var(--border-light, #333);
996+
border-radius: 6px;
997+
padding: 6px 10px;
998+
font-size: 0.65rem;
999+
font-weight: 400;
1000+
font-style: normal;
1001+
text-transform: none;
1002+
letter-spacing: normal;
1003+
text-decoration: none;
1004+
line-height: 1.5;
1005+
white-space: normal;
1006+
width: max-content;
1007+
max-width: 260px;
1008+
z-index: 100;
1009+
pointer-events: none;
1010+
opacity: 0;
1011+
transition: opacity 150ms;
1012+
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
1013+
}
1014+
.scope-tag[data-tooltip]:hover::after { opacity: 1; }
9871015
.s-tree-toggle { cursor: pointer; font-size: 0.7rem; opacity: 0.5; margin-left: auto; padding: 0 4px; }
9881016
.s-tree-toggle:hover { opacity: 1; }
9891017
.s-tree-toggle.active { opacity: 1; }

0 commit comments

Comments
 (0)