Skip to content

Commit efda105

Browse files
ithiria894claude
andcommitted
fix: canMoveItem missing new categories + README sync with codebase
- canMoveItem() now includes command, agent, rule (Move button was missing) - README updated: Problem section, Features, Comparison table, Scope hierarchy all reference 11 categories consistently - Added: path traversal protection, cross-device support, auto-hide detail panel to Features section Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 5df99cd commit efda105

4 files changed

Lines changed: 14 additions & 10 deletions

File tree

README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ English | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [
1616

1717
## The Problem
1818

19-
Claude Code silently creates memories, skills, and MCP configs every time you work — and dumps them into whatever scope matches your current directory. A preference you wanted everywhere? Trapped in one project. A deploy skill that belongs to one repo? Leaked into global, contaminating every other project.
19+
Claude Code silently creates memories, skills, MCP configs, commands, agents, and rules every time you work — and dumps them into whatever scope matches your current directory. A preference you wanted everywhere? Trapped in one project. A deploy skill that belongs to one repo? Leaked into global, contaminating every other project.
2020

2121
**This isn't just messy — it hurts your AI's performance.** Every session, Claude loads all configs from the current scope plus everything inherited from parent scopes into your context window. Wrong-scope items = wasted tokens, polluted context, and lower accuracy. A Python pipeline skill sitting in global gets loaded into your React frontend session. Duplicate MCP entries initialize the same server twice. Stale memories contradict your current instructions.
2222

@@ -58,6 +58,7 @@ We analyzed the source code of every Claude Code tool we could find — analytic
5858
| Undo on every action | **Yes** | No | No | No | No |
5959
| Bulk operations | **Yes** | No | No | No | No |
6060
| Real MCP server management | **Yes** | Global only | Stub (icon only) | No | No |
61+
| Commands + Agents + Rules | **Yes** | No | No | No | No |
6162
| Session management | **Yes** | No | No | Yes | Yes |
6263
| Search & filter | **Yes** | No | Yes | Yes | No |
6364
| MCP tools (AI-accessible) | **Yes** | No | No | No | No |
@@ -67,19 +68,22 @@ We analyzed the source code of every Claude Code tool we could find — analytic
6768
## Features
6869

6970
- **Scope-aware hierarchy** — See all items organized as Global > Workspace > Project, with inheritance indicators
70-
- **Drag-and-drop** — Move memories between scopes, skills between global and per-repo, MCP servers between configs
71+
- **Drag-and-drop** — Move memories, skills, commands, agents, rules, MCP servers, and plans between scopes
7172
- **Undo everything** — Every move and delete has an undo button — restore instantly, including MCP JSON entries
7273
- **Bulk operations** — Select mode: tick multiple items, move or delete all at once
73-
- **Same-type safety**Memories can only move to memory folders, skills to skill folders, MCP to MCP configs
74+
- **Same-type safety**Each category moves to its own directory — memories to memory/, skills to skills/, commands to commands/, etc.
7475
- **Search & filter** — Real-time search across all items, filter by category with smart pill hiding (zero-count pills collapse into "+N more")
7576
- **Detail panel** — Click any item to see full metadata, content preview, file path, and open in VS Code
7677
- **Session inspector** — Parsed conversation previews with speaker labels, session titles, and metadata
7778
- **11 categories** — Memories, skills, MCP servers, commands, agents, rules, configs, hooks, plugins, plans, and sessions
7879
- **Bundled skill detection** — Groups skills by source bundle via `skills-lock.json`
79-
- **Contextual Claude Code prompts** — "Explain This", "Edit Content", "Resume Session" buttons that copy to clipboard
80+
- **Contextual Claude Code prompts** — "Explain This", "Edit Content", "Edit Command", "Edit Agent", "Resume Session" buttons that copy to clipboard
81+
- **Auto-hide detail panel** — Panel stays hidden until you click an item, maximizing content area
8082
- **Resizable panels** — Drag dividers to resize sidebar, content area, and detail panel
8183
- **Real file moves** — Actually moves files in `~/.claude/`, not just a viewer
82-
- **92 E2E tests** — Playwright test suite with real filesystem verification, security tests, and new category coverage
84+
- **Path traversal protection** — All file endpoints validate paths are within HOME directory
85+
- **Cross-device support** — Automatic copy+delete fallback when rename fails across filesystems (Docker/WSL)
86+
- **92 E2E tests** — Playwright test suite covering filesystem verification, security (path traversal, malformed input), and all 11 categories
8387

8488
## Why a Visual Dashboard?
8589

@@ -144,7 +148,7 @@ Global <- applies everywhere
144148
Documents (project) <- independent project
145149
```
146150

147-
Child scopes inherit parent scope's memories, skills, and MCP servers.
151+
Child scopes inherit parent scope's memories, skills, MCP servers, commands, agents, and rules.
148152

149153
## How It Works
150154

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.5.4",
3+
"version": "0.5.5",
44
"description": "Organize all your Claude Code memories, skills, MCP servers, commands, agents, rules, and hooks — view by scope hierarchy, move between scopes via drag-and-drop",
55
"type": "module",
66
"bin": {

src/ui/app.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1727,7 +1727,7 @@ function sortArrow(catKey, field) {
17271727
}
17281728

17291729
function canMoveItem(item) {
1730-
return !item.locked && ["memory", "skill", "mcp", "plan"].includes(item.category);
1730+
return !item.locked && ["memory", "skill", "mcp", "plan", "command", "agent", "rule"].includes(item.category);
17311731
}
17321732

17331733
function canDeleteItem(item) {

0 commit comments

Comments
 (0)