100 Commits
Author SHA1 Message Date
MichelleandClaude Opus 4.8 51b42cfee5 feat: add AI summary / transcript integration for recordings
Build & Push Docker Image / build (push) Successful in 4m17s
Build & Push Docker Image / build (release) Successful in 3m57s
Ported from greenlight-tm: when TRANSCRIPTION_API_URL and
TRANSCRIPTION_API_KEY are set in the .env and the per-room
"AI summary / transcript" setting is enabled, Redlight POSTs to
${TRANSCRIPTION_API_URL}/prompt (header X-Api-Key) as soon as the
"video" format of a recording becomes available.

- transcription.js: service with env gating, timeout and logging
- bbb.js: pass meta_bbb-recording-ready-url on meeting create when the
  room has the setting enabled
- recordings.js: unauthenticated /recording-ready callback that
  verifies BBB's signed_parameters JWT (HS256, shared secret), caches
  the recording and requests the transcription once per recording
  (deduped via transcript_requested_at)
- rooms: new recording_transcript column, accepted on create/update
- branding endpoint exposes transcriptionEnabled so the UI only shows
  the toggle when the server is configured
- RoomDetail: toggle under "Allow recording" (disabled when recording
  is off), de/en i18n
- chore: bump version to 2.4.0

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 11:56:45 +02:00
MichelleandClaude Opus 4.8 dffb68efe5 fix: move resetPassword email locales to server i18n
Build & Push Docker Image / build (push) Successful in 4m9s
The password reset email is rendered server-side via emaili18n.js,
which loads translations from server/i18n. The email.resetPassword
keys only existed in the frontend src/i18n locales, so t() returned
the raw key paths in the sent email. Move the EN/DE block to the
server locales and drop the unused copy from the frontend.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 22:28:37 +02:00
MichelleandClaude Opus 4.8 db82cd944f feat: add password reset ("forgot password") flow
Build & Push Docker Image / build (push) Successful in 4m12s
Add a self-service password reset to the login flow:

- Login page now shows a "Passwort vergessen?" link under the password field
- New /forgot-password page requests a reset email by address
- New /reset-password page sets a new password from an emailed token
- Backend: POST /auth/forgot-password and /auth/reset-password with
  dedicated rate limiters; tokens stored as SHA-256 hashes with a 1h expiry
- Generic responses avoid leaking account existence or SMTP/SSO state;
  SSO-only accounts are skipped
- New sendPasswordResetEmail mailer + email/auth i18n keys (de + en)
- DB migration: reset_token_hash, reset_token_expires, reset_requested_at

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 23:40:11 +02:00
Michelle 2f65e53a24 fix: wrap screenshots in collapsible details section in README
Build & Push Docker Image / build (push) Successful in 4m6s
2026-06-21 22:17:58 +02:00
Michelle 1518645145 Merge branch 'main' of https://git.scrunkly.cat/Michelle/redlight
Build & Push Docker Image / build (push) Successful in 4m13s
2026-06-21 22:16:43 +02:00
Michelle 64a1ba2548 Add screenshots to README 2026-06-21 22:16:42 +02:00
MichelleandClaude Opus 4.8 03098eaf2b chore: update version to 2.3.0
Build & Push Docker Image / build (push) Successful in 4m5s
Build & Push Docker Image / build (release) Successful in 4m13s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 10:18:48 +02:00
MichelleandClaude Opus 4.8 7dd834cd35 Harden server security, rework landing page and refresh branding
Build & Push Docker Image / build (push) Successful in 4m3s
Security:
- rooms: rate-limit /invite-email (SMTP spam relay), validate share
  target user exists, guard timingSafeEqual against length mismatch
  in the presentation route (500 -> 403)
- analytics: verify callback token before parsing the 5mb body so
  unauthenticated callers cannot buffer large payloads
- caldav: rate-limit failed Basic-Auth attempts (token brute force),
  lowercase email lookup, case-insensitive principal check
- auth: fall back to the in-memory rate-limit store when Redis is
  unavailable; previously every rate-limited endpoint (incl. login)
  returned 500 when the Redis connection was down

UI/copy:
- Home: factual hero copy and feature cards (6 instead of 9), fix
  double-rendered feature icon, remove fake stats row and pill badge;
  keep the background gradient and card layout
- i18n: consistent informal tone, drop trailing exclamation marks
  from status toasts, remove emoji from transactional emails
- new favicon (logo.svg), restore theme-based default brand logo

Chore:
- gitignore SQLite WAL/SHM files

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 10:14:36 +02:00
Michelle 4621010bd7 feat: add dark mode support for meeting join and start processes
Build & Push Docker Image / build (push) Successful in 4m14s
2026-06-11 09:27:34 +02:00
Michelle fbbcd79719 fix: prevent focus loss by using ref for onClose in Modal component
Build & Push Docker Image / build (push) Successful in 4m6s
Build & Push Docker Image / build (release) Successful in 4m12s
2026-06-03 10:40:38 +02:00
Michelle 10f0ffd2e5 chore: update version to 2.2.0
Build & Push Docker Image / build (push) Successful in 4m2s
Build & Push Docker Image / build (release) Successful in 4m6s
2026-06-02 09:21:42 +02:00
Michelle 4aea069295 fix: resolve server bugs and unify app-name handling
Build & Push Docker Image / build (push) Successful in 4m6s
Bug fixes:
- bbb.js: replace undefined t('defaultWelcome') call that threw a
  ReferenceError when a room had an empty welcome message, breaking
  meeting creation. Default welcome and the guest-invite hint are now
  localised via the i18n system (new "bbb" namespace in de/en).
- auth.js: app name was read from the never-written 'branding' settings
  key, so custom names never appeared in verification emails or the TOTP
  issuer. Now resolved through a shared getAppName() helper.
- auth.js: lowercase the email in the registration duplicate check so
  case-variant duplicates return a clean 409 instead of a 500 (UNIQUE
  violation).
- federation.js: select the user's "language" column so federation
  invite emails respect the recipient's language instead of always
  defaulting to English.
- calendar.js: a set reminder could not be cleared. COALESCE treated an
  explicit reminder_minutes: null as "keep existing"; use a direct
  assignment that distinguishes "omitted" (keep) from "null" (clear).
- index.js / analytics.js: exclude the BBB learning-analytics callback
  from the global 100kb body limit and give it its own 5mb limit, since
  analytics payloads for large meetings can be several MB.

Cleanup:
- Add server/config/appName.js as the single source of truth for the
  app name (admin setting -> APP_NAME env -> 'Redlight') and use it in
  auth, admin, rooms, calendar and federation, replacing the previous
  mix of wrong DB key, direct app_name reads and bare process.env reads.
- Localise the BBB default welcome message in the room owner's language.
- Remove two unused safeAppName variables in mailer.js.
2026-06-02 09:19:21 +02:00
Michelle 9fc51bdfc5 chore: update version to 2.1.4
Build & Push Docker Image / build (push) Has been cancelled
Build & Push Docker Image / build (release) Successful in 4m14s
2026-05-28 10:14:41 +02:00
Michelle 7f48685717 Enhance accessibility and improve form semantics across multiple pages
Build & Push Docker Image / build (push) Successful in 4m4s
- Added `htmlFor` attributes to labels for better accessibility in Calendar, Dashboard, GuestJoin, Login, Register, RoomDetail, and Settings pages.
- Included `aria-hidden` attributes for icons to improve screen reader experience.
- Set `autoComplete` attributes for input fields to enhance user experience during form filling.
- Implemented `role` and `aria` attributes for radio groups and buttons to improve accessibility compliance.
2026-05-28 10:07:19 +02:00
Michelle cff5398ebd fix: restore pointer cursor for buttons in index.css
Build & Push Docker Image / build (push) Successful in 4m10s
2026-05-28 09:22:50 +02:00
Michelle 109e75d976 fix: add .claude/ to .gitignore and update cursor styles for button utilities in index.css
Build & Push Docker Image / build (push) Failing after 19m25s
2026-05-28 09:08:17 +02:00
Michelle 24024cd1dd chore: update version to 2.1.3 in package.json and federation.js
Build & Push Docker Image / build (push) Successful in 4m18s
Build & Push Docker Image / build (release) Successful in 4m18s
2026-05-18 13:17:02 +02:00
Michelle 4028e913c4 refactor: update class names for consistency and improve styling
Build & Push Docker Image / build (push) Successful in 4m21s
- Changed `flex-shrink-0` to `shrink-0` in multiple components for better consistency.
- Updated button and checkbox classes to use `rounded-sm` for a more uniform appearance.
- Adjusted backdrop blur classes for modals to `backdrop-blur-xs` for a subtler effect.
- Removed unused Tailwind CSS configuration file.
2026-05-18 13:07:26 +02:00
Michelle aba7819f12 chore: update dependencies and versions in package-lock.json
Build & Push Docker Image / build (push) Successful in 4m5s
2026-04-25 20:34:23 +02:00
Michelle 45fdbe4883 feat: enforce maximum password length of 64 characters in user registration and password update
Build & Push Docker Image / build (push) Successful in 4m19s
2026-04-25 20:30:29 +02:00
Michelle de696d422a fix: anyone_can_start not working as Admin
Build & Push Docker Image / build (push) Successful in 4m24s
2026-04-23 09:32:55 +02:00
Michelle 995d6eabf7 feat: remove unnecessary footer text from home page
Build & Push Docker Image / build (push) Successful in 4m19s
2026-04-09 14:01:01 +02:00
Michelle 9ee4f84d84 feat: update home page features with federation, calendar, notifications, OAuth, and analytics support
Build & Push Docker Image / build (push) Successful in 4m24s
2026-04-09 13:52:33 +02:00
Michelle df1aa20e45 feat: add recordings table and implement fetch and sync functionality for recordings
Build & Push Docker Image / build (push) Successful in 4m18s
2026-04-08 00:10:25 +02:00
Michelle e0ce354eda feat: improve email invitation label for clarity and add navigation on guest join
Build & Push Docker Image / build (push) Successful in 4m19s
2026-04-02 01:03:18 +02:00
Michelle 1690a74c19 feat: add email invitation functionality for guests with support for multiple addresses
Build & Push Docker Image / build (push) Successful in 4m21s
2026-04-02 00:54:57 +02:00
Michelle 61585d8c63 feat: add functionality to display all rooms with search and modal support in admin panel
Build & Push Docker Image / build (push) Successful in 4m17s
2026-04-01 12:05:51 +02:00
Michelle d04793148a feat: add room management functionality for admins with listing and deletion options
Build & Push Docker Image / build (push) Successful in 4m12s
2026-04-01 11:54:10 +02:00
Michelle 9bf4228d04 fix: update presentation display to show filename instead of name
Build & Push Docker Image / build (push) Successful in 4m21s
2026-04-01 11:34:48 +02:00
Michelle c058ba3bf1 fix: update presentation URL structure for token protection
Build & Push Docker Image / build (push) Successful in 4m13s
2026-04-01 09:43:32 +02:00
Michelle b3b559e164 feat: implement token-based access for presentation files and add serving endpoint
Build & Push Docker Image / build (push) Successful in 4m43s
2026-04-01 08:52:43 +02:00
Michelle 0db9227c20 chore: update package-lock.json with dependency version bumps
Build & Push Docker Image / build (push) Successful in 4m18s
2026-03-31 13:11:56 +02:00
Michelle 30f106a7ea fix: guest join doesn't add avatar when logged in
Build & Push Docker Image / build (push) Successful in 4m27s
2026-03-31 09:36:13 +02:00
Michelle 8cbe28f915 chore: bump version to 2.1.2 and update user name handling in GuestJoin component
Build & Push Docker Image / build (push) Successful in 4m28s
Build & Push Docker Image / build (release) Successful in 4m20s
2026-03-26 09:40:41 +01:00
Michelle 5472e190d9 chore: Bump version to 2.1.1
Build & Push Docker Image / build (push) Successful in 4m19s
Build & Push Docker Image / build (release) Successful in 4m12s
2026-03-25 11:34:38 +01:00
Michelle 45be976de1 Don't show guestWaitingMessage when "anyone_can_start" is set
Build & Push Docker Image / build (push) Successful in 4m14s
2026-03-25 10:13:02 +01:00
Michelle 6dcb1e959b feat: allow guests to start a room if anyone_can_start is enabled
Build & Push Docker Image / build (push) Successful in 4m58s
2026-03-25 09:55:47 +01:00
Michelle bb2d179871 style: Update button styling and icon size in RecordingList component for improved UI
Build & Push Docker Image / build (push) Successful in 4m29s
2026-03-24 11:28:15 +01:00
Michelle 82b7d060ba Merge remote-tracking branch 'refs/remotes/origin/main'
Build & Push Docker Image / build (push) Successful in 4m34s
2026-03-16 13:32:45 +01:00
Michelle 0836436fe7 feat: Implement Two-Factor Authentication (2FA) for enhanced user account security. 2026-03-16 13:28:43 +01:00
Michelle 99d3b22f62 chore: update bcryptjs and better-sqlite3 dependencies; upgrade dotenv version
Build & Push Docker Image / build (release) Successful in 4m5s
Build & Push Docker Image / build (push) Successful in 3m59s
2026-03-13 23:00:38 +01:00
Michelle eed5d98ccc chore: update dependencies for Vite and React plugin
Build & Push Docker Image / build (push) Successful in 4m9s
2026-03-13 22:48:08 +01:00
Michelle 6513fdee41 fix(Dockerfile): update base image and streamline build stages
Build & Push Docker Image / build (push) Successful in 4m17s
2026-03-13 22:41:18 +01:00
Michelle cae84754e4 feat: add analytics visibility settings and export functionality
Build & Push Docker Image / build (push) Successful in 5m11s
- Added `analytics_visibility` column to `rooms` table to control who can view analytics data.
- Updated analytics routes to check visibility settings before allowing access and export of analytics data.
- Implemented export functionality for analytics in CSV, XLSX, and PDF formats.
- Enhanced `AnalyticsList` component to include export options for analytics entries.
- Updated room detail page to allow setting analytics visibility when creating or editing rooms.
- Added translations for new analytics visibility options and export messages.
2026-03-13 22:36:07 +01:00
Michelle a0a972b53a fix(NotificationContext): ensure audio playback is unlocked only for authenticated users
Build & Push Docker Image / build (push) Successful in 6m32s
2026-03-13 13:00:54 +01:00
Michelle 9b98803053 fix(NotificationContext): handle user ID for notifications fetching and prevent stale responses
Build & Push Docker Image / build (push) Successful in 6m6s
2026-03-13 12:43:20 +01:00
Michelle e43e7f5fc5 fix: update license information to GNU GPL v3 in README, package.json, and package-lock.json
Build & Push Docker Image / build (push) Successful in 6m7s
Build & Push Docker Image / build (release) Successful in 6m14s
fix: Add valkey to compose in case system is too old for DragonflyDB
2026-03-13 12:11:32 +01:00
Michelle 5731e6a9a8 change README again
Build & Push Docker Image / build (push) Successful in 6m10s
2026-03-13 11:59:59 +01:00
Michelle fa8292263c chore: update version to 2.0.0 in package files and README
Build & Push Docker Image / build (push) Has been cancelled
2026-03-13 11:57:29 +01:00
Michelle 4bc3403040 fix(README): correct warning message formatting for clarity
Build & Push Docker Image / build (push) Has been cancelled
2026-03-13 11:54:25 +01:00
Michelle e4f596f8c3 change README
Build & Push Docker Image / build (push) Has been cancelled
2026-03-13 11:52:55 +01:00
Michelle 00e563664e feat(analytics): enhance analytics functionality with token validation and data extraction
Build & Push Docker Image / build (push) Successful in 6m29s
2026-03-13 10:34:39 +01:00
Michelle 41ad3e037a feat(rooms): add learning analytics field to room update request
Build & Push Docker Image / build (push) Successful in 6m31s
2026-03-13 10:09:11 +01:00
Michelle 7ef173c49e feat(analytics): implement learning analytics feature with data collection and display
Build & Push Docker Image / build (push) Successful in 6m33s
2026-03-13 09:46:15 +01:00
Michelle 530377272b feat(theme): add cotton candy light theme with custom colors
Build & Push Docker Image / build (push) Successful in 6m28s
2026-03-12 14:05:15 +01:00
Michelle 52f122a98a Merge remote-tracking branch 'refs/remotes/origin/main'
Build & Push Docker Image / build (push) Successful in 6m30s
2026-03-12 10:31:46 +01:00
Michelle c2dcb02e9b bugfix red-modular-light theme 2026-03-12 10:30:52 +01:00
Michelle 71557280f5 feat(sidebar): update user initials display to show first two letters of first and last name
Build & Push Docker Image / build (push) Successful in 6m32s
2026-03-10 22:50:47 +01:00
Michelle 03e484b8c6 feat(auth): improve logout process to redirect to Keycloak before clearing user state
Build & Push Docker Image / build (push) Successful in 6m24s
2026-03-10 22:41:27 +01:00
Michelle 14ed0c3689 feat(toaster): adjust container style for improved toast positioning
Build & Push Docker Image / build (push) Successful in 6m30s
2026-03-10 22:28:47 +01:00
Michelle 5fc64330e0 feat(migration): enhance migration script to include site settings, branding, and OAuth configuration
Build & Push Docker Image / build (push) Has been cancelled
2026-03-10 22:25:53 +01:00
Michelle 3ab7ab6a70 feat(auth): enhance logout process to support RP-Initiated Logout for OIDC users
Build & Push Docker Image / build (push) Successful in 6m35s
2026-03-10 22:19:01 +01:00
Michelle a7b0b84f2d feat(database): modify PostgreSQL insert query to return the entire inserted row for tables without an "id" column
Build & Push Docker Image / build (push) Successful in 6m35s
2026-03-10 15:14:03 +01:00
Michelle 11d3972a74 feat(caldav): implement service discovery for CalDAV with redirection
Build & Push Docker Image / build (push) Successful in 6m25s
2026-03-04 22:33:43 +01:00
Michelle d8c52aae4e feat(database): make token column nullable in caldav_tokens table for improved flexibility
Build & Push Docker Image / build (push) Successful in 6m36s
2026-03-04 22:24:11 +01:00
Michelle f16fd9aef2 feat(i18n): update hero title in English and German for consistency
Build & Push Docker Image / build (push) Successful in 6m26s
2026-03-04 13:52:30 +01:00
Michelle 8edcb7d3df feat(calendar): store only token hash in database to enhance security
Build & Push Docker Image / build (push) Successful in 6m25s
feat(federation): escape LIKE special characters in originDomain to prevent wildcard injection

feat(oauth): redirect with token in hash fragment to avoid exposure in logs

feat(OAuthCallback): retrieve token from hash fragment for improved security
2026-03-04 13:41:40 +01:00
Michelle 6aa01d39f4 feat(DateTimePicker): optimize onChange handling with ref for improved performance
Build & Push Docker Image / build (push) Successful in 6m29s
2026-03-04 13:25:53 +01:00
Michelle bb4da19f4f feat(Sidebar): update BrandLogo size for improved layout
Build & Push Docker Image / build (push) Successful in 6m26s
2026-03-04 13:11:55 +01:00
Michelle e8d8ccda42 feat(Home): update text for branding and hero title in multiple languages
Build & Push Docker Image / build (push) Has been cancelled
2026-03-04 13:08:23 +01:00
Michelle 1d647d0a36 feat(DateTimePicker): update styles for month navigation and current month display
Build & Push Docker Image / build (push) Successful in 6m30s
2026-03-04 12:54:18 +01:00
Michelle e3a5f21c8b feat(DateTimePicker): import flatpickr CSS for improved styling
Build & Push Docker Image / build (push) Successful in 6m33s
2026-03-04 12:41:36 +01:00
Michelle 014de634b1 feat(DateTimePicker): integrate flatpickr for enhanced date/time selection and theming
Build & Push Docker Image / build (push) Successful in 6m29s
2026-03-04 12:33:51 +01:00
Michelle 268f6d0c5a feat(DateTimePicker): replace custom date/time picker with native inputs for improved theming and accessibility
Build & Push Docker Image / build (push) Successful in 6m50s
2026-03-04 12:17:42 +01:00
Michelle 7018c5579f feat(DateTimePicker): add fixed strategy to popperProps for improved positioning
Build & Push Docker Image / build (push) Successful in 6m30s
2026-03-04 11:55:48 +01:00
Michelle 2a7754dd56 feat(DateTimePicker): add return statement to render DateTimePicker component
Build & Push Docker Image / build (push) Successful in 6m48s
2026-03-04 11:14:04 +01:00
Michelle a78fc06f2b feat(DateTimePicker): implement calendar open handler to preserve scroll position
Build & Push Docker Image / build (push) Has been cancelled
feat(Modal): remove max height restriction for modal body
style: clean up z-index for datepicker popper
2026-03-04 11:12:56 +01:00
Michelle 15bfcc80c3 feat(DateTimePicker): remove custom popper container and adjust z-index for improved layout
Build & Push Docker Image / build (push) Successful in 7m4s
2026-03-04 11:00:39 +01:00
Michelle fcb83a9b72 feat(DateTimePicker): implement custom popper container for improved layout handling
Build & Push Docker Image / build (push) Successful in 6m58s
feat(Modal): enhance modal styling with rounded corners and improved overflow handling
style: adjust z-index for datepicker popper to ensure proper layering above modals
2026-03-04 10:49:17 +01:00
Michelle a69b2e4d9a feat(database): update reminder_sent_at column type for calendar_events based on database type
Build & Push Docker Image / build (push) Successful in 6m59s
2026-03-04 10:33:55 +01:00
Michelle 0d84610e3b feat(BrandLogo): enhance logo sizing and visibility based on app name visibility
Build & Push Docker Image / build (push) Successful in 6m57s
2026-03-04 10:23:23 +01:00
Michelle 8823f8789e feat(calendar): add reminder functionality for events with notifications
Build & Push Docker Image / build (push) Has been cancelled
2026-03-04 10:18:43 +01:00
Michelle ce2cf499dc feat: implement hide app name feature with toggle in admin settings and update branding context
Build & Push Docker Image / build (push) Has been cancelled
2026-03-04 10:11:35 +01:00
Michelle bac4e8ae7c chore: update dependencies and enhance datetime picker styling
Build & Push Docker Image / build (push) Successful in 6m27s
- Updated `multer` to version 2.1.0 and `@vitejs/plugin-react` to version 4.7.0 in package.json.
- Updated `vite` to version 6.4.1.
- Enhanced CSS for various themes to include `color-scheme` and `--picker-icon-filter` properties for better datetime picker integration.
- Refactored Calendar component to include styled datetime picker with icons for start and end time inputs.
- Improved timezone display for better user experience.
2026-03-04 09:54:07 +01:00
Michelle 43d94181f9 feat: add getBaseUrl function for consistent base URL generation across routes
Build & Push Docker Image / build (push) Successful in 6m28s
feat(calendar): display local timezone in calendar view
feat(i18n): add timezone label to German and English translations
2026-03-04 09:44:02 +01:00
Michelle 61274d31f1 feat(calendar): implement local date string formatting for event filtering
Build & Push Docker Image / build (push) Successful in 6m27s
2026-03-04 09:31:45 +01:00
Michelle 3d21967681 fix(caldav): update legacy token migration to set token as empty string
Build & Push Docker Image / build (push) Successful in 6m29s
2026-03-04 09:26:22 +01:00
Michelle 2d919cdc67 feat(caldav): add token_hash column and store SHA-256 hashed tokens
Build & Push Docker Image / build (push) Successful in 6m27s
2026-03-04 09:17:31 +01:00
Michelle 6e301e2928 feat(notfound): add NotFound page with 404 handling and localization
Build & Push Docker Image / build (push) Successful in 6m33s
2026-03-04 08:57:21 +01:00
Michelle cdfc585c8a feat: implement OAuth 2.0 / OpenID Connect support
Build & Push Docker Image / build (push) Failing after 1m12s
- Added OAuth configuration management in the admin panel.
- Implemented OAuth authorization flow with PKCE for enhanced security.
- Created routes for handling OAuth provider discovery, authorization, and callback.
- Integrated OAuth login and registration options in the frontend.
- Updated UI components to support OAuth login and registration.
- Added internationalization strings for OAuth-related messages.
- Implemented encryption for client secrets and secure state management.
- Added error handling and user feedback for OAuth processes.
2026-03-04 08:54:25 +01:00
Michelle e22a895672 feat(security): enhance input validation and security measures across various routes
Build & Push Docker Image / build (push) Successful in 6m38s
2026-03-04 08:39:29 +01:00
Michelle ba096a31a2 feat(room): add copy link functionality with options for room and guest links
Build & Push Docker Image / build (push) Successful in 6m25s
2026-03-03 14:23:57 +01:00
Michelle d886725c4f feat(migration): add Greenlight to Redlight migration script
Build & Push Docker Image / build (push) Successful in 6m29s
2026-03-03 12:34:35 +01:00
Michelle f3ef490012 feat(caldav): enhance eventToICS function to include join links and organizer details
Build & Push Docker Image / build (push) Successful in 6m24s
2026-03-03 12:13:36 +01:00
Michelle ddc0c684ec feat(caldav): implement CalDAV support with token management and calendar operations
Build & Push Docker Image / build (push) Successful in 6m5s
2026-03-03 11:41:35 +01:00
Michelle 68f31467af feat(theme): add new themes for Everforest, Kanagawa, Ayu, Moonlight, and Cyberpunk
Build & Push Docker Image / build (push) Successful in 6m7s
2026-03-03 11:28:35 +01:00
Michelle 05f2941b16 fix(room): prevent click event propagation on actions container
Build & Push Docker Image / build (push) Successful in 6m26s
2026-03-03 10:38:48 +01:00
Michelle 4bb22be496 feat(room): enforce minimum room name length of 2 characters in creation and editing
Build & Push Docker Image / build (push) Successful in 6m17s
2026-03-03 10:02:28 +01:00
Michelle 1c9c5224ae feat(room): add copy link functionality with clipboard support and update translations
Build & Push Docker Image / build (push) Successful in 6m27s
2026-03-03 09:00:50 +01:00
Michelle 2b8c179d03 Add waiting queue for guest join with sound
Build & Push Docker Image / build (push) Successful in 6m26s
2026-03-03 06:38:01 +01:00