Skip to content

Releases: aiyu-ayaan/BetweenUs

v0.0.1-alpha.13

v0.0.1-alpha.13 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Aug 20:52
87874af

Features

  • Pressing play on the page plays it for the call
  • Press a video, the call watches it - no link, no button
  • Press a video on YouTube and it plays, without the queue detour
  • The Listen Together panel
  • The Listen Together player, and the clock it runs on
  • Listen Together, the shared transport on /ws/call
  • Show the marks in the composer as they are typed
  • Return makes a newline inside a list, quote or fence
  • Carry a list on to its next item
  • Render markdown in messages
  • A markup parser, ported from android
  • Draw bulleted and numbered lists in messages
  • Bulleted and numbered lists
  • Bubble-style message rows, matching the android layout

Bug fixes

  • The pause button that did nothing, in a window that was silent
  • Nothing plays in the browser, on the one event that catches it
  • The browser is not a second player
  • A seek that snapped back, and a browser that could be heard
  • The second copy of the song, playing in the browser tab
  • One Listen Together panel, on the stage, bounded
  • The sandbox that made it silent, and YouTube itself in the call
  • Hide the members panel by default
  • Grow the composer with what is typed, up to a cap
  • Wrap long composer text instead of scrolling it
  • Shrink the chat header call button to match its neighbours
  • Double-click reply, not native word-select
  • Swipe right-to-left replies, left-to-right stays the drawer's
  • A peer id that survives a reconnect, and a seat held for one
  • Reopen a socket the background killed, on the way back
  • Only a refused credential ends a session

Other changes

  • Changes done for new release
  • Add interactive installation & setup section and feature highlights
  • Update architecture and service docs with listen together and rich formatting
  • A blocked window looks like a blocked window
  • The browser that had to stop playing, and the seek that had to stay put
  • Clicking a video is the control
  • Playing what you found, and the browser that was making its own noise
  • The panel's shape, and the two bugs it came from
  • Browsing YouTube in the call, and the sandbox that made it silent
  • Listen Together

Artifacts

Platform This release
Server images Built here
Desktop (Windows) Built here
Android Built here

Install

Not every release rebuilds every platform. The Artifacts table
above says which of these were built here and which are the last
release's, re-attached unchanged - a download whose file name
carries an older version is that, and it is the current build for
its platform.

Desktop (Windows)BetweenUs-0.0.1-alpha.13-Setup.exe
installs; -Portable.exe needs nothing.

Android — take the APK matching your device (arm64-v8a unless it is
old or an emulator), or universal if you would rather not choose. The
.aab is for Play, not for sideloading.

Serverdocker-compose.yml, nginx.conf and backup.sh below are a
deployment folder. Put them beside your existing .env and:

docker compose --env-file .env pull
docker compose --env-file .env up -d

Same project name, same volumes, same .env as a built deployment, so an
existing server keeps its database and its uploads. BETWEENUS_VERSION in
.env overrides the pinned version; unset, this bundle stays on
0.0.1-alpha.13.

Images

aiyuayaan/betweenus:<service>-0.0.1-alpha.13, built for
linux/amd64 and linux/arm64 under one tag - a 64-bit Pi, an Ampere VPS or an
Apple silicon Mac pulls the same name and gets its own architecture. The moving
tags <service>-alpha and <service>-latest are
pointed at it as the last step of the run.

v0.0.1-alpha.12

v0.0.1-alpha.12 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Aug 20:14
ecd0be8

Features

  • Repaint a changed picture, name or server without a restart
  • Repaint a changed picture or name where it already is
  • Announce a changed profile or server, rather than let it go stale
  • Draw several photos as one album, not several cards
  • Draw several photos as one album, not several attachments
  • Draw messages the way a phone messenger draws them
  • Offer a way back down when the conversation is scrolled up
  • Let the sheets take their colour from the scheme
  • Put the call controls in a floating toolbar
  • Repaint the entry, friends and settings screens
  • Redraw the conversation
  • Move the shell onto the scheme, and give it motion
  • Rebuild the shared controls in the expressive language
  • Give the client a Material 3 Expressive theme
  • Seen-by faces on a message, and swipe a row to reply
  • Draw who has seen a message, and reply on a double click
  • Say who has read a message, derived from the read markers
  • Hold a call when another one takes the audio, and say so
  • Say when the connection is down, and stop retrying after 30s

Bug fixes

  • Pad connection banner for status bar insets and consume them in shell
  • Give the drawer a fixed gutter, not a fraction of the screen
  • Make the status dot subscribe to statuses rather than to a function
  • Give the drawer a third of the row rather than half
  • Split the row down the middle, and make a swipe prove it is one
  • Make the call screen readable, and let the chrome leave downwards
  • Give the gutter to the drawer by moving the gesture, not guarding it
  • Size the composer's buttons to the bar they are in
  • Give the left edge to the drawer, the message to the reply
  • Ask the system for the swipe area instead of ceding it
  • Leave the left edge to Back and the drawer
  • Catch up after the background, and stop the drawer stealing the swipe
  • Centre the initial in a pictureless avatar
  • Show the notification the prompt was asked for, and fade the read line
  • Scope refresh-token reuse revocation to one sign-in

Other changes

  • Changes done for new release
  • Record the live profile and server updates, and the status dot that was not live
  • Correct the swipe-to-reply rule, and note the jump button
  • Record the Material 3 Expressive redesign
  • Record the Android catch-up and the drawer gesture
  • Record read receipts and the reply shortcuts
  • Record the session, hold and reconnect work
  • !docs : Docs is done

Artifacts

Platform This release
Server images Built here
Desktop (Windows) Built here
Android Built here

Install

Not every release rebuilds every platform. The Artifacts table
above says which of these were built here and which are the last
release's, re-attached unchanged - a download whose file name
carries an older version is that, and it is the current build for
its platform.

Desktop (Windows)BetweenUs-0.0.1-alpha.12-Setup.exe
installs; -Portable.exe needs nothing.

Android — take the APK matching your device (arm64-v8a unless it is
old or an emulator), or universal if you would rather not choose. The
.aab is for Play, not for sideloading.

Serverdocker-compose.yml, nginx.conf and backup.sh below are a
deployment folder. Put them beside your existing .env and:

docker compose --env-file .env pull
docker compose --env-file .env up -d

Same project name, same volumes, same .env as a built deployment, so an
existing server keeps its database and its uploads. BETWEENUS_VERSION in
.env overrides the pinned version; unset, this bundle stays on
0.0.1-alpha.12.

Images

aiyuayaan/betweenus:<service>-0.0.1-alpha.12, built for
linux/amd64 and linux/arm64 under one tag - a 64-bit Pi, an Ampere VPS or an
Apple silicon Mac pulls the same name and gets its own architecture. The moving
tags <service>-alpha and <service>-latest are
pointed at it as the last step of the run.

v0.0.1-alpha.9

v0.0.1-alpha.9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Aug 10:45
17daa5b

Features

  • Show how long the call has been running
  • Input sensitivity, which was not blocked after all
  • Tell the owner when somebody is on their machine
  • Web push, so a closed tab is still reachable
  • Safety numbers, so a lying key directory can be caught
  • Implement file transfer functionality over data channel
  • A share sheet hand-off now asks where it is going

Bug fixes

  • The packaged app died before it opened a window
  • A copied image could not be pasted into a message
  • A socket whose token expired gave up instead of refreshing
  • A network blip during refresh signed you out
  • A voice channel stopped listing people who had left
  • Stop throwing away the microphone you picked
  • The microphone gate was refused by CSP, so it never ran
  • Correct every Nexora reference to the real repo name, BetweenUs
  • Stop tracking .claude/worktrees, unbreak recursive-submodule checkouts

Other changes

  • Changes done for new release
  • Record the main-process crash in the packaged desktop app
  • Record the share picker and clipboard paste on Android
  • Record the two faults that ended live sessions
  • !docs : Docs is done
  • Add the missing Notifications architecture page
  • Make localhost:3000/ work for dev, keep /Nexora/ in production
  • Match the desktop client's exact theme
  • Center the Android screenshot
  • Embed the Android screenshot, add offline local search
  • Redesign the doc pages, not just the landing page
  • Redesign the landing page
  • Add Android client architecture page
  • Split the one giant ERD into per-section diagrams
  • Add pnpm docs / docs:build / docs:install root scripts
  • Replace default Docusaurus README with a project-specific one
  • Add docs deploy workflow, triggered by a !docs marker
  • Deployment, CI, security, testing and local-run guides
  • Per-service REST/WebSocket reference
  • Architecture, system design and database schema content
  • Scaffold Docusaurus site under docs/

Artifacts

Platform This release
Server images Built here
Desktop (Windows) Built here
Android Built here

Install

Not every release rebuilds every platform. The Artifacts table
above says which of these were built here and which are the last
release's, re-attached unchanged - a download whose file name
carries an older version is that, and it is the current build for
its platform.

Desktop (Windows)BetweenUs-0.0.1-alpha.9-Setup.exe
installs; -Portable.exe needs nothing.

Android — take the APK matching your device (arm64-v8a unless it is
old or an emulator), or universal if you would rather not choose. The
.aab is for Play, not for sideloading.

Serverdocker-compose.yml, nginx.conf and backup.sh below are a
deployment folder. Put them beside your existing .env and:

docker compose --env-file .env pull
docker compose --env-file .env up -d

Same project name, same volumes, same .env as a built deployment, so an
existing server keeps its database and its uploads. BETWEENUS_VERSION in
.env overrides the pinned version; unset, this bundle stays on
0.0.1-alpha.9.

Images

aiyuayaan/betweenus:<service>-0.0.1-alpha.9, built for
linux/amd64 and linux/arm64 under one tag - a 64-bit Pi, an Ampere VPS or an
Apple silicon Mac pulls the same name and gets its own architecture. The moving
tags <service>-alpha and <service>-latest are
pointed at it as the last step of the run.

v0.0.1-alpha.11

v0.0.1-alpha.11 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Aug 19:15
e2b6ed9

Features

  • Ring somebody into the call from the call controls
  • Add somebody to a call from inside the call
  • A Calls & data screen, and a phone that reports what it moved
  • A Calls & Data page, and per-link measurement to fill it
  • Record what each link in a call moved, and add up a month of them

Bug fixes

  • Size the surface to the frame, so "fit" actually fits
  • Show a whole camera, and give the call dock room to breathe
  • Drop an answer that arrives after the connection is already settled

Other changes

  • Changes done for new release
  • Note why the scaling type alone did not stop the crop
  • Record the in-call ring on the web, and the phone showing a whole frame
  • Record the per-link call data, the analytics page and the Android screens

Artifacts

Platform This release
Server images Built here
Desktop (Windows) Built here
Android Built here

Install

Not every release rebuilds every platform. The Artifacts table
above says which of these were built here and which are the last
release's, re-attached unchanged - a download whose file name
carries an older version is that, and it is the current build for
its platform.

Desktop (Windows)BetweenUs-0.0.1-alpha.11-Setup.exe
installs; -Portable.exe needs nothing.

Android — take the APK matching your device (arm64-v8a unless it is
old or an emulator), or universal if you would rather not choose. The
.aab is for Play, not for sideloading.

Serverdocker-compose.yml, nginx.conf and backup.sh below are a
deployment folder. Put them beside your existing .env and:

docker compose --env-file .env pull
docker compose --env-file .env up -d

Same project name, same volumes, same .env as a built deployment, so an
existing server keeps its database and its uploads. BETWEENUS_VERSION in
.env overrides the pinned version; unset, this bundle stays on
0.0.1-alpha.11.

Images

aiyuayaan/betweenus:<service>-0.0.1-alpha.11, built for
linux/amd64 and linux/arm64 under one tag - a 64-bit Pi, an Ampere VPS or an
Apple silicon Mac pulls the same name and gets its own architecture. The moving
tags <service>-alpha and <service>-latest are
pointed at it as the last step of the run.

v0.0.1-alpha.10

v0.0.1-alpha.10 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Aug 17:21
d4627f1

Features

  • Show a call log in settings, and count what a call moved
  • Record a per-person call log in call-service
  • Optimize full-screen views, settings, and voice for mobile viewports
  • Convert right panels to mobile slide-over sheets
  • Add mobile header and hamburger navigation toggle
  • Offer a reload when a newer build is being served
  • Create android-style workspace navigation drawer
  • Check for, download and apply updates, per Windows flavor
  • Add responsive hooks and breakpoint utilities
  • Answer a ring without leaving the window
  • Answer a ring from the lock screen
  • Carry a ring to every device the person has
  • Ring one person into a call

Bug fixes

  • Add ensure-electron script to prevent MODULE_NOT_FOUND during install
  • Fix server members slide-over panel and auto-navigate to text on voice disconnect
  • Remove duplicate mobile TopBar header and fix friends tab clipping
  • Point the updater at the repository that publishes the APKs
  • Correct indentation for ConnectionSheet visibility in VoiceChannelScreen
  • Add drag region to LoginScreen for better window interaction
  • Auto-extract and configure electron binary on install and dev
  • The microphone is on when it is opened, not a moment later

Other changes

  • Changes done for new release
  • Record the call log in TRACK, TODO and TESTING
  • Remove obsolete SDD progress ledger file
  • How each client notices a release and takes it
  • Add implementation plan for mobile web responsive UI adaptation
  • Add design spec for mobile web responsive UI adaptation
  • A ring is not channel-scoped news, so focus does not swallow it
  • Write down what a ring is and why it may be loud
  • Desktop installers point at the deployment, not at localhost

Artifacts

Platform This release
Server images Built here
Desktop (Windows) Built here
Android Built here

Install

Not every release rebuilds every platform. The Artifacts table
above says which of these were built here and which are the last
release's, re-attached unchanged - a download whose file name
carries an older version is that, and it is the current build for
its platform.

Desktop (Windows)BetweenUs-0.0.1-alpha.10-Setup.exe
installs; -Portable.exe needs nothing.

Android — take the APK matching your device (arm64-v8a unless it is
old or an emulator), or universal if you would rather not choose. The
.aab is for Play, not for sideloading.

Serverdocker-compose.yml, nginx.conf and backup.sh below are a
deployment folder. Put them beside your existing .env and:

docker compose --env-file .env pull
docker compose --env-file .env up -d

Same project name, same volumes, same .env as a built deployment, so an
existing server keeps its database and its uploads. BETWEENUS_VERSION in
.env overrides the pinned version; unset, this bundle stays on
0.0.1-alpha.10.

Images

aiyuayaan/betweenus:<service>-0.0.1-alpha.10, built for
linux/amd64 and linux/arm64 under one tag - a 64-bit Pi, an Ampere VPS or an
Apple silicon Mac pulls the same name and gets its own architecture. The moving
tags <service>-alpha and <service>-latest are
pointed at it as the last step of the run.

v0.0.1-alpha.8

v0.0.1-alpha.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Aug 19:39
bcd381f

Features

  • Print every command the deployment needs after the copy
  • The installer copies the files and stops there
  • Install a deployment without cloning the repository
  • Paste a picture into the composer
  • Send into BetweenUs from the system share sheet

Bug fixes

  • One owner for the message list's scroll
  • Keep the call header clear of the status bar

Other changes

  • Changes done for android release
  • The no-clone install path, and the build commands it dated
  • Record the share sheet, composer paste and the two screen fixes

Artifacts

Platform This release
Server images Carried forward from v0.0.1-alpha.7
Desktop (Windows) Carried forward from v0.0.1-alpha.7
Android Built here

Install

Not every release rebuilds every platform. The Artifacts table
above says which of these were built here and which are the last
release's, re-attached unchanged - a download whose file name
carries an older version is that, and it is the current build for
its platform.

Desktop (Windows)BetweenUs-0.0.1-alpha.8-Setup.exe
installs; -Portable.exe needs nothing.

Android — take the APK matching your device (arm64-v8a unless it is
old or an emulator), or universal if you would rather not choose. The
.aab is for Play, not for sideloading.

Serverdocker-compose.yml, nginx.conf and backup.sh below are a
deployment folder. Put them beside your existing .env and:

docker compose --env-file .env pull
docker compose --env-file .env up -d

Same project name, same volumes, same .env as a built deployment, so an
existing server keeps its database and its uploads. BETWEENUS_VERSION in
.env overrides the pinned version; unset, this bundle stays on
0.0.1-alpha.8.

Images

aiyuayaan/betweenus:<service>-0.0.1-alpha.8, built for
linux/amd64 and linux/arm64 under one tag - a 64-bit Pi, an Ampere VPS or an
Apple silicon Mac pulls the same name and gets its own architecture. The moving
tags <service>-alpha and <service>-latest are
pointed at it as the last step of the run.

v0.0.1-alpha.7

v0.0.1-alpha.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Aug 18:01
2c8f259

Features

  • Audio devices follow whatever is plugged in

Bug fixes

  • Add caching for Electron build and implement retry logic for packaging
  • A link that is refused or unanswered can now recover
  • The self-view is inside its corners, and PiP shows the speaker
  • Incoming video stops flickering
  • The speaking ring reads a level that is actually there

Other changes

  • Done with the enhancement
  • The second call-screen pass, and the one bug it did not close

Artifacts

Platform This release
Server images Built here
Desktop (Windows) Built here
Android Built here

Install

Not every release rebuilds every platform. The Artifacts table
above says which of these were built here and which are the last
release's, re-attached unchanged - a download whose file name
carries an older version is that, and it is the current build for
its platform.

Desktop (Windows)BetweenUs-0.0.1-alpha.7-Setup.exe
installs; -Portable.exe needs nothing.

Android — take the APK matching your device (arm64-v8a unless it is
old or an emulator), or universal if you would rather not choose. The
.aab is for Play, not for sideloading.

Serverdocker-compose.yml, nginx.conf and backup.sh below are a
deployment folder. Put them beside your existing .env and:

docker compose --env-file .env pull
docker compose --env-file .env up -d

Same project name, same volumes, same .env as a built deployment, so an
existing server keeps its database and its uploads. BETWEENUS_VERSION in
.env overrides the pinned version; unset, this bundle stays on
0.0.1-alpha.7.

Images

aiyuayaan/betweenus:<service>-0.0.1-alpha.7, built for
linux/amd64 and linux/arm64 under one tag - a 64-bit Pi, an Ampere VPS or an
Apple silicon Mac pulls the same name and gets its own architecture. The moving
tags <service>-alpha and <service>-latest are
pointed at it as the last step of the run.

v0.0.1-alpha.6

v0.0.1-alpha.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Aug 09:31
7fc123c

Features

  • A platform a release skips keeps the last one's artifacts
  • A marker can name the platforms it is for
  • Reconnect a dropped call, and end one that cannot be reconnected
  • A notification read on one device takes itself down on the others
  • The connection panel, ported from the desktop
  • The green speaking ring lights for your own tile too
  • Do not wake a phone for a message being read on another device
  • A daily update check, and an install that reports what happened
  • The auto update screen, and the prompt on launch
  • Fetch, download and hand over a newer release
  • The rules for which release a device should install

Bug fixes

  • The self-view snaps to a corner, and the chrome gets out of the way
  • Video has the rounded corners it appears to have
  • Every attachment goes out under the foreground service

Other changes

  • Done with the enhancement
  • The call-screen pass recorded in TRACK.md
  • RELEASING.md, and the pass recorded in TRACK.md
  • Remove outdated Android chat notification suppression and PiP design documents
  • Catch every doc up to push suppression, self-update, and the send-path fix
  • One send path for every attachment
  • The daily check and the installer session
  • Record the self-update phase

Artifacts

Platform This release
Server images Built here
Desktop (Windows) Built here
Android Built here

Install

Not every release rebuilds every platform. The Artifacts table
above says which of these were built here and which are the last
release's, re-attached unchanged - a download whose file name
carries an older version is that, and it is the current build for
its platform.

Desktop (Windows)BetweenUs-0.0.1-alpha.6-Setup.exe
installs; -Portable.exe needs nothing.

Android — take the APK matching your device (arm64-v8a unless it is
old or an emulator), or universal if you would rather not choose. The
.aab is for Play, not for sideloading.

Serverdocker-compose.yml, nginx.conf and backup.sh below are a
deployment folder. Put them beside your existing .env and:

docker compose --env-file .env pull
docker compose --env-file .env up -d

Same project name, same volumes, same .env as a built deployment, so an
existing server keeps its database and its uploads. BETWEENUS_VERSION in
.env overrides the pinned version; unset, this bundle stays on
0.0.1-alpha.6.

Images

aiyuayaan/betweenus:<service>-0.0.1-alpha.6, built for
linux/amd64 and linux/arm64 under one tag - a 64-bit Pi, an Ampere VPS or an
Apple silicon Mac pulls the same name and gets its own architecture. The moving
tags <service>-alpha and <service>-latest are
pointed at it as the last step of the run.

v0.0.1-alpha.5

v0.0.1-alpha.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Aug 21:05
1b934dc

Features

  • Phase 13 hardening - Keystore session, private CA, crash reports, CI
  • The remote clipboard, both directions
  • A direct call rings, full-screen, with the app dead
  • A call ducks for a prompt and holds for a phone call
  • The member menu - message, add friend, mute, copy id
  • A colon menu, the server's own emoji in the picker, and animated ones
  • Bold, italic, strike, code and quotes in a message body
  • Back out of a call and it keeps going in a floating window
  • A call takes the whole screen
  • Publish the service images for arm64 as well as amd64
  • Let a caller ask for a channel key that is not the cached one
  • Release through a PR, and undo a release that fails halfway
  • Marker-driven releases to Docker Hub, with the clients attached
  • Implement adaptive stage grid scaling, uniform video cards, and floating control dock
  • Redesign call screen with WhatsApp-style adaptive layout, PiP self-view, and camera flip
  • Draw the four new pushes, and undraw a deleted message
  • Push for deletes, friends, servers and calls
  • Use PushGate.shouldSuppress in PushService
  • Add PushGate.shouldSuppress active channel check with unit tests
  • Make message URLs clickable hyperlinks and render rich OpenGraph previews
  • Add URL unfurling service and metadata API endpoint
  • Add WhatsApp-style permission flow and top notification warning banner
  • Remove overlay on image cards and save media as bu_{date}
  • Add permissions carousel screen with progress and allow-all button
  • FCM push, so a swiped-away phone is reachable
  • Hide server people/members list by default
  • Send files in the background, and shrink a video first
  • Crop and rotate before a picture is sent or stored
  • Set an avatar and a server icon from the phone
  • Manage a machine's access and read its audit trail
  • Add and remove a server's own emoji
  • Make and edit a server's own roles
  • Sign in with a provider, and open invite links
  • Accept a mobile redirect, bound to a challenge the app keeps
  • Upload large attachments in parts
  • Invites as links, previewed before they are accepted
  • Show what an invite leads to before it is accepted
  • Convert every sent photo to JPEG, HEIC included
  • Decode HEIC in the client, and send every photo as JPEG
  • One data path, and a dump before every migration
  • The headers a browser needs to be told once
  • A server's own emoji, animated ones included
  • Type ":" and a name to reach an emoji
  • What you can do about a person, from the list that names them
  • A link, so anybody can be let in without being added
  • One screen at a time - a new share replaces the one before it
  • A key per machine, so a lost one can be revoked
  • Invite management, and a line that was lying about the slug
  • Microphone processing, a hi-fi mode, and where the call comes out
  • Reconnect when the network comes back, not when the timer says
  • A reaction says who left it, not just how many
  • A list of servers this client has been on, and a contract check
  • Tell a LAN it is a LAN - a manual bitrate, frame rate and codec
  • An unread line that survives a restart, and a way to reach it
  • The same two notes when somebody joins or leaves a call
  • Two notes when somebody joins the call, two when they leave
  • A cache on desktop and web, so opening the app is not a spinner
  • Look at a photo before sending it, and show a video's first frame
  • Look at a photo before sending it, and drop files anywhere
  • Scroll back through history on desktop and web
  • Replies, on all three clients
  • A monitor plugged in mid-session is noticed
  • The roles screen learns to draw a server's own roles
  • Two ways to be driven, two targets
  • A chord that arrives as a chord
  • Add Firebase Crashlytics configuration to appInsightsSettings
  • A blob that leaves when its message does
  • An attachment row per upload, so a blob has an owner
  • Roles a server can invent for itself
  • A session that survives its two halves landing on different replicas
  • A record of what was done, and a way past the first hundred rows
  • Edit who is on a private channel
  • Measure the call, and say when nobody can hear you
  • Push to talk
  • Turn one person down, or off, without touching the others
  • Invites that expire, run out and can be taken back
  • Sweep what nothing was sweeping, and stop scanning for agent tokens
  • Rotate a channel's key when somebody loses access to it
  • A channel can be set to mentions only
  • The roster comes from the service that holds the sockets
  • Send presence only to the people entitled to it
  • Go idle on its own after ten minutes, and come back
  • Rate limit login per account as well as per address
  • Add emoji picker and quick camera button in composer, auto-hiding camera when keyboard is open
  • Display You in accent color for current user in chat view, pinned and search panels
  • Enhance chat screen with media viewer, video player and gallery storage
  • Add storage write permissions and video/audio attachment support
  • Implement WhatsApp-style media picker and attachment sheet
  • Add media and camera permissions and FileProvider setup
  • Keep channel keys, so cached history opens without the network
  • Open on what the app already knows, not on a spinner
  • Spend the bitrate, send the whole screen
  • Tell the gateway where a phone can reach it
  • Come back to where you were, and go where a tap says
  • Lay the share stage out like a meeting client
  • A share takes the whole screen, the way it has to
  • A call that looks like a call to the system
  • Drop the browser context menu
  • A gateway for clients that cannot use a Vite proxy
  • Voice, video, screen share and the remote-desktop viewer
  • Servers, channels, messages, members, settings
  • The stores, and the widgets every screen is built from
  • The whole REST surface, and end-to-end encryption
  • Sign in, switch servers, and land on home
  • Nexora palette, and a server address the build does not decide
  • Initialize Android project structure with basic configurations and resources
  • Implement Picture-in-Picture (PiP) overlay for voice calls
  • Add Teams-style floating Picture-in-Picture mode and fix screen occlusion
  • One entrance for everything that opens on top
  • Carry the workbench into the surfaces inside the panels
  • Rebuild the client as a workbench of floating panels
  • Enhance screen capturing on Windows with background throttling adjustments
  • Add initial configuration for build and typecheck tasks
  • One call per account, whichever device joins last
  • Warn before a browser tab with a live call is closed
  • Keep the call running while the client navigates away
  • Add BM25 search engine for UI/UX style guides with design system generation and persistence options
  • Add Hide/Show camera controls to expand stream content to full width
  • Add Teams and Google Meet style Side Gallery camera layout alongside screen share
  • Add auto-hiding controls, participant toggle, and polished glassmorphic UI for fullscreen mode
  • The screen goes straight to the controller, not through a room
  • A mesh of peer connections, where the SFU used to be
  • A switchboard, so two clients can find each other without an SFU
  • Relay media through TURN, so a call works from another network
  • A render that throws is a message, not a blank window
  • Implement LAN SFU and ICE candidate rewriting for remote access
  • Reach the dev stack from a second machine on the network
  • Notifications and provider sign-in in a browser
  • Serve the web client at the root of the gateway
  • Add the browser client as its own app
  • Gate the remote-desktop section on the Electron bridge
  • Restore the account encryption key on any machine you sign in on
  • Store a sealed identity backup so an account is not tied to one machine
  • Update TypeScript configuration and add path mappings for shared packages
  • Check at startup that LiveKit accepts our tokens
  • Give a new server a voice channel as well as #general
  • Add packaging scripts for portable and NSIS targets in desktop app
  • Enhance deployment instructions and add production scripts for easier setup
  • Change microphone and speakers from inside the call
  • Give Voice & Video something to set
  • Let a deployment choose where local uploads live
  • Publish the microphone the way this machine is set up
  • Close the microphone when nobody is talking
  • Decide what a microphone should sound like
  • Encode a screen share like something worth watching
  • Give control of a screen share in a call, with named cursors
  • Choose which monitor a session watches
  • Request control from somebody's screen share
  • Public ingress that fits a tunnel you already run
  • Be a remote machine, and reach one
  • Enrolment, grants, sessions and the relay
  • Remote machines, grants, sessions and an audit trail
  • Proxy LiveKit signalling, so a deployment is one hostname
  • Choose the server from the login screen
  • One address for a whole deployment, resolved at runtime
  • Message actions - tombstones, edits, pins, reactions, search
  • Implement message deletion and friend event notifications
  • Add high-res icon rendering and portable production build target
  • Set taskbar, electron window, system tray, and installer application icon
  • Integrate brand icon from icon.svg with dark gradient styling across desktop app
  • Honour mutes, quiet hours and Do Not Disturb
  • System tray, close to tray, and start with the system
  • Notification-service owns mutes, quiet hours and read state
  • Play video and audio inline, and cap image previews
  • Upload avatars and server icons
  • Attach, preview and download files in the message view
  • Encrypted attachments, compressed and uploaded in parts
  • Attachment manifest and settable profile pictures
  • Multipart uploads and a picture/attachment split
  • Drop the default Electron menu bar
  • Rebuild the client as a Discord-shaped app
  • Choosable status, with invisible resolved server-side
  • Friends, user search and direct messages
  • Private channels with a member allowlist
  • Per-member permission overrides and one access resolver
  • Web admin panel for users and sign-in providers
  • Sign in wi...
Read more

v0.0.1-alpha.3

v0.0.1-alpha.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Aug 06:18
6cab1a1

Features

  • Publish the service images for arm64 as well as amd64

Bug fixes

  • Repair action refs mangled by the arm64 patch script

Other changes

  • Betweenus is also available on arm docs

Install

Desktop (Windows)BetweenUs-0.0.1-alpha.3-Setup.exe
installs; -Portable.exe needs nothing.

Android — take the APK matching your device (arm64-v8a unless it is
old or an emulator), or universal if you would rather not choose. The
.aab is for Play, not for sideloading.

Serverdocker-compose.yml, nginx.conf and backup.sh below are a
deployment folder. Put them beside your existing .env and:

docker compose --env-file .env pull
docker compose --env-file .env up -d

Same project name, same volumes, same .env as a built deployment, so an
existing server keeps its database and its uploads. BETWEENUS_VERSION in
.env overrides the pinned version; unset, this bundle stays on
0.0.1-alpha.3.

Images

aiyuayaan/betweenus:<service>-0.0.1-alpha.3, built for
linux/amd64 and linux/arm64 under one tag - a 64-bit Pi, an Ampere VPS or an
Apple silicon Mac pulls the same name and gets its own architecture. The moving
tags <service>-alpha and <service>-latest are
pointed at it as the last step of the run.