Commit Graph
100 Commits
Author SHA1 Message Date
fkwpandClaude Fable 5.1 8fb367380f Add the sound-effect volume to the audio menu and scroll the device lists
The menu gains a third group with the sound-effect volume slider, reading and
writing the same stored value as the slider in settings, so the next effect
plays at the new level. The menu is bounded to the height Radix reports for it
and only the device lists scroll; the heading and the slider stay in place.

Every control is now reachable by keyboard alone. Radix swallows Tab inside
its menus so that the arrow keys walk the items; the audio menu keeps Tab
from it, letting the browser move focus from the device rows to the meter and
on to the slider, while the menu's focus trap keeps that order inside the
menu. The slider's own keys stop at the slider so the menu does not treat
them as navigation. The meter keeps its live-region text on blur: removing it
handed the focus trap an empty active element mid-Tab and pulled focus back
into the menu.

Spec: FEATURES_SPEC/2026-09_Audio_Quick_Menu.md, slice 4 — AC4, AC16, AC17,
AC20, AC21 (manual), AC22, AC27.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 23:53:36 +02:00
fkwpandClaude Fable 5.1 2bda5eb18c Show the microphone level meter in the audio menu
The meter sits at the foot of the microphone group and follows the selected
microphone. Its capture starts when the menu opens and stops when it closes,
muted or not, so the microphone is only held while the user is looking at the
level. A denied permission shows a hint in place of the meter.

Keyboard navigation marks the current menu item with a focus border; pointer
use gets the hover background only, since the menu moves DOM focus to
whatever the pointer is over.

Spec: FEATURES_SPEC/2026-09_Audio_Quick_Menu.md, slice 3 — AC9, AC10, AC12,
AC14, AC23, AC24 (manual), AC26.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 23:53:36 +02:00
fkwpandClaude Fable 5.1 29a7a50d57 Add the microphone level meter and its capture hook
useMicrophoneLevel opens a capture of the given microphone for as long as it
is enabled, reports a smoothed 0..1 level per animation frame, and tears the
capture down on disable, device change or unmount, including while the
capture is still being acquired. A denied permission and a microphone that
cannot be opened are reported as distinct states.

AudioLevelMeter renders that state as a row of bars, focusable and announcing
its state to a screen reader only while focused, with a hint in place of the
meter when permission is denied and a greyed-out meter when the microphone is
unavailable. Nothing renders it yet; the audio menu picks it up next.

Spec: FEATURES_SPEC/2026-09_Audio_Quick_Menu.md, slice 2 — AC8, AC11, AC13,
AC15.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 23:53:36 +02:00
fkwpandClaude Opus 5 2856f555e1 Add the speaker group to the microphone menu
The chevron beside the microphone button now opens a menu headed "Audio
controls" that lists the microphones and, below a separator, the audio
outputs. Selecting either switches the device and keeps the menu open.
Where the browser offers no choice of output, or only one, the speaker
group still names the output in use as a non-selectable row.

The footer view model derives the outputs from the same MediaDevices
helper as the device lists, so the menu reaches both surfaces at once:
in a call on desktop, and before joining on every platform.

Spec: FEATURES_SPEC/2026-09_Audio_Quick_Menu.md, slice 1 — AC1, AC2, AC3,
AC5, AC6, AC7, AC25.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 23:53:36 +02:00
fkwpandClaude Opus 5 17ff9b1343 Add the audio quick menu feature spec
The spec, its product sidecar and its notes, as of the exploration branch
fkwp/feature/audio_quick_menu_exploration at 39d2ffbf where it reached status
implement, plus the drift log this implementation appended: the drift check
against a fresh main, the re-derived slicing plan, the owner's decision to
land the feature as one PR, and the findings from building it.

The commits that follow are its slices, in the order the plan gives.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 23:53:36 +02:00
fkwpandClaude Fable 5.1 89856df37f Add the FEATURES_SPEC process for turning explorations into specs and PRs
FEATURES_SPEC/AGENTS.md describes how an exploration is distilled into a
feature spec and how a spec is turned into PRs against a current main; the
product spec template is the sidecar a brainstorming session fills in.

The folder is excluded from oxfmt: a product spec is immutable once a spec
leaves draft, and the process documents are prose in their own style.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 15:28:39 +02:00
fkwpandClaude Opus 5 d3a2f5deda Add AGENTS.md documenting the repo's conventions
Codifies what is currently tribal knowledge or only discoverable by reading CI
config: the view model / view contract, the rule that nothing reads the page,
Clean Code ordering, the three test layers, and reuse-before-you-build.

The root AGENTS.md is the always-loaded minimum and routes to docs/agents/, so
an agent loads only the detail its task needs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 15:28:39 +02:00
fkwp 04b0165961 Fix tap-to-show call controls on iOS (ReactMouseEvent -> ReactPointerEvent) 2026-05-15 12:29:26 +02:00
fkwp 0dc8fab256 linting 2026-05-04 13:36:26 +02:00
fkwp 69757b06ce prettier 2026-05-04 13:27:57 +02:00
fkwp a081b40fb2 add marble test 2026-05-04 13:24:19 +02:00
fkwp 88b5db6675 fix rtsSession initial state 2026-05-04 10:41:48 +02:00
fkwp 22f16174ef addressing review comments 2026-05-04 09:16:55 +02:00
fkwp 6c25048b92 Merge branch 'livekit' into fkwp/feature_relax_homeserver_offline 2026-04-30 21:02:24 +02:00
fkwp 2e4ca9b761 use 10 Seconds of grace period in config.sample.json 2026-04-30 20:54:46 +02:00
fkwp 42aae307f9 use latest stable version of jwt service 2026-04-30 20:53:18 +02:00
fkwp 24c2845958 move starWith to corresponding branch in switchMap 2026-04-30 20:50:45 +02:00
fkwp 39ef815d8b Merge branch 'livekit' into fkwp/feature_relax_homeserver_offline 2026-04-23 17:29:14 +02:00
fkwp 0abc32b80e prettier 2026-04-23 15:47:40 +02:00
fkwp c1f821ca0f Update default sync disconnect grace period to 10000ms in configuration and related functions 2026-04-23 15:33:00 +02:00
fkwp 283c606b9d Add tests for grace period handling in createHomeserverConnected$ 2026-04-22 21:46:25 +02:00
fkwp ee343935a4 Merge branch 'fkwp/delegation_of_delayed_events' into fkwp/feature_relax_homeserver_offline 2026-04-22 21:11:23 +02:00
fkwp 032ec662e9 bump lk-jwt-service 2026-04-22 21:08:49 +02:00
fkwp 9fccd49d7d Improve the handling of the grace period for the home server connection to support both immediate and delayed emissions. 2026-04-22 21:08:31 +02:00
fkwp 9f2db7cfc3 Merge branch 'livekit' into fkwp/delegation_of_delayed_events 2026-04-22 20:42:00 +02:00
fkwp 9e2eef09d4 Add support for a grace period for /sync (aka homeserver disconnected) interruptions 2026-04-22 15:18:50 +02:00
fkwp 4d86580542 pin lk-jwt-service to delegation PR 2026-04-17 23:03:17 +02:00
fkwp 2adb498620 prettier 2026-04-17 18:28:02 +02:00
fkwp d75f2563c6 getting ride of shamefully-hoist=true 2026-04-17 18:23:32 +02:00
fkwp 938a03d0c1 address review comments 2026-04-17 18:21:48 +02:00
fkwp b58ad639c1 Prevents Prettier from formatting the lockfile to avoid conflicts with
pnpm's internal formatting
2026-04-17 11:14:21 +02:00
fkwp 2b42b2bdc1 fix tests after moving to pnpm 2026-04-17 11:13:41 +02:00
fkwp 9c1719a22f Switching to pnpm caused module resolution errors because some dependencies rely on being hoisted to the root. This flag restores the flat node_modules structure temporarily. 2026-04-17 11:08:25 +02:00
fkwp 17ad20cd09 switching from yarn to pnpm 2026-04-17 11:07:31 +02:00
fkwp 5657036f2f Bump matrix js-sdk to support latest MSC4195 update 2026-04-16 17:02:07 +02:00
fkwp 79de8dffff fix test as with the recent version of livekit-client the URL format changed 2026-04-13 09:22:24 +02:00
fkwp cbb9e7a289 Merge branch 'livekit' into fkwp/delegation_of_delayed_events 2026-04-01 11:46:29 +02:00
fkwp 4006a8d9f9 Merge branch 'livekit' into fkwp/delegation_of_delayed_events 2026-03-27 15:29:16 +01:00
fkwp 7b1eb03e2a add ca certs to SFU containers such that webhooks are accepted 2026-02-06 11:54:39 +01:00
fkwp d3a4234f4a setup webhooks for SFUs 2026-02-06 11:54:22 +01:00
fkwp ff3d6bd088 enable sticky events 2025-12-16 11:22:25 +01:00
fkwp 6fe6daba31 switch synapse docker image to one with sticky event support 2025-12-16 11:20:38 +01:00
fkwp 1aa76925f7 removing nextgen_new_foci_type item from foci array since it introduces confusion 2025-08-01 15:39:58 +02:00
fkwp d59e794bdf add alias to nginx 2025-07-31 17:05:57 +02:00
fkwp 0bf5c4a835 simplify package.json scripts and remove NODE_ENV variables since we dont use them 2025-06-11 16:54:10 +02:00
fkwp 3d47609cff Since we are now using templating anyhow we can also combine full and embedded build into one step 2025-06-10 18:17:16 +02:00
fkwp 378d59e948 prettier 2025-06-10 14:27:15 +02:00
fkwp a07dbe645e tools section to self-hosting guide and adding Matrixtester to it 2025-06-10 14:24:59 +02:00
fkwp 6f9adfe3e8 fix: add misssing yarn 2025-06-06 00:21:23 +02:00
fkwp d47e579994 add build_mode also to build_embedded_element_call 2025-06-06 00:20:11 +02:00
fkwp 61d8f9a412 Merge branch 'livekit' into fkwp/dev_build 2025-06-06 00:14:45 +02:00
fkwp 31185ae365 make build_mode optional 2025-06-06 00:13:49 +02:00
fkwp e07c7c864b prettier 2025-06-06 00:02:19 +02:00
fkwp b88bce5220 add production and developt build scripts to package.json 2025-06-05 23:58:51 +02:00
fkwp 775e110ca3 Add build_mode to inputs of build_full_element_call. derive build_mode from PR label 'development build' 2025-06-05 23:58:24 +02:00
fkwp 97d548ee3a add build_mode input and use it in run commands 2025-06-05 23:51:02 +02:00
fkwp b8eccc6d7a use vite minify depending on vite mode 2025-06-05 12:16:22 +02:00
fkwp a548c5d592 test.skip() does only skip the test call back but not the fiturex. Hence, disabling the whole test 2025-05-30 15:03:43 +02:00
fkwp 08ab38280a prettier 2025-05-30 14:49:29 +02:00
fkwp a732fcc604 linting 2025-05-30 14:46:35 +02:00
fkwp 7e19b58976 define the widget test as a slow test 2025-05-30 14:29:17 +02:00
fkwp e56fb7cfc8 use .toBeVisible instead of continueButton.isVisible 2025-05-30 14:10:57 +02:00
fkwp aabfe16021 prettier 2025-05-30 13:51:55 +02:00
fkwp d572977922 refactor: splitout registerUser into its own function. Make the'Confirm your identity by entering your account password below.' flow optional 2025-05-30 13:38:45 +02:00
fkwp ebc714b73f force to pull the latest docker images 2025-05-27 20:06:28 +02:00
fkwp e4fd630f37 fix element web fixture 2025-05-27 19:03:53 +02:00
fkwp 99fc7162e2 fix widget fixture 2025-05-27 18:04:34 +02:00
fkwp 8953936d3d fix docker compose playwright override 2025-05-27 17:53:06 +02:00
fkwp 16aa4ae3a9 Merge branch 'fkwp/docker_compose/resolve_conflicting_ports' into fkwp/docker_compose_allow_local_lk_service 2025-05-27 16:40:28 +02:00
fkwp d585f6232e change JWT port ot 6080 to not conflict with the playwright tests. 2025-05-27 16:30:06 +02:00
fkwp b969857583 Allow the jwt service to be running locallay rather than part of the docker-compose. This helps with developing the lk-jwt-service 2025-05-22 12:49:37 +02:00
fkwp 44ed04475d bump livekit protocol version 2025-05-13 09:38:43 +02:00
fkwp b7e5b81dbf update yarn.lock to remove plugin-basic-ssl 2025-05-05 16:25:18 +02:00
fkwp e12dfa9a9f prettier 2025-05-05 16:17:16 +02:00
fkwp 48b4fd63fe prettier 2025-05-05 16:09:34 +02:00
fkwp f2b68e6dee add localhost domain to certificate 2025-05-05 16:02:19 +02:00
fkwp 128851263b use ssl cert from mini localhost CA 2025-05-05 16:01:58 +02:00
fkwp 679ff8c2af adapt to TLS setup 2025-05-05 15:47:03 +02:00
fkwp 9dcaa60982 added app.m.localhost for element web 2025-05-05 15:26:47 +02:00
fkwp 34a223f04b add yarn dev --host hint 2025-05-05 14:54:14 +02:00
fkwp 005402d8d1 prettier 2025-05-05 14:48:45 +02:00
fkwp 76fb16dbfd update README.md to reflect TLS settings 2025-05-05 14:44:21 +02:00
fkwp 1a3ac826b2 Merge branch 'livekit' into fkwp/refactor_dev_backend 2025-05-05 14:22:10 +02:00
fkwp 25afbf4303 base playwright backend on dev-backend 2025-05-05 14:20:51 +02:00
fkwp 9c65b40225 adapt new hostname schema and move to https URLs 2025-05-05 13:07:37 +02:00
fkwp fb63e64eb4 removed old localhost tls certificates 2025-05-05 13:06:58 +02:00
fkwp 8679b90bd7 add new certs to nginx section 2025-05-05 13:06:02 +02:00
fkwp 14ff6dce93 localhost TLS mini CA including wildcard certs for *.m.localhost 2025-05-05 13:05:07 +02:00
fkwp 08f034251c Add call.m.localhost pointing to yarn dev --host 2025-05-05 13:02:58 +02:00
fkwp 06e1a4eb1e Adapt new naming schema *.m.localhost 2025-05-05 12:57:23 +02:00
fkwp 984383b60d typo 2025-04-25 00:32:19 +02:00
fkwp de4875ac7c replace jsonc with nginx highlighting 2025-04-25 00:31:13 +02:00
fkwp 9416c41d62 added note about certificate exceptions 2025-04-25 00:18:27 +02:00
fkwp b61bed0197 cleanup used ports, reflect endpoint routing of JWT service and SFU websocket connection 2025-04-25 00:18:27 +02:00
fkwp 8ad1d60975 remove NOTE wrt. legacy livekit key from README.md 2025-04-25 00:18:19 +02:00
fkwp 1ae876de26 remove legacy livekit key 2025-04-25 00:18:19 +02:00
fkwp 09177b90d3 added matrix-rtc server to route jwt and sfu traffic. renamed file to dev_nginx.conf 2025-04-25 00:18:01 +02:00
fkwp a5036ee291 Merge branch 'livekit' into fkwp/add_information_about_synapse_listeners 2025-04-17 18:58:09 +02:00
fkwp 4694354f69 add informatino about required synapse listeners 2025-04-15 17:53:27 +02:00
fkwp e98b0ed1ed indentation 2025-04-11 00:06:03 +02:00