Add OBS group management feature #3

Merged
deco merged 14 commits from ui-improvements into main 2025-07-20 21:46:26 +03:00
Owner
No description provided.
deco added 1 commit 2025-07-20 07:32:58 +03:00
Add OBS group management feature and documentation
Some checks failed
Lint and Build / build (22) (pull_request) Failing after 32s
Lint and Build / build (20) (pull_request) Failing after 34s
5789986bb6
- Add group_name column to teams table for mapping teams to OBS groups
- Create API endpoints for group creation (/api/createGroup) and bulk sync (/api/syncGroups)
- Update teams UI with group status display and creation buttons
- Implement automatic group assignment when adding streams
- Add comprehensive OBS setup documentation (docs/OBS_SETUP.md)
- Fix team list spacing issue with explicit margins
- Update OBS client with group management functions
- Add database migration script for existing deployments

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 07:35:26 +03:00
Optimize CI workflow for self-hosted runners
Some checks failed
Lint and Build / build (pull_request) Failing after 1m19s
b9fa9f11b0
Remove Node.js matrix strategy since Node is pre-installed on self-hosted runners.
This reduces build time by avoiding duplicate builds.

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 07:43:49 +03:00
Fix CI build failures on self-hosted runners
Some checks failed
Lint and Build / build (pull_request) Failing after 4m19s
a16bdcc7b9
- Move bufferutil to optionalDependencies (not required for core functionality)
- Add --no-optional flag to npm ci in workflow to skip native dependencies
- This avoids needing C++ build tools on CI runners

The bufferutil package is a performance optimization for WebSocket but not required.

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 08:45:43 +03:00
Revert CI workaround now that build-essential is installed
Some checks failed
Lint and Build / build (pull_request) Failing after 1m25s
f25fbcc720
- Restore bufferutil as regular dependency for WebSocket performance
- Remove --no-optional flag from npm ci
- Self-hosted runners now have proper C++ build tools installed

This enables full native module support and optimal WebSocket performance.

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 08:51:59 +03:00
Fix dropdown z-index layering issue
Some checks failed
Lint and Build / build (pull_request) Failing after 1m23s
5bc4d30102
Increase dropdown z-index to z-[9999] to ensure it appears above
glass morphism containers and other stacked elements.

Fixes issue where team selection dropdown appears behind existing streams box.

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 08:53:16 +03:00
Fix dropdown layering with fixed positioning
Some checks failed
Lint and Build / build (pull_request) Failing after 1m13s
fd58d200f2
Replace absolute positioning with fixed positioning to break out of
stacking contexts created by glass morphism effects.

Changes:
- Use fixed positioning with calculated coordinates
- Track button position with getBoundingClientRect()
- Update click outside detection to include button reference
- Ensure dropdown appears above all other elements

This should resolve the issue where dropdowns appear behind other containers.

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 08:55:27 +03:00
Revert dropdown to simpler positioning approach
Some checks failed
Lint and Build / build (pull_request) Failing after 1m13s
882c71f2ba
Simplified dropdown positioning to fix layering issues:
- Reverted to absolute positioning with inline z-index styles
- Added explicit z-index to dropdown container in streams page
- Removed complex fixed positioning logic that was causing problems

This should resolve dropdown visibility issues while maintaining proper positioning.

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 08:58:04 +03:00
Fix dropdown z-index with CSS layer forcing
Some checks failed
Lint and Build / build (pull_request) Failing after 1m15s
c4dd8a915b
Added CSS properties to force dropdown above stacking contexts:
- z-index: 99999 \!important
- position: absolute
- transform: translateZ(0) to create new stacking context
- will-change: transform for optimization

This addresses the issue where backdrop-filter in .glass creates
stacking contexts that hide dropdowns.

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 08:59:49 +03:00
Implement React Portal for dropdown to escape stacking contexts
Some checks failed
Lint and Build / build (pull_request) Failing after 1m20s
b81da79cf2
Complete rewrite of dropdown positioning using React Portal:
- Renders dropdown in document.body via createPortal
- Uses fixed positioning with calculated coordinates
- Completely bypasses all CSS stacking contexts
- Includes proper SSR handling with mounted state
- Maintains click-outside detection for both button and menu

This should definitively solve the dropdown layering issue by rendering
the dropdown outside any parent containers with backdrop-filter.

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 09:10:35 +03:00
Fix comprehensive lint and type errors across codebase
Some checks failed
Lint and Build / build (pull_request) Failing after 1m12s
2c338fd83a
- Replace explicit 'any' types with 'unknown' or specific types
- Fix Jest DOM test setup with proper type definitions
- Resolve NODE_ENV assignment errors using Object.defineProperty
- Fix React Hook dependency warnings with useCallback patterns
- Remove unused variables and add appropriate ESLint disables
- Update documentation with groups feature information
- Ensure all tests pass with proper TypeScript compliance

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 09:14:44 +03:00
Fix ARM runner build issues by installing C++ build tools
Some checks failed
Lint and Build / build (pull_request) Failing after 27s
8459b7f701
- Add automatic detection and installation of build-essential
- Support Ubuntu/Debian, Alpine, and RHEL/CentOS ARM runners
- Resolves 'c++: No such file or directory' error for native modules
- Ensures bufferutil and other native dependencies can compile

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 20:16:15 +03:00
Add stream deletion functionality and improve UI
Some checks failed
Lint and Build / build (pull_request) Failing after 24s
3c58ccc5af
- Add delete button to each stream with confirmation modal
- Implement DELETE endpoint that removes sources from OBS before database deletion
- Fix dropdown positioning issue when scrolling by removing scroll offsets
- Change add stream form to use Twitch username instead of full URL
- Automatically calculate Twitch URL from username (https://twitch.tv/{username})
- Add username validation (4-25 chars, alphanumeric and underscores only)
- Improve "View Stream" link visibility with button styling
- Ensure streams list refreshes immediately after deletion

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco added 1 commit 2025-07-20 20:18:15 +03:00
deco added 1 commit 2025-07-20 20:21:54 +03:00
Fix GitHub Actions artifact upload for GHES compatibility
All checks were successful
Lint and Build / build (pull_request) Successful in 3m0s
2c92baa0a1
- Downgrade upload-artifact from v4 to v3 for GHES compatibility
- Remove include-hidden-files parameter (not available in v3)

GHES doesn't support the newer v4 actions yet.

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

Co-Authored-By: Claude <noreply@anthropic.com>
deco merged commit 92c05303bd into main 2025-07-20 21:46:26 +03:00
deco deleted branch ui-improvements 2025-07-20 21:46:27 +03:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: deco/obs-ss-plugin-webui#3
No description provided.