Compare commits

..

4 Commits

Author SHA1 Message Date
MacBook 1dae8539f5 fix: integrate protocol sync into CI/CD and update documentation 2026-04-22 17:01:00 +02:00
Koala 6a26731fa7 Delete scratch directory 2026-04-22 15:16:36 +02:00
Timo e042fd92cd chore: ignore scratch directory 2026-04-22 15:06:08 +02:00
Timo 90ae8e8f26 docs: update README with accurate structure and missing features 2026-04-22 15:05:32 +02:00
7 changed files with 34 additions and 14 deletions
+5
View File
@@ -51,6 +51,11 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
- name: Sync Protocol Constants
run: |
chmod +x ./scripts/sync-constants.sh
./scripts/sync-constants.sh
- name: Create Extension Zip
run: |
zip -r koala-sync-extension.zip extension/ -x "*.DS_Store*"
+3
View File
@@ -39,3 +39,6 @@ coverage/
# We ignore the synced files in the extension folder to ensure
# the root 'shared/' remains the Single Source of Truth.
extension/shared/
# Temporary scratch files
scratch/
+16 -6
View File
@@ -8,11 +8,17 @@ KoalaSync is a premium, lightweight Chrome Extension and Relay Server for synchr
## Repository Structure
- `extension/`: Chrome Extension (Manifest V3, Vanilla JS).
- `server/`: Node.js + Socket.IO Relay Server (Containerized).
- `website/`: Static marketing landing page & tutorials.
- `shared/`: Shared protocol constants.
- `website/`: Marketing landing page & **Invitation Bridge**.
- `shared/`: Protocol constants and domain blacklist.
- `scripts/`: Development utilities for protocol synchronization.
> [!NOTE]
> For deep technical dives, see [ARCHITECTURE.md](ARCHITECTURE.md) and [SYNC_GUIDE.md](SYNC_GUIDE.md).
## Key Features
- **Global Synchronization**: Synchronize Play, Pause, and Seeking on any website with a `<video>` tag.
- **Smart Matching**: Automatically highlights and sorts tabs containing matching video titles.
- **Noise Filtering**: Built-in domain blacklist to hide non-video sites from selection.
- **Smart Identity**: Customizable usernames combined with unique hexadecimal peer IDs.
- **Dual Heartbeat Architecture**: Robust session tracking that prevents ghost rooms and stale connections.
- **Zero-Latency Relay**: Custom Socket.IO wire protocol implementation for maximum performance.
@@ -31,10 +37,14 @@ docker-compose up -d --build
The server will be available at `ws://localhost:3000`.
### 2. Chrome Extension
1. Open Chrome and go to `chrome://extensions/`.
2. Enable **Developer mode** (top right).
3. Click **Load unpacked**.
4. Select the `extension/` folder.
1. **Synchronize Protocol**: From the root directory, run the sync script to copy the master constants to the extension folder:
```bash
./scripts/sync-constants.sh
```
2. Open Chrome and go to `chrome://extensions/`.
3. Enable **Developer mode** (top right).
4. Click **Load unpacked**.
5. Select the `extension/` folder.
## Usage
1. Open the extension and go to the **Settings** tab to set your **Username**.
+5 -4
View File
@@ -7,10 +7,11 @@ To ensure that the extension and the relay server are always using the exact sam
## When should you run the sync script?
You MUST run the synchronization script in any of the following scenarios:
1. **After modifying** `shared/constants.js`.
2. **After modifying** `shared/blacklist.js`.
3. **Before committing** changes to the repository if any protocol-related files were touched.
4. **Before deploying** the server or releasing the extension.
1. **After a fresh `git clone` or `git pull`** (as the synced files are ignored by git).
2. **After modifying** `shared/constants.js`.
3. **After modifying** `shared/blacklist.js`.
4. **Before committing** changes to the repository if any protocol-related files were touched.
5. **Before deploying** the server or releasing the extension.
## How to sync
+4 -3
View File
@@ -22,9 +22,10 @@ KoalaSync requires `<all_urls>` permission to detect and interact with video ele
- **Zero Telemetry**: No analytics or external tracking scripts.
## Installation
1. Open Chrome and go to `chrome://extensions/`.
2. Enable **Developer mode** (top right).
3. Click **Load unpacked** and select the `extension` folder from this repository.
1. **Sync Protocol**: Run `./scripts/sync-constants.sh` (macOS/Linux) or `scripts\sync-constants.bat` (Windows) from the root.
2. Open Chrome and go to `chrome://extensions/`.
3. Enable **Developer mode** (top right).
4. Click **Load unpacked** and select the `extension` folder.
## Development
If you modify `shared/constants.js`, you must synchronize the changes across the extension and server:
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -3,7 +3,7 @@
*/
export const PROTOCOL_VERSION = "1.0.0";
export const APP_VERSION = "1.0.0";
export const APP_VERSION = "1.0.3";
export const OFFICIAL_SERVER_URL = 'wss://sync.shik3i.net';
export const OFFICIAL_LANDING_PAGE_URL = 'https://koalasync.shik3i.net';