1740 Commits

Author SHA1 Message Date
CSantosM
c5bca6e133 backend: Enhances test reliability with active waiting
Replaces arbitrary `sleep()` calls in integration tests with explicit `wait-helpers`. These new helpers actively poll for specific conditions (e.g., room deletion, participant connection, recording status) directly from the database or LiveKit, rather than relying on fixed delays. This significantly reduces test flakiness and improves the accuracy of assertions.

Extracts LiveKit CLI interaction helpers (`joinFakeParticipant`, `disconnectFakeParticipants`, `updateParticipantMetadata`) into a dedicated `livekit-cli-helpers.ts` file for better organization and separation of concerns. Updates numerous integration tests to utilize the new waiting and LiveKit CLI helpers.
2026-03-06 16:38:12 +01:00
CSantosM
467ebf6d49 backend: add ASSISTANT_STATE_LOCK_TTL to internal config and update AiAssistantService to use it 2026-03-06 16:33:19 +01:00
juancarmore
8a8951c120 frontend: update participant moderation controls and badge handling in meeting component
Refactors participant moderation and badge display logic

Unifies participant badge handling to support multiple roles (owner, admin, moderator) and updates control visibility based on user permissions. Simplifies template context, centralizes moderation action checks, and refines role change logic for better maintainability and scalability of participant controls.
2026-03-06 11:44:39 +01:00
juancarmore
f70bd04497 Refactors participant role updates to use moderation actions
Unifies backend and frontend handling of participant role changes by shifting from direct role assignment to moderation actions and UI badges. Simplifies signal payloads, removes token/secret mechanics, and clarifies notifications for moderator promotions and removals. Improves maintainability and aligns with updated moderation model.
2026-03-06 11:41:15 +01:00
juancarmore
1223e3d53b feat: enhance room member token handling with participant metadata and moderation actions
Enhances token refresh with participant metadata support

Improves room member token generation to allow rebuilding token
metadata from current participant state in LiveKit, enabling
accurate permission and role handling after in-meeting upgrades
or downgrades. Adds support for in-meeting moderation actions
(promote/demote moderator) and updates token and context logic
to reflect dynamic role and permission changes for participants.
2026-03-06 11:39:28 +01:00
juancarmore
eca3acbcf0 backend: refactor assistant creation and cancellation to use participant identity from session service 2026-03-05 11:03:32 +01:00
juancarmore
9cf48fc49e backend: enhance room member token info handling to include participant identity in request session service 2026-03-05 11:03:03 +01:00
juancarmore
2453ce2760 frontend: refactor captions button logic to improve state management and prevent concurrent toggles 2026-03-04 18:44:30 +01:00
juancarmore
7607f134a0 Merge branch 'main' into feat/room-members-users 2026-03-04 18:17:05 +01:00
CSantosM
d025a35e15 frontend: update participant role notification handling in MeetingEventHandlerService 2026-03-04 16:05:13 +01:00
CSantosM
1761517afc backend: update '@livekit/track-processors' to version 0.7.2 2026-03-04 13:59:18 +01:00
juancarmore
9278260837 frontend: improve recording action buttons with consistent attributes and structure 2026-03-04 13:52:35 +01:00
CSantosM
53f62708ce backend(test): increase sleep duration for webhook processing in expired rooms GC test 2026-03-04 12:56:42 +01:00
CSantosM
ba0d0b10c4 backend: Enhances LiveKit agent robustness
LiveKit agent service calls now gracefully handle errors instead of throwing exceptions.

`listAgents` and `getAgent` return sensible defaults (empty array, undefined) on failure, preventing disruption to calling services. `stopAgent` now logs errors during deletion without halting the process.

An early exit condition is also added in the AI assistant service to prevent unnecessary processing if no agents are found, further improving resilience.
2026-03-04 12:33:36 +01:00
CSantosM
8953e9891c backend(test): Extends test sleep for webhook processing
Increases the sleep duration in room deletion test helpers from 1 second to 5 seconds. This ensures that webhooks triggered by room deletion have enough time to process before test execution continues, addressing intermittent test failures caused by premature assertions. This is a temporary measure to improve test stability.
2026-03-04 12:28:35 +01:00
CSantosM
02703b1f83 frontend: enhance captions button functionality and integrate AI assistant for live captions 2026-03-03 19:13:42 +01:00
CSantosM
c808e98820 backend(ai-assistant): implement AI assistant creation and management
- Add OpenAPI components for creating and responding to AI assistant requests.
- Implement AI assistant service for managing live captions capability.
- Create routes and controllers for AI assistant operations (create and cancel).
- Introduce request validation middleware for AI assistant requests.
- Update Redis helper to manage AI assistant locks.
- Integrate AI assistant cleanup in webhook service.
- Enhance LiveKit service to manage agent dispatch for AI assistants.
- Update token service to remove unnecessary parameters related to captions.
- Add typings for AI assistant requests and responses.
2026-03-03 18:43:35 +01:00
CSantosM
5045815a1c frontend: Redesigns Room Features wizard step UI
Overhauls the room configuration step, now titled "Room Features", to improve clarity and organization.

Transitions from a card-based layout to a categorized, list-style presentation, grouping features under sections like 'Security', 'Communication', and 'Experience'. Updates the HTML template and SCSS styling to reflect this new structure and removes the unused `MatCardModule`.

Adjusts the wizard state service to ensure the "Room Features" step is the initial active step when editing a room.
2026-03-03 14:36:40 +01:00
CSantosM
a81b6edf41 frontend: remove flex properties from step content in room access component 2026-03-03 14:22:01 +01:00
CSantosM
b775c37a86 frontend: add anonymous recording access toggle in recording configuration step 2026-03-03 14:05:32 +01:00
CSantosM
a829721ba5 frontend: Introduces Room Access step in room wizard
Replaces the 'Role Permissions' step with a comprehensive 'Room Access' step, centralizing all related configurations.

This new step allows users to define:
- General room access policies (anonymous moderator/speaker, registered users).
- Detailed role-based permissions for Moderator and Speaker.
- Specific room members to be added with their roles during room creation.

Pending members are now collected within the wizard and subsequently created using the RoomMemberService after the room is successfully established, including robust error handling for member creation.
2026-03-03 14:05:05 +01:00
juancarmore
e05dfdf001 backend: enhance room member token generation with support for recording access and update related tests 2026-03-03 10:02:39 +01:00
CSantosM
f49fd863b7 frontend: implement room deletion service with confirmation dialog and error handling 2026-03-02 18:44:24 +01:00
CSantosM
5b9fa3149c frontend: add room members list component with filtering and selection features
- Implemented RoomMembersListComponent for displaying room members in a Material Design table.
- Added SCSS styles for the room members list and its associated elements.
- Created AddRoomMemberComponent for adding new members to a room with role and permission configuration.
- Integrated user search functionality with autocomplete in the AddRoomMemberComponent.
- Updated RoomDetailComponent to utilize the new RoomMembersListComponent for displaying members.
- Defined routing for adding room members.
- Enhanced overall user experience with loading states and error handling.
2026-03-02 18:44:24 +01:00
CSantosM
fe71d07242 frontend: update recording detail layout and enhance video player integration 2026-03-02 18:44:24 +01:00
juancarmore
63d72c994b refactor: rename anonymous room access to access across all codebase
- Updated the MeetRoom interface to replace anonymous access configuration with a unified access configuration.
- Refactored RoomService to handle access configuration for both anonymous and registered users.
- Modified tests to reflect changes in access configuration structure.
- Updated frontend components to use the new access configuration for meeting URLs and permissions.
- Ensured backward compatibility by adjusting API endpoints and request/response types.
2026-03-02 17:37:25 +01:00
CSantosM
56d5126acb frontend: update @livekit/track-processors dependency to version 0.7.2 2026-03-02 17:15:29 +01:00
juancarmore
c563860758 Improve copilot instructions 2026-03-02 12:24:45 +01:00
juancarmore
43181bd068 backend: refactor global configuration methods to support partial updates and improve field retrieval 2026-02-27 10:34:46 +01:00
juancarmore
340d53066c backend: enhance user repository and service to support partial updates and selective field retrieval 2026-02-27 09:39:26 +01:00
juancarmore
e0d811237b backend: enhance room member repository and service to support partial updates and selective field retrieval 2026-02-27 09:16:02 +01:00
juancarmore
db279faee4 backend: update deleteRecording method to return void and improve hasRoomRecordings query efficiency 2026-02-26 22:07:37 +01:00
juancarmore
59c464387b backend: add partial update method for recordings and refactor update logic 2026-02-26 21:57:59 +01:00
juancarmore
54bb06adfd backend: implement atomic update paths for recording and room repositories 2026-02-26 19:51:42 +01:00
juancarmore
2572fd3960 backend: update room retrieval to use selective fields for efficiency 2026-02-26 18:37:48 +01:00
juancarmore
37023fe077 backend: refactor code to use partial updates for room properties 2026-02-26 17:50:46 +01:00
juancarmore
3a8e5e21be backend: update room repository methods for better handling of partial room data 2026-02-26 17:49:15 +01:00
juancarmore
eaf021f1dc test: add unit tests for MeetRecordingInfo, MeetRoom, and MeetRoomMember fields coverage 2026-02-26 14:11:16 +01:00
juancarmore
22a42e4c63 test: add unit tests for document-only fields in various schemas 2026-02-26 14:10:56 +01:00
juancarmore
8e5c07710b backend: add document-only fields and types for various schemas and repositories 2026-02-26 14:10:42 +01:00
juancarmore
09ac408f32 backend: enhance replaceOne method for improved addition of document only fields to replacement domain object 2026-02-26 14:10:07 +01:00
CSantosM
10a9982a57 frontend: update label and placeholder for name input in create user form 2026-02-25 18:18:36 +01:00
CSantosM
6592dac7fc frontend: update navigation logic for room cancellation and updates in RoomWizardComponent 2026-02-25 15:28:15 +01:00
juancarmore
b2380ec12b fix: replace update method with replace for room data consistency in setupTestUsersForRoom 2026-02-24 20:42:20 +01:00
juancarmore
78edf51842 test: replace update method with replace for room status consistency in GC tests 2026-02-24 20:39:19 +01:00
juancarmore
cae5a58568 backend: integrate schema versioning into create methods across repositories 2026-02-24 20:17:14 +01:00
juancarmore
cdbfd8c968 backend: update mongoose to version 9.2.2 and adjust query filter types in repository and migration service 2026-02-24 20:16:40 +01:00
juancarmore
8ac2631e25 backend: replace update methods with replaceOne for consistency across repositories 2026-02-24 19:50:39 +01:00
juancarmore
161f42f83c backend: enhance document update and replacement methods in BaseRepository with partial updates and safety checks 2026-02-24 19:49:52 +01:00
CSantosM
d51c5ae0c3 frontend: enhance API key management section with documentation link and styling improvements 2026-02-24 16:46:25 +01:00