333 Commits

Author SHA1 Message Date
Mithun Gowda B
de971860b9
Update __main__.py
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-23 08:24:17 +05:30
Mithun Gowda B
b8461667de
fix: correct playwright MCP package name typo (#210)
## Summary
- Fix critical typo in playwright MCP server configuration
- Change @playright/mcp to @playwright/mcp in setup/components/mcp.py
- Prevents MCP installation failures due to package not found errors

## Test plan
- [x] Verify package name is correctly spelled as @playwright/mcp
- [x] Confirm no other playwright typos exist in codebase
- [x] Test MCP installation process works with corrected package name

🤖 Generated with [Claude Code](https://claude.ai/code)
2025-07-23 08:21:20 +05:30
Mithun Gowda B
3e3b708144
Fix installation failures on Windows systems with alias usernames (#213)
# Fix Windows user directory validation for aliased usernames

## 🐛 Problem Description

The current security validation in `setup/utils/security.py` fails when
Windows users have an alias username that doesn't match their profile
directory name. This occurs because the validation constructs the
expected path using `%USERNAME%` but compares it against the actual
profile directory path.

### Issue Details
- **Error**: `Installation must be in current user's directory (A)`
- **Root Cause**: Username alias `A` != profile directory `User` 
- **Affected Code**: `SecurityValidator.validate_installation_target()`
line ~390

### Example Scenario
```
USERNAME=A
USERPROFILE=C:\Users\User
Target Path=C:\Users\User\.claude

Expected by validation: \users\a\
Actual path contains:    \users\user\
Result:  Validation fails
```

## 🔧 Proposed Solution

Replace the username-based path construction with actual home directory
comparison

## 📋Changes Made
File: `setup/utils/security.py`
Lines ~385-395 in `validate_installation_target()` method:**

##  Benefits

1. **Fixes alias username issue**: Works with any username/profile
directory combination
2. **More accurate validation**: Uses actual filesystem paths instead of
environment variables
3. **Maintains security**: Still prevents installation outside user
directory
4. **Better error messages**: Shows actual username when available
5. **Cross-platform compatibility**: `Path.home()` works on all
platforms

## 🧪 Test Cases

### Test Case 1: Alias Username (Current Bug)
```python
# Environment
USERNAME=A
USERPROFILE=C:\Users\User

# Test
target = Path("C:/Users/User/.claude")
result, errors = SecurityValidator.validate_installation_target(target)

# (currently fails)
assert result == True, "Expected success"
```

### Test Case 2: Matching Username (Currently Works)
```python
# Environment  
USERNAME=User
USERPROFILE=C:\Users\User

# Test
target = Path("C:/Users/User/.claude")  
result, errors = SecurityValidator.validate_installation_target(target)

assert result == True, "Expected success"
```

### Test Case 3: Outside User Directory (Should Fail)
```python
# Test
target = Path("C:/Users/OtherUser/.claude")
result, errors = SecurityValidator.validate_installation_target(target)

# Expected: Failure
assert result == False
assert "current user's directory" in errors[0]
```
## Related Issues
#190
2025-07-23 08:09:51 +05:30
SonSanghee
58a4710e8a refactor: remove duplicate import sys in __main__.py
The sys module was imported twice - once at line 14 with other standard
imports and again at line 22. The second import is redundant since sys
is already available from the first import.
2025-07-23 11:19:51 +09:00
Andrey Korzh
d075a67de0 Fix installation failures on Windows systems with alias usernames 2025-07-22 23:12:32 +02:00
ashigirl96
572a11d82f fix: correct playwright MCP package name typo
Fix typo in playwright MCP server configuration where @playright/mcp
was incorrectly specified instead of @playwright/mcp, which would
cause installation failures.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 01:41:34 +09:00
Mithun Gowda B
0b2c9c6c7a
refactor: fix installation process (#209)
# summary
* this pr refactors superclaude’s install system to boost
maintainability, cut duplicate code, and most important fixes a bunch of
issues that ppl are having when trying to install v3

Fixes: #172 #182 #189 #193 #201 #202 #206 #207

## key changes:

### architecture improvements

* moved shared logic to a base component class to reduce duplication.
* shifted config, file, and settings managers to a managers/ module for
better organization.
* streamlined installer logic by removing duplicate code patterns.

### component system refactoring

* unified install flow with custom hooks (_install(), _post_install()).
* components now auto-discover files, no hardcoding (sub)path names.
* centralized error handling and logging.
* security validation moved to base class for consistency.

### code organization

* simplified component files by leveraging base class logic.
* eliminated repetitive validation, install, and file management code.
* cleaned up imports after module restructure.

### loc impact

* 554 insertions, 863 deletions.
* net: 309 lines cut, with added functionality.


## next steps
### e2e tests

* test migration from v2: use an invalid `.claude/settings.json` with
superclaude config (i.e fields like `framework`, `components`) and
verify it migrates to the new metadata json.

### cleanup and chores

* there's still bits of dead code from the initial v3 commit that i've
noticed while refactoring this shit
* update documentation
* add guardrails (maybe use github actions?) so we can't push stuff that
breaks users envs onto master
2025-07-22 19:27:55 +05:30
Andrew Low
379908a797 refactor: simplify and remove duplicate code across operations files
* Consolidate installation check logic using SettingsManager methods
* Simplify component retrieval by delegating to SettingsManager
* Add 'all' components shorthand support in installer
2025-07-22 18:37:48 +08:00
Andrew Low
f7311bf480 refactor: simplify Component architecture and move shared logic to base class
* Component Base Class:
  * Add constructor parameter for component subdirectory
  * Move file discovery utilities to base class to avoid repetition in subclasses
  * Same for validate_prerequisites, get_files_to_install, get_settings_modifications methods
  * Split install method into _install and _post_install for better separation of concerns
  * Add error handling wrapper around _install method

* All Component Subclasses:
  * Remove duplicate code now handled by base class
  * Use shared file discovery and installation logic
  * Simplify metadata updates using base class methods
  * Leverage base class file handling and validation

* Hooks Component:
  * Fix the logic for handling both placeholder and actual hooks scenarios

* MCP Component:
  * Fix npm package names and installation commands
2025-07-22 18:36:42 +08:00
Andrew Low
fff47ec1b7 refactor: remove unused code and simplify installer
* Remove unused json import
* Remove unused settings registry update methods (_update_settings_registry, _remove_from_settings_registry)
  * the components themselves are responsible for registering in metadata/settings file
* Remove uninstall_component method
  * the components themselves are resonsible for their uninstall logic
* Simplify post-install validation logic
2025-07-22 18:26:14 +08:00
Andrew Low
b8e5e3f6f5 refactor: update imports after moving managers to separate module
* Remove manager class imports from core/__init__.py and update validator.py to import ConfigManager from new managers module location.
2025-07-22 18:18:19 +08:00
Andrew Low
2db7c80eb1 refactor: move manager classes from core to managers module
* Move ConfigManager, SettingsManager, and FileManager from setup/core to setup/managers with new init.py for cleaner organization.
* Update SettingsManager with enhanced metadata handling methods and installation detection utilities.
2025-07-22 18:11:18 +08:00
Mithun Gowda B
df94650bef
Update backup.py
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-21 11:44:10 +05:30
Mithun Gowda B
07e4028402
Update update.py
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-21 11:43:12 +05:30
Mithun Gowda B
07ca0044d0
Update uninstall.py
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-21 11:42:02 +05:30
Mithun Gowda B
3a8e245a91
Update install.py
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-21 11:34:00 +05:30
Mithun Gowda B
8c54fc38d8
Update __main__.py
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-20 20:11:27 +05:30
Mithun Gowda B
c19a7ce898
fix:non-breaking space (U+00A0) installation error (#197)
While installing on my windows machine, I was getting error
```
python -m SuperClaude install
Traceback (most recent call last):
  File "<frozen runpy>", line 189, in _run_module_as_main
  File "<frozen runpy>", line 148, in _get_module_details
  File "<frozen runpy>", line 159, in _get_module_details
  File "<frozen importlib._bootstrap_external>", line 1160, in get_code
  File "<frozen importlib._bootstrap_external>", line 1090, in source_to_code
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "D:\prac_repo\AI\SuperClaude\SuperClaude\__main__.py", line 206
     
    ^
SyntaxError: invalid non-printable character U+00A0
```
2025-07-20 19:54:53 +05:30
shashankvivek
5e19d21262 fix:non-breaking space (U+00A0) installation error 2025-07-20 15:12:58 +02:00
Mithun Gowda B
fff298b4cd
Update __main__.py
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-20 11:27:37 +05:30
Mithun Gowda B
4daa814b80
Update README.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-20 09:39:20 +05:30
Mithun Gowda B
4fc5ce7c3f
Update README.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-20 09:38:21 +05:30
Mithun Gowda B
e09966ae9e
Update README.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-20 09:36:11 +05:30
Mithun Gowda B
7e235d465b
🚀 Fix: Ensure settings.json is created after install (#185)
* Fixed installer.py

Fixed the settings.json missing issue

* Fixed new upload feature  Co-authored-by: mithun50 <mithungowda.b7411@gmail.com>

Fixed new upload feature  Co-authored-by: mithun50 <mithungowda.b7411@gmail.com>
2025-07-18 22:10:17 +02:00
Prashanth681
b70f019253
Updated installation-guide.md (#180)
Update installation-guide.md

Signed-off-by: Prashanth681 <rprashanth681@gmail.com>
2025-07-18 09:06:36 +02:00
Joevidev
c05ce38159
feat: Add uv for faster and more efficient package management (#156)
* refactor: pyproject.toml to use Hatchling as the build backend and update project metadata

- Changed build backend from setuptools to hatchling.
- Updated project name, description, authors, and dependencies.
- Added project URLs and scripts section for SuperClaude.
- Configured versioning and build targets for wheel and sdist.

* feat: Update installation instructions in README.md to reflect new package management commands using 'uv' instead of 'pip'.

* feat: Add uv.lock file to manage package dependencies and versions for SuperClaude

* fix: Update library usage guidelines in RULES.md to reference pyproject.toml instead of requirements.txt
2025-07-17 12:45:40 +02:00
atlonxp
bc6c53f78d
Meta-Orchestration Command (#163)
Add new command to SuperClaude
2025-07-17 12:33:20 +02:00
Jari Van Melckebeke
89f54343e7
fix table of contents links (#170) 2025-07-17 12:30:25 +02:00
Mithun Gowda B
a778efaf14
Update README.md
Co-authored-by: Mithun Gowda B <mithungowda.b7411@gmail.com>

Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-17 14:18:47 +05:30
Mithun Gowda B
0d05e2a05d
Update setup.py
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-17 13:31:17 +05:30
Mithun Gowda B
720ebb0090
Update installation-guide.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-17 12:57:44 +05:30
Mithun Gowda B
f81f82e898
Update README.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-17 12:55:55 +05:30
Mithun Gowda B
664fabe4fa
Update README.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-17 12:24:28 +05:30
Mithun Gowda B
a9ffe19834
Update installation-guide.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-17 12:20:19 +05:30
Mithun Gowda B
63fbd634de
Update README.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-17 11:50:48 +05:30
Mithun Gowda B
0474c1d9e2
Update README.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-17 11:46:23 +05:30
Mithun Gowda B
20de3d3bad
Update README.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-17 11:39:18 +05:30
Mithun Gowda B
77ed059b05
Update README.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-16 13:17:39 +05:30
Jacob
decfd2be6f
Improve README installation instructions for clarity (#150)
docs: revise installation instructions in README.md to clarify the two-step process for SuperClaude setup, including detailed steps for package installation and running the installer.
2025-07-16 09:38:57 +02:00
Mithun Gowda B
67585af9a5
Update __main__.py
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-16 11:31:05 +05:30
Mithun Gowda B
1af243bffa
Update ui.py
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-16 11:11:13 +05:30
NomenAK
b930968c18 Merge branch 'SuperClaude-v3-pypi' 2025-07-15 21:06:05 +02:00
NomenAK
6c1b59e113 Merge remote-tracking branch 'origin/SuperClaude-v3-pypi-backup' into SuperClaude-v3-pypi 2025-07-15 21:05:57 +02:00
NomenAK
bdf653e3de Merge remote-tracking branch 'origin/SuperClaude-v3-pypi' 2025-07-15 21:04:57 +02:00
Mithun Gowda B
3d37b1b0b5
Added PyPi Badge to README.md for branch master (#144)
* Update README.md

* Update README.md

* Update README.md

* Update SuperClaude.py

* Update README.md
2025-07-15 19:04:53 +02:00
Mithun Gowda B
e70061bf03
Update README.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-15 20:38:47 +05:30
Mithun Gowda B
8fc2b992d6
Update README.md
Signed-off-by: Mithun Gowda B <mithungowda.b7411@gmail.com>
2025-07-15 20:18:35 +05:30
NomenAK
53e98c2e49
Delete .github/workflows directory
Signed-off-by: NomenAK <39598727+NomenAK@users.noreply.github.com>
2025-07-15 16:46:35 +02:00
NomenAK
2abc98770a
Delete .github/workflows directory
Signed-off-by: NomenAK <39598727+NomenAK@users.noreply.github.com>
2025-07-15 16:46:23 +02:00
NomenAK
2fcb88aa9b
Delete .github/workflows/claude-code-review.yml
Signed-off-by: NomenAK <39598727+NomenAK@users.noreply.github.com>
2025-07-15 16:46:05 +02:00