Commit Graph
38 Commits
Author SHA1 Message Date
talksik 38bd098ca6 feat: select input devices for recordings
Closes #68
2026-04-13 10:29:10 -07:00
talksik 81a82eee38 fix: text message not showing attachments upon sending
Closes #154
The sender of the message wouldn't see the children particle since we
only fetch the children once. And perhaps the firestore local cache
doesn't have the children particles or some other race condition. But
now, we fetch the live children.

This should anyways use the same number of reads as before since
attachments do not change.
2026-04-13 08:59:34 -07:00
talksik 6b20fc2ee6 debug log 2026-04-12 13:16:46 -07:00
f03868e65b feat: paginate closed streams tab (#148)
Closed streams grow unbounded as teams age and can reach 1000s of items,
while open streams stay bounded by active work. Switch the streams list
to subscribe per-status so each tab only pulls what it renders, and cap
the closed tab to a 50-item window that grows via a Load more action.

The open tab remains unbounded so per-row realtime features — autoplay,
huddle indicators — keep full coverage of the streams that matter.
Closed streams are archived and don't need push behavior, which side-
steps the autoplay baseline-reset and huddle-on-page-2 risks that made
pagination complicated for the open tab.

Refs flowy-live/llink#138.

Co-authored-by: Claude <[email protected]>
2026-04-12 11:55:23 -07:00
Arjun PatelandGitHub 2bc4ce7060 fix: unreliable websocket functionality (#144)
* increases timeout

* refactor: reuse constants for redis db

* avoid closing connection on pong error

* fix: prevent electron from pausing timer executions

Our pings could be paused when our app is backgrounded.

* refactor: remove unnecessary refs

* fix: presence unreliable within same pod

It was broadcasting presence changes to other pods, but not notifying
clients connected to the same pod
2026-04-12 10:00:11 -07:00
talksik 4d9a415981 fix: prevent playback marker going back in time
Closes #141
2026-04-09 17:02:50 -07:00
talksik 6fe5af8d8d fix: dock app badge shows incorrect number
Closes #122

We now only show number based on open streams
2026-04-09 12:31:14 -07:00
talksik d024751135 fix: avoid beep sound on text messages when autoplay disabled 2026-04-09 12:21:13 -07:00
talksik e9af91e0c3 fix: maintain consistent sort of stream members 2026-04-09 12:19:17 -07:00
Arjun PatelandGitHub 3d8fa79657 add real-time infrastructure (#137)
* setup infra for pusher service

* setup client sdk for pusher service

* fix: ping parse failure

* fix: send pong back to client

avoid disconnections every 2.5 minutes

* increase replicas

* feat: show presence and compose indicator
2026-04-09 12:08:18 -07:00
talksik 3995777965 feat: toggle video / audio with keybinding 2026-04-09 08:40:27 -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 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
Arjun PatelandGitHub 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 7c77d02ab5 feat: show human playback markers on timeline
Resolves #105
2026-04-01 11:02:48 -07:00
Arjun PatelandGitHub 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 a5e1ea1acf feat: show unseen count in macos dock
Resolves #93
2026-03-30 13:53:50 -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 086cf4f1ee keyboard-driven navigation
Resolves #66
2026-03-30 12:51:15 -07:00
talksik 9f6633bf1f feat: add grid view for streams 2026-03-30 12:08:16 -07:00
Arjun PatelandGitHub 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 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
Arjun PatelandGitHub 3d52fa6ccc feat: create network, and manage members, invitations (#74) 2026-03-24 19:50:06 -07:00
Arjun PatelandGitHub 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 6f033e2a73 feat: jump to my newly created particle once created 2026-03-24 10:27:50 -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 97b2e7914e feat: filter to ephemeral streams and particles 2026-03-21 18:55:03 -07:00
talksik 59ffa7ad6e feat: preload adjacent media in streams 2026-03-21 18:24:03 -07:00
talksik 4a4d213eb6 feat: autoplay inbound clips 2026-03-21 17:59:41 -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 d6b7ecc8fd feat: support sending and preview links 2026-03-21 12:46:23 -07:00
Arjun PatelandGitHub 4b66d8e185 feat: initial conversational flow (#37)
* chore: only set visibility for container particles

* create reusable controls indicator for reply or new

* compress the size of top bar

* refactor: restructure state, routing, and more

* introduce stream compose flow

* feat: compose new stream full flow

* implement stream player

* fix: prevent redirect for signed object urls

* fix: implement stream playback cleaner structure

* refactor: layout file name

* feat: show stream name in breadcrumbs

* chore: tweak padding

* chore: adjust position of audio bars

* feat: show latest particle preview in stream list

* fix: remove console log

* refactor: reorder classes

* fix: avoid passing in updated_at to firestore particle

* refactor: extract properties for container particles to flat fields in firestore

* make the stream previews look alive

* feat: show audio bars during audio clip playback

* feat: order streams by last child creation

* feat: playback where I left off

* chore: remove unused store

* fix: recording mode not using shared state

* chore: clean unused variable

* remove unused imports

* fix: improve controls indicator immersion

* feat: show playback progress in bar & auto-play text

* feat: auto-exit stream on playback completion

* fix: jittery media playback progress

* fix: navigate during state change is invalid with react router

* fix: buggy exit progress when changing clips

* feat: add app icon

* update package.json info

* feat: only show streams visible to me

* feat: show seen indicator on particles

* fix: prevent unnecessary effects

* fix: play new particle after playback is ended

* use contols indicator for exit timer
2026-03-19 16:29:40 -07:00
talksik 990137b829 feat: add current path
This resolves #20
2026-03-18 08:14:32 -07:00
Arjun PatelandGitHub 51857bed63 chore: integrate firestore for particles (#32)
* plumb for firestore

* chore: cleanup orion api to only include essentials

* setup boilerplate for data and rendering

This includes zod types creation for API response validation, and
exploration of path based resolution of rendering particles.

* chore: structure container particles for rendering children

* wire firestore crud for particles

* integrate visibility to particles

* docs: explain particle view resolver
2026-03-17 19:52:31 -07:00