From 40927950c49f6e742d341e20ff7b9b7e1e7bfff5 Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Thu, 9 Jul 2026 03:53:51 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20community-reported=20issues=20=E2=80=94?= =?UTF-8?q?=20pyproject=20URLs,=20dashboard=20Tkinter=20error,=201.x?= =?UTF-8?q?=E2=86=922.0=20migration=20guide,=20cyber-safeguards=20docs=20(?= =?UTF-8?q?#2481)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: repo URLs in pyproject, graceful dashboard tkinter error, 1.x->2.0 migration guide, cyber-safeguards troubleshooting Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix: catch ImportError for broken tkinter installs and update About panel repo URL Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- docs/MIGRATION-1X-TO-2.0.md | 52 +++++++++++++++++++++++++++++++++++++ docs/TROUBLESHOOTING.md | 25 ++++++++++++++++++ ecc_dashboard.py | 21 ++++++++++++--- pyproject.toml | 4 +-- 4 files changed, 97 insertions(+), 5 deletions(-) create mode 100644 docs/MIGRATION-1X-TO-2.0.md diff --git a/docs/MIGRATION-1X-TO-2.0.md b/docs/MIGRATION-1X-TO-2.0.md new file mode 100644 index 000000000..10e28717e --- /dev/null +++ b/docs/MIGRATION-1X-TO-2.0.md @@ -0,0 +1,52 @@ +# Migrating From ECC 1.x (everything-claude-code) To 2.0 + +ECC 2.0 renamed the repo (`affaan-m/everything-claude-code` → `affaan-m/ECC`) and the plugin identifier (`everything-claude-code@everything-claude-code` → `ecc@ecc`). If you installed 1.x, follow this guide to upgrade cleanly. See also the [Naming + Migration Note](../README.md#naming--migration-note) in the README. + +## TL;DR + +```bash +# 1. Install 2.0 +/plugin marketplace add https://github.com/affaan-m/ECC +/plugin install ecc@ecc + +# 2. Remove the old plugin +/plugin uninstall everything-claude-code@everything-claude-code +``` + +Then remove any leftover 1.x folders (see below) and restart the session. + +## "I now see two ECC plugins" + +Expected. `ecc@ecc` and `everything-claude-code@everything-claude-code` are treated as separate plugins by Claude Code. Uninstall the old one; keep only `ecc@ecc`. Running both duplicates skills, commands, and hook executions. + +## Leftover folders after uninstalling 1.x + +`/plugin uninstall` removes the plugin from the active list, but can leave the old directory in the Claude plugin cache and any manual copies in your home directory. + +Safe to delete after the old plugin no longer appears in `/plugin` list: + +- The old plugin folder under the Claude plugins directory (e.g. `~/.claude/plugins/...everything-claude-code...`) +- A 1.x manual install in your home folder (a cloned `everything-claude-code/` directory), **if** you are not using it as a working checkout +- Old manually-copied surfaces under `~/.claude/` (`skills/`, `commands/`, `agents/` entries that came from 1.x) — the 2.0 plugin provides current versions + +Do NOT delete `~/.claude/rules/` content you copied intentionally, or personal memory/state files. + +## Does removing 1.x affect my existing projects? + +No. ECC is a harness layer: skills, commands, agents, hooks. It does not alter your project code or git history. Everything ECC produced in your repos (commits, files, PRs) is untouched. Your next session simply loads 2.0 surfaces instead of 1.x ones. Slash-command namespaces changed from `everything-claude-code:*` to `ecc:*`. + +## One install path only + +Do not stack the plugin install with the manual installer (`install.sh` / `install.ps1` / `npx ecc-install --profile full`). Pick one path; stacking creates duplicate skills and duplicate hook runs. If you already stacked, see [Reset / Uninstall ECC](../README.md#reset--uninstall-ecc). + +## Using 2.0 across harnesses (Codex, Antigravity/agy, OpenCode, Cursor) + +2.0 is cross-harness. Use the manual installer with a target: + +```bash +npx ecc-install --profile core --target codex # Codex CLI +npx ecc-install --profile core --target opencode # OpenCode +npx ecc-install --profile core --target cursor # Cursor +``` + +Run `npx ecc consult "" --target ` to preview which components fit before installing. Harness-specific guides: [ANTIGRAVITY-GUIDE.md](./ANTIGRAVITY-GUIDE.md), [HERMES-SETUP.md](./HERMES-SETUP.md), [QWEN-GUIDE.md](./QWEN-GUIDE.md), [JOYCODE-GUIDE.md](./JOYCODE-GUIDE.md). diff --git a/docs/TROUBLESHOOTING.md b/docs/TROUBLESHOOTING.md index 34af96246..608a11d27 100644 --- a/docs/TROUBLESHOOTING.md +++ b/docs/TROUBLESHOOTING.md @@ -67,6 +67,31 @@ exit 2 - Disable unused MCP servers per project. - Compact manually at natural breakpoints instead of waiting for auto-compaction. +## ECC Dashboard Does Not Start + +**Symptoms:** `npm run dashboard` or `python3 ecc_dashboard.py` fails, often with `ModuleNotFoundError: No module named 'tkinter'`. + +**What helps:** + +- The GUI dashboard needs Tkinter, which many Python installs omit: + - Debian/Ubuntu: `sudo apt-get install python3-tk` + - Fedora: `sudo dnf install python3-tkinter` + - macOS (Homebrew): `brew install python-tk` + - Windows: re-run the python.org installer and enable "tcl/tk and IDLE" +- Or use the browser dashboard, which only needs Node: `npm run dashboard:web`, then open the printed localhost URL. +- Both commands must be run from a full clone of the ECC repo (`git clone https://github.com/affaan-m/ECC`), not from inside the Claude Code plugin directory — plugin installs do not ship `package.json` scripts. + +## Anthropic Cyber Safeguards Block Security Audits Of Your Own Code + +**Symptoms:** Running security reviews/audits (e.g. `ecc:security-reviewer`) fails with an API error citing the Usage Policy and "cyber-related safeguards", even though you are auditing your own codebase. + +**What helps:** + +- This is an upstream Anthropic model-level safeguard, not GateGuard and not an ECC block. No ECC configuration can bypass it. +- Apply to Anthropic's [Cyber Verification Program](https://claude.com/form/cyber-use-case) — the error message includes a tokenized link for your account. Approved accounts get legitimate security workflows unblocked. +- Until approved, structure prompts defensively: state up front that you own the code and the goal is remediation ("review this module I own for vulnerabilities and propose fixes"), keep scope to one module at a time, and avoid exploit-generation phrasing ("write a PoC", "craft a payload"). +- Prefer remediation-oriented skills (`security-review`, `security-scan`) over offensive framing, and run static tooling (semgrep, bandit, `npm audit`) yourself, then ask the model to interpret results. + ## Related ECC Docs - [hook-bug-workarounds.md](./hook-bug-workarounds.md) for the shorter hook/compaction/MCP recovery checklist. diff --git a/ecc_dashboard.py b/ecc_dashboard.py index efbab3bc5..ff9e932d9 100644 --- a/ecc_dashboard.py +++ b/ecc_dashboard.py @@ -4,8 +4,23 @@ ECC Dashboard - Everything Claude Code GUI Cross-platform TkInter application for managing ECC components """ -import tkinter as tk -from tkinter import ttk, scrolledtext, messagebox +import sys + +try: + import tkinter as tk + from tkinter import ttk, scrolledtext, messagebox +except ImportError: + sys.stderr.write( + "ECC Dashboard requires Tkinter, which is missing from this Python install.\n" + "Install it, then re-run `npm run dashboard`:\n" + " Debian/Ubuntu: sudo apt-get install python3-tk\n" + " Fedora: sudo dnf install python3-tkinter\n" + " macOS (brew): brew install python-tk\n" + " Windows: re-run the python.org installer and enable 'tcl/tk and IDLE'\n" + "Alternatively, use the browser dashboard (no Tkinter needed): npm run dashboard:web\n" + ) + sys.exit(1) + import os import json from pathlib import Path @@ -796,7 +811,7 @@ A cross-platform desktop application for managing and exploring ECC components. Version: 1.10.0 -Project: github.com/affaan-m/everything-claude-code""" +Project: github.com/affaan-m/ECC""" ttk.Label(about_frame, text=about_text, justify=tk.LEFT).pack(anchor=tk.W) diff --git a/pyproject.toml b/pyproject.toml index d6c1eb67c..ec6565ffd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,8 +35,8 @@ dev = [ ] [project.urls] -Homepage = "https://github.com/affaan-m/everything-claude-code" -Repository = "https://github.com/affaan-m/everything-claude-code" +Homepage = "https://github.com/affaan-m/ECC" +Repository = "https://github.com/affaan-m/ECC" [project.scripts] llm-select = "llm.cli.selector:main"