Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Development line **Morse**. No GitHub Release until explicitly cut — see [`doc
### Changed

- Opened **2.0.0 Morse** version line (`app-metadata.json` / docs). Last published installers remain **1.1.1 Beacon**.
- **Docs hygiene** — README badges expanded; MESH-PLUS / ARCHITECTURE version pins aligned with **2.0.0 Morse**.

### Added

Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,19 @@
[![Electron](https://img.shields.io/badge/Electron-35-47848F?style=for-the-badge&logo=electron&logoColor=white&labelColor=0a0a0a)](https://www.electronjs.org/)
[![License](https://img.shields.io/badge/License-GPLv3-00ffc8?style=for-the-badge&labelColor=0a0a0a)](LICENSE)
[![Platform](https://img.shields.io/badge/Windows-10%2F11-0078D6?style=for-the-badge&logo=windows&logoColor=white&labelColor=0a0a0a)]()
[![P2P](https://img.shields.io/badge/P2P-LAN%20%2F%20VPN-00ffc8?style=for-the-badge&labelColor=0a0a0a)]()
[![WebRTC](https://img.shields.io/badge/WebRTC-voice%20%2B%20video-00ffc8?style=for-the-badge&labelColor=0a0a0a)]()
[![Offline](https://img.shields.io/badge/offline--first-yes-00ffc8?style=for-the-badge&labelColor=0a0a0a)]()
[![Vite](https://img.shields.io/badge/Vite-6-646CFF?style=for-the-badge&logo=vite&logoColor=white&labelColor=0a0a0a)](https://vitejs.dev/)
[![i18n](https://img.shields.io/badge/i18n-EN%20%7C%20RU-e0e0e0?style=for-the-badge&labelColor=0a0a0a)]()

<!-- Dynamic stats row -->
[![Stars](https://img.shields.io/github/stars/krwg/blip?style=for-the-badge&labelColor=0a0a0a&color=00ffc8&logo=github)](https://github.com/krwg/blip/stargazers)
[![Downloads](https://img.shields.io/github/downloads/krwg/blip/total?style=for-the-badge&labelColor=0a0a0a&color=00ffc8&logo=github)](https://github.com/krwg/blip/releases)
[![Last Commit](https://img.shields.io/github/last-commit/krwg/blip?style=for-the-badge&labelColor=0a0a0a&color=00ffc8&logo=github)](https://github.com/krwg/blip/commits/main)
[![Issues](https://img.shields.io/github/issues/krwg/blip?style=for-the-badge&labelColor=0a0a0a&color=ff3366&logo=github)](https://github.com/krwg/blip/issues)
[![PRs](https://img.shields.io/github/issues-pr/krwg/blip?style=for-the-badge&labelColor=0a0a0a&color=00ffc8&logo=github)](https://github.com/krwg/blip/pulls)
[![Contributors](https://img.shields.io/github/contributors/krwg/blip?style=for-the-badge&labelColor=0a0a0a&color=00ffc8&logo=github)](https://github.com/krwg/blip/graphs/contributors)

<br>

Expand Down
22 changes: 11 additions & 11 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ All UI audio is synthesized in the renderer via **Web Audio** (no asset files).

Config: `uiSoundsEnabled`, `uiSoundsVolume`, `uiSoundPack`, `uiMelodyPack`. **Settings → Sound** — pack toggles + preview grid (`sounds.preview()` resumes `AudioContext` on user click).

## Mesh Handshake (0.5.0)
## Mesh Handshake

Codename **Handshake**. Each client has an Ed25519 keypair in `blip-config.json` (`meshPublicKey` / `meshPrivateKey`).

Expand All @@ -174,7 +174,7 @@ Legacy peers without `meshProto` appear with `meshLegacy` — TCP mesh with 0.5

Images use `kind: 'image'` (JPEG resize). Group `group-msg` relays inline attachments; large files use chunked mesh to each member.

## BEACON — mesh file library (1.1.0)
## BEACON — mesh file library

Codename **Beacon** / UI **BEACON** (EN) · **МАЯК** (RU). LAN-wide seeds separate from 1:1 chat file offers.

Expand All @@ -191,7 +191,7 @@ Wire: TCP `seed-request`, `seed-chunk`, `seed-chunks-batch`, `seed-have`; defaul

Updates: packaged **NSIS** builds use `electron-updater` with a **generic** GitHub feed (`latest.yml` per release tag). **Portable** exe does not apply in-app updates.

## LAN clipboard (0.5.8+)
## LAN clipboard

Config `clipboardSyncMode`: `off` | `active` (open 1:1 chat) | `trusted`. Renderer `clipboard-sync.js` sends `clipboard-push` (text, max 32 KB). Main forwards like other TCP types.

Expand All @@ -204,7 +204,7 @@ Config `clipboardSyncMode`: `off` | `active` (open 1:1 chat) | `trusted`. Render

Peers show whichever the remote has advertised; fallback to pixel art when no photo.

## Appearance (0.7.2+)
## Appearance

`renderer/appearance.js` drives `html[data-theme]` (light / dark / auto) and `html[data-accent]` (16 presets including **slate** `#94a3b8`).

Expand All @@ -216,7 +216,7 @@ Peers show whichever the remote has advertised; fallback to pixel art when no ph

Legacy theme IDs (e.g. `dark-void`) map to mode + accent (`dark-void` → dark + **slate**). **Settings → Appearance** — mode, accent grid, background picker, reduce motion, reactive wallpaper (mic pulse in calls).

## Chat media & quotes (0.7.1+)
## Chat media & quotes

| Feature | Module |
|---------|--------|
Expand All @@ -226,15 +226,15 @@ Legacy theme IDs (e.g. `dark-void`) map to mode + accent (`dark-void` → dark +

Images use `chat-attachments.js` (JPEG resize); large files use chunked `file-*` wire types (see File transfer).

## Call window IPC (0.6.1)
## Call window IPC

Secondary windows (`call-window.html`, `group-call-window.html`) call `reportCallWindowReady` / `reportGroupCallWindowReady` after boot. Main queues `call-outgoing`, `incoming-call`, `group-call-join`, and `group-call-tcp` until ready, then flushes.

## Presence text (0.4.8)
## Presence text

UDP/mDNS announce includes optional `presenceText` (max 48 chars, sanitized). Shown on the **Peers** list instead of pulse line when the peer is online. Config key: `presenceText`.

## Voice channels (0.7.0+)
## Voice channels

Persistent voice rooms inside a group (Discord-style), rendered in **`group-community-view.js`** on the main window. Separate from the legacy **group call window** (`group-call.js`).

Expand All @@ -251,14 +251,14 @@ Wire types: `voice-ch-roster`, `voice-ch-signal` (`offer` / `answer` / `candidat
## Group mesh

- **Group chat**: host relays `group-msg` to all members; `group-invite` / `group-host` for membership and host failover.
- **Group call (0.6.0)**:
- **Group call**:
- **UI + WebRTC** in `group-call-window.html` (`renderer/group-call.js`).
- **Main window** uses `group-call-client.js` → IPC `openGroupCall` / `openGroupCallIncoming`; roster in `group-call-roster.js` drives hub **VOICE** badge and join bar (`blip-group-call-state` event).
- **Signaling**: `group-call-signal` is peer-to-peer (`originFrom`); main process forwards signals only to the group-call window.
- **State**: `group-call-state` lists participants + mute/deafen/screen flags; `group-call-start` / `group-call-end` for invites and teardown.
- Ongoing calls: non-participants can join anytime (Discord-style bar in `group-chat.js`).

## Autostart (0.6.0)
## Autostart

Windows: `config.launchAtLogin` → `app.setLoginItemSettings({ openAtLogin })` in main on load and on `save-config`. Toggle in **Settings → System**.

Expand All @@ -272,7 +272,7 @@ While the app is running with a BLIP ID, the renderer pings every **online, non-
- Typing line in chat UI and under peer name on **Peers**.
- Unread message counts per peer; red badge on **Chat** nav and hub rows until the conversation is opened.

## Mesh messages (0.4.0)
## Mesh messages

- Each chat message has a stable `id` (`renderer/message-id.js`).
- Incoming messages trigger `receipt: delivered`; opening the thread sends `receipt: read` for peer messages.
Expand Down
2 changes: 1 addition & 1 deletion docs/MESH-PLUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@ Enable **Settings → Developer → Projects** to show **PROJECTS** in the nav.

LAN relay, MESH+ Bridge, bandwidth priority — not implemented yet.

**App version:** `1.1.1` · codename **Beacon** (`app-metadata.json`).
**App version:** `2.0.0` · codename **Morse** (`app-metadata.json`). Last published installer line remains **1.1.1 Beacon** until a Morse GitHub Release is cut.

*BLIP · FREE for everyone · MESH+ — free keys via [blipteam@icloud.com](mailto:blipteam@icloud.com)*
Loading