support huddles (#106)

* add token endpoint for livekit

* fix: invalid type passed to hook

* fix: inject livekit env variables for orion

* fix: show controls indicator above stream # shortcut

* return livekit server url from api

* simple huddle implementation with streams

* set human name in livekit room context

* simplify deployment tooling

* join huddle with audio automatically

* feat: show when there is an active huddle

This introduces a webhook which listens to events from livekit and
updates our firestore stream particle. It keeps the client simple,
reacting to changes to firestore docs.

* use headphones icon for huddles

* fix: screenshare not working in electron

The default VideoConference component from livekit doesn't support
screenshare in electron. This attempts to compose our own layout with
livekit components ourselves and introduces our own flow for
screenshare.
This commit was merged in pull request #106.
This commit is contained in:
Arjun Patel
2026-04-01 10:32:15 -07:00
committed by GitHub
parent 47e2a9baa4
commit 4d1ad717ad
32 changed files with 1358 additions and 243 deletions
+45 -19
View File
@@ -1,14 +1,12 @@
apiVersion: skaffold/v4beta11
kind: Config
metadata:
name: llink-services
name: migrations
build:
local: {}
tagPolicy:
gitCommit:
variant: AbbrevCommitSha
# NOTE: we use different profiles for a simpler mental model
profiles:
- name: migrations
build:
@@ -22,45 +20,73 @@ profiles:
- k8s/migrations.yaml
deploy:
kubectl: {}
---
apiVersion: skaffold/v4beta11
kind: Config
metadata:
name: orion
build:
local: {}
tagPolicy:
gitCommit:
variant: AbbrevCommitSha
profiles:
- name: dev
build:
hooks:
before:
# already run in make test
# - command: ["go", "test", "./..."]
artifacts:
- image: orion
context: .
docker:
dockerfile: Dockerfile
- image: particleprocessorworker
context: .
docker:
dockerfile: Dockerfile.particleprocessorworker
manifests:
rawYaml:
- k8s/dev/*
- k8s/dev/orion.yaml
deploy:
kubectl: {}
- name: prod
build:
hooks:
before:
# already run in make test
# - command: ["go", "test", "./..."]
artifacts:
- image: orion
context: .
docker:
dockerfile: Dockerfile
manifests:
rawYaml:
- k8s/prod/orion.yaml
deploy:
kubectl: {}
---
apiVersion: skaffold/v4beta11
kind: Config
metadata:
name: worker
build:
local: {}
tagPolicy:
gitCommit:
variant: AbbrevCommitSha
profiles:
- name: dev
build:
artifacts:
- image: particleprocessorworker
context: .
docker:
dockerfile: Dockerfile.particleprocessorworker
manifests:
rawYaml:
- k8s/prod/*
- k8s/dev/particleprocessorworker.yaml
deploy:
kubectl: {}
- name: prod
build:
artifacts:
- image: particleprocessorworker
context: .
docker:
dockerfile: Dockerfile.particleprocessorworker
manifests:
rawYaml:
- k8s/prod/particleprocessorworker.yaml
deploy:
kubectl: {}