Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
610de14
chore: delete unused files
elibosley Jul 19, 2025
d7b7ebd
fix: improve CLI calls and cleanup unused functions
elibosley Jul 19, 2025
cdc9dae
refactor: enhance API key management with new methods
elibosley Jul 19, 2025
cbfe52d
refactor: simplify GraphQL code generation configuration
elibosley Jul 19, 2025
c76a362
refactor: enhance ApiReportService with structured service info and i…
elibosley Jul 19, 2025
d38959c
fix: handle errors when removing SSO users
elibosley Jul 19, 2025
254816c
refactor: update tests to use mock services and remove sensitive data
elibosley Jul 19, 2025
ef8a136
refactor: enhance API query handling with timeout and improve service…
elibosley Jul 19, 2025
a60debb
refactor: update API query timeouts and enhance CLI module imports
elibosley Jul 19, 2025
f5fe30a
fix: integration tests for API to ensure DI is working correctly
elibosley Jul 23, 2025
d9c62dc
fix: integration tests mostly functional
elibosley Jul 23, 2025
75be7e2
fix: update unit tests to resolve correctly
elibosley Jul 23, 2025
6a21a82
fix: dependency locking
elibosley Jul 23, 2025
12027d3
fix: pm2 describe
elibosley Jul 23, 2025
9fad231
fix: PM2 setup
elibosley Jul 23, 2025
977f8ef
Merge branch 'main' into fix/code-cleanup-and-cli-fixes
elibosley Jul 23, 2025
abc5658
fix: add missing plugin
elibosley Jul 23, 2025
8bb6c8e
chore: update vue-eslint-parser to version 10.2.0 and add related con…
elibosley Jul 23, 2025
52fd357
fix: timeout
elibosley Jul 23, 2025
2254718
fix: rest module
elibosley Jul 23, 2025
5f57aa5
fix: default import for PM2
elibosley Jul 23, 2025
9928716
fix: improve unraid-api command calling
elibosley Jul 23, 2025
3bfc4bc
fix: build before PM2 comamnds
elibosley Jul 23, 2025
ce96481
fix: format build
elibosley Jul 23, 2025
1f256e2
Merge branch 'main' into fix/code-cleanup-and-cli-fixes
elibosley Jul 23, 2025
f7aa475
fix: test integration
elibosley Jul 23, 2025
9b59475
fix: cleanup
elibosley Jul 23, 2025
9aab486
fix: last test timeout
elibosley Jul 23, 2025
694c7b5
fix: flaky CI tests
elibosley Jul 23, 2025
652e5ba
fix: swap to describe.skipIf
elibosley Jul 23, 2025
92fc502
feat: convert other config commands to use graphql
elibosley Jul 23, 2025
28039f7
fix: add user no restart
elibosley Jul 23, 2025
0d51200
fix: sso no restart
elibosley Jul 23, 2025
83805be
fix: sso button sizing
elibosley Jul 23, 2025
18c3a07
fix: code review feedback
elibosley Jul 24, 2025
c26244d
fix: more button cleanup
elibosley Jul 24, 2025
a4f9936
feat: modal testing tools
elibosley Jul 24, 2025
10dfc3c
fix: developer path
elibosley Jul 24, 2025
e8d2120
fix: test logincontent issue
elibosley Jul 24, 2025
1b7465c
fix: singleton web component extractor and test modal changes
elibosley Jul 24, 2025
63aaaf7
fix: welcome modal invalid typing
elibosley Jul 24, 2025
5912cd2
fix: do not instantiate webcomponents multiple times
elibosley Jul 24, 2025
c0832c6
fix: PM2 integration test cleanup
elibosley Jul 24, 2025
045d8e8
fix: welcome modal display settings
elibosley Jul 24, 2025
291d17c
fix: tests
elibosley Jul 24, 2025
1c4a0f1
fix: more progress on welcome modal fixes
elibosley Jul 24, 2025
878617b
fix: unit test issues
elibosley Jul 24, 2025
55c0d6c
feat: enhance dialog components with new props and debug logging
elibosley Jul 24, 2025
8b75eb5
refactor: remove debug logging from dialog components
elibosley Jul 24, 2025
2f68cb6
refactor: simplify welcome modal implementation and enhance activatio…
elibosley Jul 25, 2025
1b6ef1a
chore: update pnpm lockfile, add shared Tailwind CSS styles, and refa…
elibosley Jul 25, 2025
2fe5398
feat: enhance input validation for array, logs, and plugin models wit…
elibosley Jul 25, 2025
dc55e83
chore: remove unused color utility generation from main CSS
elibosley Jul 25, 2025
8acf5ef
refactor: clean up WelcomeModal by removing unused console logs and o…
elibosley Jul 25, 2025
0618cd8
refactor: remove debug rendering code from Dialog component
elibosley Jul 25, 2025
0a4f970
fix: correct variable usage in base-utilities CSS for ring shadows
elibosley Jul 25, 2025
77f51ba
fix: remove settings.local.json for claude
elibosley Jul 25, 2025
323aa3e
chore: remove unused sftp-template.json file and update CLI documenta…
elibosley Jul 25, 2025
db6db72
fix: correct class binding for responsive visibility in UserProfile c…
elibosley Jul 25, 2025
744bc26
refactor: remove health check tests from AppModule integration tests
elibosley Jul 25, 2025
fa44275
chore: remove unused VSCode settings files from project
elibosley Jul 25, 2025
f7f5227
Merge branch 'main' into fix/code-cleanup-and-cli-fixes
elibosley Jul 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 123 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
{
"permissions": {
"allow": [
"# Development Commands",
"Bash(pnpm install)",
"Bash(pnpm dev)",
"Bash(pnpm build)",
"Bash(pnpm test)",
"Bash(pnpm test:*)",
"Bash(pnpm lint)",
"Bash(pnpm lint:fix)",
"Bash(pnpm type-check)",
"Bash(pnpm codegen)",
"Bash(pnpm storybook)",
"Bash(pnpm --filter * dev)",
"Bash(pnpm --filter * build)",
"Bash(pnpm --filter * test)",
"Bash(pnpm --filter * lint)",
"Bash(pnpm --filter * codegen)",

"# Git Commands (read-only)",
"Bash(git status)",
"Bash(git diff)",
"Bash(git log)",
"Bash(git branch)",
"Bash(git remote -v)",

"# Search Commands",
"Bash(rg *)",

"# File System (read-only)",
"Bash(ls)",
"Bash(ls -la)",
"Bash(pwd)",
"Bash(find . -name)",
"Bash(find . -type)",

"# Node/NPM Commands",
"Bash(node --version)",
"Bash(pnpm --version)",
"Bash(npx --version)",

"# Environment Commands",
"Bash(echo $*)",
"Bash(which *)",

"# Process Commands",
"Bash(ps aux | grep)",
"Bash(lsof -i)",

"# Documentation Domains",
"WebFetch(domain:tailwindcss.com)",
"WebFetch(domain:github.com)",
"WebFetch(domain:reka-ui.com)",
"WebFetch(domain:nodejs.org)",
"WebFetch(domain:pnpm.io)",
"WebFetch(domain:vitejs.dev)",
"WebFetch(domain:nuxt.com)",
"WebFetch(domain:nestjs.com)",

"# IDE Integration",
"mcp__ide__getDiagnostics",

"# Browser MCP (for testing)",
"mcp__browsermcp__browser_navigate",
"mcp__browsermcp__browser_click",
"mcp__browsermcp__browser_screenshot"
],
"deny": [
"# Dangerous Commands",
"Bash(rm -rf)",
"Bash(chmod 777)",
"Bash(curl)",
"Bash(wget)",
"Bash(ssh)",
"Bash(scp)",
"Bash(sudo)",
"Bash(su)",
"Bash(pkill)",
"Bash(kill)",
"Bash(killall)",
"Bash(python)",
"Bash(python3)",
"Bash(pip)",
"Bash(npm)",
"Bash(yarn)",
"Bash(apt)",
"Bash(brew)",
"Bash(systemctl)",
"Bash(service)",
"Bash(docker)",
"Bash(docker-compose)",

"# File Modification (use Edit/Write tools instead)",
"Bash(sed)",
"Bash(awk)",
"Bash(perl)",
"Bash(echo > *)",
"Bash(echo >> *)",
"Bash(cat > *)",
"Bash(cat >> *)",
"Bash(tee)",

"# Git Write Commands (require explicit user action)",
"Bash(git add)",
"Bash(git commit)",
"Bash(git push)",
"Bash(git pull)",
"Bash(git merge)",
"Bash(git rebase)",
"Bash(git checkout)",
"Bash(git reset)",
"Bash(git clean)",

"# Package Management Write Commands",
"Bash(pnpm add)",
"Bash(pnpm remove)",
"Bash(pnpm update)",
"Bash(pnpm upgrade)"
]
},
"enableAllProjectMcpServers": false
}
45 changes: 0 additions & 45 deletions .claude/settings.local.json

This file was deleted.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -109,3 +109,6 @@ plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/dat

# Config file that changes between versions
api/dev/Unraid.net/myservers.cfg

# Claude local settings
.claude/settings.local.json
14 changes: 0 additions & 14 deletions .vscode/settings.json

This file was deleted.

22 changes: 0 additions & 22 deletions .vscode/sftp-template.json

This file was deleted.

91 changes: 91 additions & 0 deletions @tailwind-shared/base-utilities.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
@custom-variant dark (&:where(.dark, .dark *));

@layer utilities {
:host {
--tw-divide-y-reverse: 0;
--tw-border-style: solid;
--tw-font-weight: initial;
--tw-tracking: initial;
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-translate-z: 0;
--tw-rotate-x: rotateX(0);
--tw-rotate-y: rotateY(0);
--tw-rotate-z: rotateZ(0);
--tw-skew-x: skewX(0);
--tw-skew-y: skewY(0);
--tw-space-x-reverse: 0;
--tw-gradient-position: initial;
--tw-gradient-from: #0000;
--tw-gradient-via: #0000;
--tw-gradient-to: #0000;
--tw-gradient-stops: initial;
--tw-gradient-via-stops: initial;
--tw-gradient-from-position: 0%;
--tw-gradient-via-position: 50%;
--tw-gradient-to-position: 100%;
--tw-shadow: 0 0 #0000;
--tw-shadow-color: initial;
--tw-inset-shadow: 0 0 #0000;
--tw-inset-shadow-color: initial;
--tw-ring-color: initial;
--tw-ring-shadow: 0 0 #0000;
--tw-inset-ring-color: initial;
--tw-inset-ring-shadow: 0 0 #0000;
--tw-ring-inset: initial;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-offset-shadow: 0 0 #0000;
--tw-blur: initial;
--tw-brightness: initial;
--tw-contrast: initial;
--tw-grayscale: initial;
--tw-hue-rotate: initial;
--tw-invert: initial;
--tw-opacity: initial;
--tw-saturate: initial;
--tw-sepia: initial;
--tw-drop-shadow: initial;
--tw-duration: initial;
--tw-ease: initial;
}
}

@layer base {
*,
::after,
::before,
::backdrop,
::file-selector-button {
border-color: hsl(var(--border));
}

:root {
--ui-primary: var(--color-primary-500);
--ui-primary-hover: var(--color-primary-600);
--ui-primary-active: var(--color-primary-700);
}

.dark {
--ui-primary: var(--color-primary-500);
--ui-primary-hover: var(--color-primary-600);
--ui-primary-active: var(--color-primary-700);
}

body {
--color-alpha: #1c1b1b;
--color-beta: #f2f2f2;
--color-gamma: #999999;
--color-gamma-opaque: rgba(153, 153, 153, 0.5);
--color-customgradient-start: rgba(242, 242, 242, 0);
--color-customgradient-end: rgba(242, 242, 242, 0.85);
--shadow-beta: 0 25px 50px -12px rgba(242, 242, 242, 0.15);
--ring-offset-shadow: 0 0 var(--color-beta);
--ring-shadow: 0 0 var(--color-beta);
}

button:not(:disabled),
[role='button']:not(:disabled) {
cursor: pointer;
}
}
Loading
Loading