talksik
acaedff73c
fix: improve visibility of keyboard hints
...
During compose video or screen recording, the keyboard hints were
invisible if the content was super bright.
2026-04-08 17:13:47 -07:00
talksik
8f68a81739
refactor: re-use one component for screen picker
...
huddles and screen clips use same picker component now. We had to make
sure that tailwind works for both of them.
2026-04-08 17:13:06 -07:00
talksik
91269754f3
tidy keyboard hints consistent position
2026-04-08 16:56:07 -07:00
talksik
0d4b9afd24
fix: review screen recording without clipped content
2026-04-08 16:51:17 -07:00
talksik
0bbddd1e60
feat: allow recording with webcam overlay
2026-04-08 16:46:31 -07:00
talksik
b2dbd65c19
fix: prevent mirror review of screen recording
2026-04-08 16:38:10 -07:00
talksik
4c60957657
refactor
2026-04-08 16:13:30 -07:00
talksik
ca7b408d37
remove screenrecord shortcut hint
2026-04-08 16:07:13 -07:00
talksik
36fbb2acfd
first pass implementation
2026-04-08 16:04:55 -07:00
talksik
382f195847
fix: autoplay sound overlapping with main window
...
This created some distortion because while we were hiding the autoplay
window, this would not stop it's media. It's better to stop the media
completely
2026-04-08 11:06:49 -07:00
talksik
5f80bd15d5
feat: allow reactions to particles in stream
...
Closes #111
2026-04-08 10:14:47 -07:00
talksik
ac7336592a
feat: support markdown formatting and rendering
...
Resolves #110
Goes the extra mile and supports markdown for sending code and formatted
text, almost document-like. It feels more like GitHub's comments and
text areas.
2026-04-08 09:38:21 -07:00
talksik
bcd0fa37ef
fix: autoplay window not showing on all desktops
...
Closes #108
2026-04-08 09:10:05 -07:00
talksik
ead17ba45f
remove skip controls with stream playback
...
Closes #125
2026-04-08 09:04:31 -07:00
talksik
4fc5ecb6fb
perf: improve react memo performance
2026-04-08 08:59:52 -07:00
talksik
8cbc04fff7
fix: list of streams glitching to top
...
This was due to real-time changes to items leading to scrolling to top.
Closes #123
2026-04-08 08:56:12 -07:00
talksik
7e11d66dc2
enhance keyboard experience
...
Now we have network root and stream-view defining their own hints
instead of trying to re-use one component. And we also introduce an
overlay for additional commands for people.
2026-04-08 08:40:07 -07:00
talksik
f95ccf134d
remove grid view for streams
...
- Reduces surface area
- Reduces options for people (less cognitive load)
- One way to use the product
- List view works better for keyboard shortcuts
- List view has basics such as recency
2026-04-08 08:21:54 -07:00
talksik
d8b4c488b5
fix: grid view context menu not triggering
...
Right click on cards was not showing context menu.
2026-04-08 08:11:51 -07:00
talksik
97437c7089
feat: show transcript preview in streams list
2026-04-08 08:11:21 -07:00
talksik
4a1ded9655
chore: bump version
2026-04-07 16:49:09 -07:00
talksik
9312f095b2
feat: seek media particles and speed playback
...
Closes #79
Closes #80
2026-04-07 16:48:40 -07:00
talksik
695adddaff
feat: hold to pause stream playback
2026-04-07 16:32:51 -07:00
talksik
45fa4cb0e5
fix: close stream view on huddle
...
Closes #107
2026-04-07 16:24:19 -07:00
talksik
9c36a8f94d
fix: close autoplay window on entering stream
...
Closes #114
2026-04-07 16:24:02 -07:00
talksik
cd0d817cf7
fix: prevent skipping particles in stream after creation
...
Closes #112
2026-04-07 16:18:50 -07:00
Arjun Patel and GitHub
cc190ba85f
feat: triage streams with open, close ( #121 )
...
* refactor: use interfaces for function params
* cleanup message retention code
* support open / closed streams
- Tabs for viewing separately
- Context menu to close / open streams
- Update stream particle status field
* ui tweak
* show stream state in stream-view
* ui tweaks
* cleanup message retention from orion api
2026-04-07 16:11:13 -07:00
talksik
4a9cb7fc58
fix: packaged app doesn't resolve multiple windows
...
The path that main.ts was reading was incorrect. This change fixes the
issue.
2026-04-01 11:51:59 -07:00
talksik
c5525bb980
reduce footprint of closing indicator
2026-04-01 11:43:33 -07:00
talksik
1e3d946037
bump version
2026-04-01 11:30:01 -07:00
talksik
e117f58dbe
tidy bottom section of stream-view
2026-04-01 11:28:54 -07:00
talksik
7c77d02ab5
feat: show human playback markers on timeline
...
Resolves #105
2026-04-01 11:02:48 -07:00
Arjun Patel and GitHub
4d1ad717ad
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.
2026-04-01 10:32:15 -07:00
talksik
47e2a9baa4
fix: audio bars overlap with bottom controls
2026-03-31 15:08:31 -07:00
Arjun Patel and GitHub
3de3ca7cef
setup electron multi-window architecture ( #102 )
...
* prototype with two windows
* use deps in separate window render process
* enhance autoplay into desktop overlay
* fix: autoplay window not applying tailwind styles
2026-03-31 15:05:59 -07:00
talksik
7f490b4596
add script for invalidating release.json
2026-03-30 14:13:12 -07:00
talksik
c54a75c3c5
chore: bump version
2026-03-30 14:02:06 -07:00
talksik
ffb4ae6c5a
cleanup unused import
2026-03-30 14:01:49 -07:00
talksik
7a8b31dbcb
cleanup unused import
2026-03-30 13:57:22 -07:00
talksik
a5e1ea1acf
feat: show unseen count in macos dock
...
Resolves #93
2026-03-30 13:53:50 -07:00
talksik
65ea901626
fix: use actual particle child particle creation time
...
This was causing issues in which the last_child_created_at field for
stream particles was slightly after the actual particle's creation time,
and so comparing whether it's unseen merely via the playback markers
would be inaccurate.
2026-03-30 13:52:40 -07:00
talksik
d10de739b3
show indicator of stream expiring soon
2026-03-30 13:33:02 -07:00
talksik
d56541bd13
feat: allow network admin to control ephemerality setting
...
Resolves #92
2026-03-30 13:27:27 -07:00
talksik
7f93aa9db3
reduce blur for thumbnails
2026-03-30 12:53:35 -07:00
talksik
086cf4f1ee
keyboard-driven navigation
...
Resolves #66
2026-03-30 12:51:15 -07:00
talksik
14285575e4
default to 4 / 3 aspect ratio for videos
...
This also sets the default window size to adhere to the default aspect
ratio
2026-03-30 12:35:48 -07:00
talksik
9f6633bf1f
feat: add grid view for streams
2026-03-30 12:08:16 -07:00
talksik
76c538dca2
enhance text compose experience
2026-03-30 11:34:53 -07:00
talksik
c797d7253e
improve attachments experience for media particles
2026-03-30 11:27:33 -07:00
Arjun Patel and GitHub
d6280439d0
feat: support file and image attachments ( #98 )
...
* upload & view attachments to particles
* allow download of attachments
2026-03-30 10:31:24 -07:00
talksik
3564055c29
update response status
2026-03-29 12:23:03 -07:00
talksik
21062a7786
tail migration logs
2026-03-29 11:57:50 -07:00
talksik
43c0a217c6
deploy production environment
2026-03-29 11:44:07 -07:00
talksik
48c73893b3
remove unused env var
2026-03-29 11:02:51 -07:00
talksik
7042b2d575
cleanup workaround for neon db
...
We are now using the llink database within our gcp datbase instances, so
likely won't be needing this workaround
2026-03-29 10:18:34 -07:00
talksik
5eaa51ffcc
migrate to llink database within gcp
2026-03-29 10:17:17 -07:00
talksik
3d71dbaed0
chore: send admin email on adding waitlist entry
2026-03-29 09:43:21 -07:00
talksik
be966d78a8
tests: remove unnecessary service test
2026-03-29 09:09:01 -07:00
talksik
acac407fd0
feat(orion): add rest api for waitlist
2026-03-29 09:04:15 -07:00
talksik
c471c28bb0
chore: improve release script
2026-03-25 16:15:25 -07:00
talksik
bf1a9257ff
chore: bump version
2026-03-25 16:12:10 -07:00
talksik
8cb9eb55c7
chore: cleanup network selector ui
2026-03-25 16:08:55 -07:00
talksik
f3ddceecfc
fix: persist auto-play setting
2026-03-25 16:03:14 -07:00
talksik
60daec38ff
fix: allow text selection and copy
...
This was conflicting with the left and right tap areas for navigating a
stream.
2026-03-25 15:56:48 -07:00
talksik
739bb0cf80
fix: fullscreen button not working
2026-03-25 15:54:42 -07:00
talksik
d525d6a588
fix: window title inaccurate
2026-03-25 15:54:05 -07:00
talksik
0ab2ec2bb8
fix: stale time ago in streams list
2026-03-25 15:53:35 -07:00
talksik
d817e637c0
fix: janky captions experience
2026-03-25 15:41:25 -07:00
talksik
3c1d9cd4a7
feat: improved layout and captions
2026-03-25 15:05:38 -07:00
talksik
986a389606
feat: generate transcript and event-driven particle processing
...
This generates the transcript and shows the caption experience on the
client side for media particles. It also simplifies other side effects
that we must perform such as updating the `last_child_created_at` field
for stream and container particles.
2026-03-25 14:43:47 -07:00
talksik
92bbaa11b3
fix: neon db errors for prepared statements
2026-03-25 14:42:01 -07:00
talksik
0111ea28af
refactor!: use consistent structure for particles
...
Making the firestore subcollections the same name helps with creating
indices and queries across subcollections of different depths. This also
prevents the need for conditional logic for network root / top-level
particles.
2026-03-25 13:14:08 -07:00
talksik
d8a45b22d3
chore: setup boilerplate for particle processor worker
...
This sets up an example of listening to firestore data and reacting. It
also sets up our first worker in the kubernetes cluster.
2026-03-25 09:52:23 -07:00
talksik
86bdc78852
chore: bump version
2026-03-24 19:58:34 -07:00
Arjun Patel and GitHub
3d52fa6ccc
feat: create network, and manage members, invitations ( #74 )
2026-03-24 19:50:06 -07:00
Arjun Patel and GitHub
bf0147d542
refactor: reference human id instead of email ( #73 )
...
* refactor: update api and client to reference humanIds
* fix: prevent deletion of network member
This may cause various side effects if there is data in other services
which reference this member
2026-03-24 19:48:02 -07:00
talksik
3bf3f16be7
fix: auto-select myself as new stream's member
2026-03-24 11:29:14 -07:00
talksik
83190727f8
fix: show last sender avatar in streams list
2026-03-24 11:10:56 -07:00
talksik
6f033e2a73
feat: jump to my newly created particle once created
2026-03-24 10:27:50 -07:00
talksik
1fb31a0d04
chore: show submitting loader during compose
2026-03-24 09:58:50 -07:00
talksik
33a1318958
fix: hide author in "seen by" list
2026-03-24 07:29:13 -07:00
talksik
fa91ce0382
fix: prefetch media warning
...
This is due to the "audio" and "video" preload having limited support in
browsers.
2026-03-24 07:27:23 -07:00
talksik
161c89acf7
feat: resume playback on the clip after we left off
2026-03-24 07:13:08 -07:00
talksik
0f993772c9
chore: bump version
2026-03-21 18:58:19 -07:00
talksik
97b2e7914e
feat: filter to ephemeral streams and particles
2026-03-21 18:55:03 -07:00
talksik
356a166c7e
chore: remove mic icon from autoplay overlay
2026-03-21 18:47:07 -07:00
talksik
e61f838a98
feat: allow toggling eavesdropping
2026-03-21 18:34:41 -07:00
talksik
59ffa7ad6e
feat: preload adjacent media in streams
2026-03-21 18:24:03 -07:00
talksik
f6ee5e998a
feat: play sound effect on new text particle
2026-03-21 18:06:58 -07:00
talksik
4a4d213eb6
feat: autoplay inbound clips
2026-03-21 17:59:41 -07:00
talksik
18f587864f
fix: prevent resize of window
...
Users fiddling with window and complaining.
2026-03-21 16:58:44 -07:00
talksik
8168b7d8f5
fix: prevent duplicate artifact creation
2026-03-21 16:38:37 -07:00
talksik
e488cc79d0
fix: escape not working during stream configure
2026-03-21 15:39:26 -07:00
talksik
35f24cb0ef
chore: integrate linter for react hooks
2026-03-21 15:31:29 -07:00
talksik
3eea235ab1
feat: use declarative callbacks for data changes
2026-03-21 15:31:05 -07:00
talksik
e96f5cbe8a
fix: playback restarting from start of stream
...
This does a major refactor to using particleId for state of playback
instead of index, since index would change if the particle children data
does partial hydrations and a particle's index changes. Also it
abstracts much of the playback details from the view component.
2026-03-21 15:11:26 -07:00
talksik
79d8d0eac0
fix: use more condensed width for text content container
2026-03-21 13:45:40 -07:00
talksik
a87b1d86a1
chore: always show top bar for necessary metadata
2026-03-21 13:40:48 -07:00
talksik
80afa58ac9
fix: increase size of compose container for long messages
2026-03-21 12:55:08 -07:00
talksik
8ee8aba5a2
fix: open link on clicking preview card
2026-03-21 12:48:45 -07:00