Skip to main content

v0.5 Release Notes

v0.5.0

Released: 2026-01-05

What's Changed

Changes since last production release

  • Fix release notes sync: remove obsolete jobs, trigger sync-release-notes workflow (aa29467e)
  • Fix logout not clearing auth state in admin routes (f1cb8d27)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.4.56...v0.5.0


v0.5.1

Released: 2026-01-06

What's Changed

Changes since last production release

  • Fix getUserOrganizations test assertions for new return structure (5332e31f)
  • Fix emulator test failures for organization services (d1a55ef2)
  • Fix emulator tests for organization service (aa7af1a7)
  • Fix usage metrics calculation for participants and recording storage (5fbfd660)
  • Fix organization permissions for owners missing membership docs (ffb8d61e)
  • Fix platform admin check - use isPlatformAdmin() function instead of req.user.platformRole (93acbd09)
  • Code review fixes: static import and JSDoc correction (0ccff7cf)
  • Add platform admin member management for organizations (b2b8064f)
  • Fix org owner permissions by checking ownerId fallback and auto-repair (6cca818a)
  • Fix emulator tests for subcollection-based membership model (e29d1537)
  • Fix org membership after subcollection migration + add virtual org group (81acbc09)
  • Refactor organization membership to use Firestore subcollections (439245dd)
  • Fix sync-release-notes: add --repo flag to gh run list (4e58cccf)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.0...v0.5.1


v0.5.2

Released: 2026-01-06

What's Changed

Changes since last production release

  • Fix owner data access and add granular permission badges (51a05e95)
  • Fix Close button styling in ExperimentManager (cf858764)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.1...v0.5.2


v0.5.3

Released: 2026-01-06

What's Changed

Changes since last production release

  • Fix data permissions by removing redundant organization context layer (8d18a828)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.2...v0.5.3


v0.5.4

Released: 2026-01-16

What's Changed

Changes since last production release

  • Fix folders not persisting - add organizationId to folder creation (2a9b2fd6)
  • Fix folder name not showing in media tables (8d2e7b92)
  • Simplify experiments table - remove redundant columns and pagination (6fdded06)
  • Consolidate shared experiments into unified experiments table (80aaaba6)
  • Fix imageRoutes emulator tests for multi-tenant permissions (f0f0ac24)
  • Fix V3 rooms route emulator tests for multi-tenant permissions (721fa273)
  • Add SegmentsPerSubdirectory to MediaConvert HLS settings (9bc55d74)
  • Fix api-v3-roomsRoute test to mock auth middleware (a2eeebd4)
  • Add injectUserOrganization mock to emulator tests (53a6c259)
  • Fix ExperimentsTable tests to wait for async loading (1f1e76a3)
  • Fix test mocks for multi-tenant permission system (9b8160ab)
  • Reduce HLS stuck detection threshold from 1-2 hours to 15-30 minutes (30d7a14c)
  • Add multi-tenant isolation to media resources (images/videos) (ab8fbfd5)
  • Fix V3 API middleware and add missing indexes (324137a1)
  • Fix Firestore Timestamp handling in migration script (d12aa13c)
  • Add Firestore index for sharedWith array-contains query (8f942b95)
  • Implement multi-tenant permission system for cross-org collaboration (fafbd384)
  • Update package-lock.json with @aws-sdk/client-mediaconvert (e18510cd)
  • Fix race condition in experiment store socket handlers (d5d7f2ae)
  • Use existing MediaConvert_Default_Role instead of creating new role (7a700eef)
  • Migrate HLS transcoding from Lambda+FFmpeg to AWS MediaConvert (8748ab7f)
  • Fix data permissions not persisting after modal close (3219e9ac)
  • Fix role config mode affecting all focus states instead of just the selected one (bd7d350e)
  • Use explicit Lambda credentials from env vars (520dc096)
  • Fix HLS retry to actually invoke Lambda transcoder (35e50dd6)
  • Fix text input flicker after debounced save (2fd2ffd5)
  • Fix text input cursor jumping in experiment designer (2a8ed856)
  • Fix experiment designer bugs: WebSocket writes, permissions, video transitions (49b1a3b1)
  • Fix import errors in experimentDesignerServer.js causing deployment failure (5bf647e0)
  • Fix dev deployment: add dev-specific ConfigMap for Redis connection (c247ba0d)
  • Remove hardcoded namespace from k8s base config files (e34c9d89)
  • Fix incorrect firebaseAdmin.js import paths (03a13d67)
  • Fix RoomsTable import and test mock for dataServiceV3 (c8d69ce7)
  • Fix RoomsTable test mocking wrong service module (3365e346)
  • Refactor experiment designer: add WebSocket saves and split endpoints (1b0209cd)
  • Fix shallow copy bug in state duplication causing shared role configs (386216a6)
  • Fix data permissions: use verifyDataAccess for all V3 data routes (242d1c02)
  • Update HLS transcoder docs for S3→SQS→Lambda architecture (23292268)
  • Fix data permissions not persisting reliably (ed2f2364)
  • Remove temporary push trigger after successful deployment (3d4c4f6e)
  • Fix: Heredoc YAML syntax for SQS queue policy (68a31f68)
  • Fix: Default environment to production for push triggers (16c66306)
  • Add temporary push trigger for deployment (59172181)
  • Fix: SQS queue policy JSON escaping for set-queue-attributes (d0deeeea)
  • Fix: Always update Lambda IAM role policy for SQS permissions (d629bd2b)
  • Add robust HLS transcoding with S3→SQS→Lambda architecture (9d84cc1b)
  • Fix data permission user persistence by using backend ID (80ffbd18)
  • Fix data permissions display order and UI consistency (98a1abdf)
  • Add socket emit to data permission endpoints to invalidate experiment cache (e80c1d92)
  • Add permissions.users handler to video and image routes (e5059bbf)
  • Add permission enrichment to list endpoints for experiments, videos, and images (85c45da7)
  • Fix logger import - use named export instead of default (5364b4d3)
  • Add permission enrichment for videos, images, and data permissions (c5404c6a)
  • Fix data permissions: use dataPermissions format for DATA resource type (ec0cd49d)
  • Add granular user permission storage via permissions.users (6fcd1c69)
  • Update tests for new pro plan quotas (100 experiments, 10 members) (81515555)
  • Increase pro plan team members limit from 5 to 10 (53d2f20f)
  • Increase pro plan experiment limit from 25 to 100 (67409d45)
  • Fix permission system: prioritize groupIds over dataPermissions (13905259)
  • Add entry-point logging to normalizePermissions to trace code path (f945b72c)
  • Add version marker and improved debug logging to verify code deployment (7b457b6e)
  • Fix group name display by setting groupName property explicitly in normalizePermissions (f2b290bd)
  • Add logging for enriched group data in GET response (6135af14)
  • Add detailed debug logging for group name enrichment issue (af515125)
  • Add debug logging for permission persistence issue (5e504af6)
  • Fix org display names in permission manager (edb684a5)
  • Fix multiple organization bug in permission system (55e696dd)
  • Add delete group functionality and permission debug logging (6bfb4e41)
  • Fix permission manager initialization timing and add globe icon (965570d3)
  • Fix duplicate organizations in permission system (49cbba22)
  • Add unified permission support for videos and images (997cf104)
  • Fix permission persistence and optimize permission API calls (fc9367ec)
  • Improve permission manager UI: toast notifications, Public row in table (f9d39e61)
  • Fix page refresh when toggling experiment permissions (6b48eaaf)
  • Fix undefined event error in permission change handlers (dcde316f)
  • UI tweaks: horizontal buttons, remove info note (0966b07a)
  • Fix unifiedPermissionService tests to match new API endpoints (4c19106f)
  • Fix UnifiedPermissionManager API and UI issues (0dfda249)
  • Fix UnifiedPermissionManager UI issues (3ad983cf)
  • fix: update shared index.js to export UnifiedPermissionManager instead of deleted PermissionManager (39e6bf19)
  • feat: unified permission system with comprehensive tests (0acd6079)
  • Fix modal closing when clicking buttons inside PermissionManager (b6b5e92b)
  • Fix media permission management issues (ff3111b3)
  • Fix media permission changes not working (014d7abe)
  • Add tests for UserSearchDropdown and GroupManager shared components (19cc7346)
  • Add explicit group existence check and improve error messages for group member operations (929e8f98)
  • Fix getGroupMembers to fetch users by document ID not field (0219919c)
  • Fix data permissions bugs: 404 on add member, 502 on delete (34e23077)
  • Refactor group management into shared GroupManager component (2d615c79)
  • Fix data permissions modal name enrichment and layout (52da4307)
  • Improve DataShareModal UX and fix permission logic (19069b32)
  • Redesign DataShareModal with table-based UI and bug fixes (e35fdd86)
  • Fix middleware factory invocation: add () to requireAuthenticated (a71888a8)
  • Fix Express route ordering: move /groups before /:uid (a553c139)
  • Add debug logging to requireExperimenterOrOrgAdmin middleware (3f8899dc)
  • Fix data permissions modal issues and org admin access (a7d4a238)
  • Fix data permissions: route ordering and org admin check (fd5ac256)
  • Fix requireExperimenterOrOrgAdmin to allow org members (3e5d1e54)
  • Fix emulator test: add requireExperimenterOrOrgAdmin mock (92266246)
  • Add permission checks to image management endpoints (19b2af0f)
  • Fix media management permissions to include org admin access (11dc6cdb)
  • Fix data management permissions and Settings button modal (58a51bd7)
  • Improve Data Permissions UI with icons and clearer terminology (257c33d9)
  • Fix: Add missing participant_sessions Firestore rule (a52fde77)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.3...v0.5.4


v0.5.5

Released: 2026-01-17

What's Changed

Changes since last production release

  • Fix LocalStack CI flakiness: use docker run instead of service container (1a919e94)
  • Add real-time collaboration for experiment designer (Phase 1) (81f25cb1)
  • Remove HTTP auto-save fallback from ExperimentDesigner (7f64e0c2)
  • Fix memory leak: cleanup debounce timeout on unmount (ec5534cc)
  • Fix double-save: use setLocalField for WebSocket mode (6cb9ffd3)
  • Fix questionnaire not persisting - autoSave.experiment is getter-only (91c49c41)
  • Fix questionnaire debounce race condition losing new questions (ddd1ece6)
  • Fix PostExperimentQuestionnaire input not working with WebSocket mode (8fa6782f)
  • Fix platform admin permissions for experiments, media, and data access (78d9f4a5)
  • Fix PostExperimentQuestionnaire input not working with WebSocket mode (93621598)
  • Add V4 Participant API with session-based authentication (9a5ed15c)
  • Exclude LocalStack tests from main test suite (ca123ec7)
  • Update package-lock.json with LocalStack testing dependencies (e22abded)
  • Add LocalStack AWS testing infrastructure and MediaConvert Lambda unit tests (6e003651)
  • Use absolute paths for release notes links in Docusaurus (052a66aa)
  • Fix relative links in release notes index - remove ./ prefix (51a412d5)
  • Fix version sorting and awk pattern for release notes index (51ac630f)
  • Add auto-regeneration of release notes index.md (79387977)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.4...v0.5.5


v0.5.6

Released: 2026-01-18

What's Changed

Changes since last production release

  • Fix data permissions showing raw IDs instead of group names (10e0ff2c)
  • Skip deprecated experimenterRoutes endpoint tests (f4200988)
  • Fix: move logger import inside try-catch in experimenterRoutes (50abd39c)
  • Fix logger reference error in getExperimenterExperiments deprecation warning (ae8591ff)
  • Fix ExperimentsTable tests to use loadOrgExperiments mock (0ed38490)
  • Migrate frontend to V3 experiment API for faster loading (3d96d508)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.5...v0.5.6


v0.5.7

Released: 2026-01-18

What's Changed

Changes since last production release

  • Fix deployment workflow and pod router configuration (fc8daf84)
  • Fix pod router to support dynamic HPA scaling (fixes multi-participant sync) (a4a724b7)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.6...v0.5.7


v0.5.8

Released: 2026-01-19

What's Changed

Changes since last production release

  • Fix MediaConvert HLS transcoding - add required segmentsPerSubdirectory (0774a86b)
  • Fix: Add organizationId to multipart upload video document (06f55593)
  • Fix security and error handling in multipart upload (2eb512aa)
  • Add multipart upload support for large video files (>100MB) (2cd11949)
  • Increase video upload size limit from 5GB to 10GB (445b824f)
  • Add resource permissions migration script (6bf22745)
  • Fix emulator tests to use dynamic plan values from plans.js (584d8dee)
  • Consolidate monitoring dashboards from 10 to 3 (e6b7149e)
  • Add sync-quotas migration script for updating organization quotas (cc83ef55)
  • Update usage tracking tests for new Pro plan quotas (431f7fea)
  • Fix invite member modal to use correct API endpoint (636b4327)
  • Update plan quotas and video upload limits (a641b231)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.7...v0.5.8


v0.5.9

Released: 2026-01-20

What's Changed

Changes since last production release

  • Fix TriggerComponent tests to use keydown instead of keypress (b1957826)
  • Fix WebSocket not connecting after experiment creation (98b7a053)
  • Code review fixes: remove unused code, add button types, use keydown (135cbb06)
  • Redesign Trigger component UI with new Receive Then Send mode (b6023e03)
  • Fix experiment creation not saving all config fields (681bc63a)
  • Fix WebSocket race condition and undefined disconnectTimeout errors (5d37fd74)
  • Fix metadata changes failing for new experiments (93f69568)
  • Fix experiment creation failing due to missing WebSocket connection (cd0570cb)
  • Fix tests to use visibility field after permission field consolidation (17e2288b)
  • Fix visibility field mismatch causing participants to not see public experiments (d8d0386c)
  • Complete WebSocket migration for experiment designer (0f47cde9)
  • Fix storage metrics queries to deduplicate by type (9ceab839)
  • Add Usage & Billing dashboard to Grafana configmap (e5aa9b87)
  • Add prometheus aggregation rules with proper subquery syntax (10e6f4c0)
  • Fix prometheus rules syntax and workflow --repo flag (65ed44ca)
  • Fix missing --repo flag in gh run list commands in promote workflow (f9dac5ea)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.8...v0.5.9


v0.5.10

Released: 2026-01-20

What's Changed

Changes since last production release

  • Fix ExperimentsTable search to use substring matching (3d5b5190)
  • Fix V3 API participant data access to use roomId from query params (3fe66a86)
  • Fix dataAccessControl to support both inline and Firestore org checks (b6f7ef10)
  • Update DataDownloader documentation to reflect V3 API migration (7903ba01)
  • Add BridgeTriggerSetup component and Storybook documentation (7d16bfc9)
  • Clean up dead code and migrate to V3 APIs (1b52d7ad)
  • Use TabGroup component for trigger mode selection (4b651061)
  • Fix V3 API permission issues for organization administrators (22ad0671)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.9...v0.5.10


v0.5.11

Released: 2026-01-21

What's Changed

Changes since last production release

  • Fix PlatformAdminDashboard test to expect 14 nav tabs (729ff624)
  • Add Account Requests tab to Platform Admin and remove legacy admin dashboard (131268e4)
  • Update settings UI to use green primary color and hide radio button dots (14598b03)
  • Add migration script to fix experiments with deleted: undefined (9a562e8a)
  • Fix permissions for platform admins and experiment participants (28415e49)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.10...v0.5.11


v0.5.12

Released: 2026-01-22

What's Changed

Changes since last production release

  • Fix ProlificFilters: guard against undefined filterValues during render (14540683)
  • Fix emulator tests for permission system changes (35833df4)
  • Fix remaining test using removed POST /participants/assignments route (27f61740)
  • Fix Prolific integration issues (8d5306d1)
  • Fix emulator tests for removed routes and permission changes (e7f0e5f3)
  • Fix missing logAuditEvent export causing dev deployment crash (7b0a6e9f)
  • Fix Prolific tests to use new service layer mocks (f7d644bd)
  • Prolific integration security fixes and refactor (db54354a)
  • Fix org admin permission check for experiment access (5e6da217)
  • Fix frontend tests for removed deprecated functions (3a6cdcf6)
  • Codebase cleanup: remove dead code and legacy permission system (fa747211)
  • Add experiment permissions diagnostic and repair scripts (98341db4)
  • Fix signed URL flow for video preloading to prevent CORS errors (1eb7d3a6)
  • Complete Phase 4 membership migration: remove legacy arrays, single source of truth (e7398e01)
  • Add tests for new platform admin user management features (13a571ca)
  • Add user management actions to Platform Admin users table (93124b8c)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.11...v0.5.12


v0.5.13

Released: 2026-01-26

What's Changed

Changes since last production release

  • Fix platform admin queries and update org delete tests (f69abcd8)
  • Remove test for personal org delete restriction (f7e299a6)
  • Fix organization delete issues and allow personal org deletion (136f53e6)
  • Add delete button to organization table rows (2515efd7)
  • Fix authService tests missing user.reload() mock (f77bbb4b)
  • Add organization rename and delete for Platform Admin (329b3e61)
  • Fix non-invited users being auto-approved as experimenters (2c8c2a25)
  • Fix navigation buttons missing detail wrapper in auth routes (4ba02ce7)
  • Match Platform Admin logout button styling to Experimenter dashboard (fda9c9ac)
  • Fix email verification status not updating for invited users (cd18a2d2)
  • Add comprehensive debug logging to invitation auto-approval flow (60da9c3d)
  • Add debug logging for invitation registration flow (d44ab056)
  • Fix race condition preventing auto-approval of invited experimenters (8acd5ec0)
  • Remove hourglass icon from pending approval screen (d8bce053)
  • Add invite user button to platform admin users section (68993db0)
  • Add migration to set all experiments to organization visibility (08553a8a)
  • Add visibility indexes and consolidate Firestore index files (c42a5319)
  • Fix grantPermission to return existing permission instead of throwing (9e87fa21)
  • Fix org member visibility for organization-scoped experiments (d73d4493)
  • Update platform admin user invite modal for org-based invitations (e5901780)
  • Add org key visibility for members and key preference toggle (62c81758)
  • Fix emulator test status code expectations for V3 permission endpoints (3323d5e3)
  • Unify permission system across all resources (images/videos/folders) (7ebc4d31)
  • Add organization sharing toggle to API Key Manager (71c8fb08)
  • Fix emailRoutes emulator test for updated invite-user endpoint (6f90e195)
  • Fix Prolific test mocks: update API key format and error message assertion (09d4477e)
  • Fix orgInvitationRoutes test: add missing requireExperimenterOrAdmin mock (dd583448)
  • Consolidate invitation system and add experiment participant invitations (bd9ee0d9)
  • Move Clear All button to top of notifications panel (110f8974)
  • Fix experimenter registration flow for pending approval (a0895e74)
  • Fix organization invitation links for multi-tenant system (fa91ffae)
  • Fix Prolific workspace loading error and add organization API key sharing (58a107f1)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.12...v0.5.13


v0.5.14

Released: 2026-01-30

What's Changed

Changes since last production release

  • Fix LiveKit webhook lookup for individual participant recordings (a8189fb1)
  • Fix sparse rating pause times for videos with startTime > 0 (c1585da3)
  • Fix TTL trigger bridge protocol mismatch (085499f7)
  • Fix sparse rating duration, negative onset clamping, and recording events (c65542e7)
  • Fix event timing for reused rooms by resetting firstStateStartedAt (fbb0694e)
  • Fix sparse rating sampling for short videos with stratified distribution (e5853aa9)
  • Fix event timing accuracy and data management UX improvements (3697473b)
  • Fix experimentStore test mock missing logger.debug method (c8fdb156)
  • Fix event timing accuracy for neuroscience research (f83b1f4e)
  • Fix LiveKit egress webhook roomName extraction using snake_case fields (09859693)
  • Consolidate LiveKit routes and fix duplicate webhook events (98bb90e9)
  • Fix device setup requesting permissions before enumerating devices (c97c5cd4)
  • Fix LiveKit device setup showing empty dropdowns (088f148a)
  • Fix LiveKit webhook routing for HTTPS requests in dev (05f72c3d)
  • Fix LiveKit webhook delivery in dev environment (3b347b88)
  • Remove TLS section from webhook IngressRoute to match production pattern (7890d5cf)
  • Fix LiveKit webhook delivery in dev by adding Host-agnostic IngressRoute (14798d8a)
  • Fix recording events and timing issues (99405c03)
  • Fix egress webhooks being silently ignored due to room name extraction (158f8261)
  • Fix Prolific API key fallback for non-owner organization members (2a782609)
  • Fix recording event onset timing, participant ID extraction, and missing organizationId (978fdb20)
  • Fix emulator tests for getExperimentStartTime → getContentStartTime rename (e4dd5e26)
  • Fix sparse ratings, recording events, onset timing, and experiments table (0c0f048b)
  • Remove experimentStartedAt, use firstStateStartedAt everywhere (b95fbf3f)
  • Fix sparse rating reconnection bugs: video position and rating re-triggers (6afe5a7a)
  • Fix webhook event data loss and add recording lifecycle events (6418a0f9)
  • Fix recording event logging and disable composite recording (3a3e8bc7)
  • Fix invited members seeing 'Account Pending Approval' screen (7b22a469)
  • Fix data processor fallbacks, participant ID normalization, and completion codes (2ac0ce5b)
  • Add video.recording.started event and recording offset tracking (47205c6f)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.13...v0.5.14


v0.5.15

Released: 2026-01-30

What's Changed

Changes since last production release

  • Fix video duration for HLS videos in sparse rating component (4e2b0de8)
  • Fix experiment save allowing states without transition types (b3801a75)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.14...v0.5.15


v0.5.16

Released: 2026-01-31

What's Changed

Changes since last production release

  • Standardize media visibility field and integrate resourcePermissions (053aba5c)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.15...v0.5.16


v0.5.17

Released: 2026-02-02

What's Changed

Changes since last production release

  • Fix state reordering within groups not persisting (058d4bd7)
  • Fix Prolific "Invalid access token" error by switching to v2 gateway (82377e18)
  • Fix Prolific org shared key not loading workspaces (ae8ee241)
  • Fix TTL device status not auto-detecting on Bridge connect (b3c76fcc)
  • Simplify bridgeService for single-message Bridge protocol (753779d3)
  • Fix 404 error by using correct /api/experiments/v3 endpoint (7504da24)
  • Use uppercase device types for consistent Bridge response format (db96117a)
  • Fix Bridge response handling to buffer data before ack (80879494)
  • Update bridgeService to handle Bridge v0.8.8+ status response format (3c396eae)
  • Fix TTL and Kernel device connection detection in bridgeService (3717b156)
  • Fix needsDeviceSetup undefined error in handleBackendSetupComplete (cb70b7e3)
  • Integrate unified DeviceSetupManager into ExperimentRunner (5f59d6ec)
  • Simplify device integration with flat data structure and DeviceCard UI (e96aaf6f)
  • Remove Kernel forwarding tests from dataServiceV2 (moved to deviceStore) (47420fdb)
  • Add unified device management system for experiment hardware integration (5da81d52)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.16...v0.5.17


v0.5.18

Released: 2026-02-02

What's Changed

Changes since last production release

  • Fix failing Prolific gateway tests (9fe1466b)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.17...v0.5.18


v0.5.19

Released: 2026-02-03

What's Changed

Changes since last production release

  • Fix gear button visibility - use all:unset to clear global styles (d690bc28)
  • Fix recruitment settings UI - search, gear visibility, and border (0dff4e83)
  • Fix Prolific gateway auth error - reorder route registration (a0ce00a2)
  • Fix gear icon visibility and allow unselecting all recruitment methods (f572dc9f)
  • Fix MediaConvert HLS transcoding - IAM role and duration extraction (68d3490d)
  • Fix recruitment card layout - move gear icon inside header (f63d5ede)
  • Redesign recruitment configuration UI with focus mode and unified search (995cf414)
  • Add multi-select recruitment methods and fix public experiments query (f839ca2b)
  • Add missing index for V4 participant assignments query (076e17b1)
  • Add debouncing to text inputs in experiment designer config editors (20af7f70)
  • Fix EligibleRooms test to include loadExperiments mock (58effa21)
  • Fix participants unable to see public experiments (13a65c24)
  • Remove redundant video.recording.requested event (d0e8a611)
  • Fix video duration not being captured in MediaConvert transcoding pipeline (3db6fb7d)
  • Fix audio recordings not appearing in Data Management (91033c53)
  • Fix spurious "Unknown error" in TTL Trigger Setup modal (295ea31c)
  • Fix trigger and scanner pulse events not being recorded (daad999e)
  • Fix org admin visibility for images/videos and modal blur issue (32aad81b)

Full Changelog: https://github.com/ljchang/hyperstudy/compare/v0.5.18...v0.5.19