Skip to content
Open
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
13 changes: 12 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,18 @@ All notable changes to RemoteBridge are documented here. All four workspace pack
are currently pinned at `1.0.0`; this file starts tracking changes from the 2026-06
comprehensive code review (`.full-review/05-final-report.md`) onward.

## [1.3.9] - 2026-08-20
## [1.3.10] - 2026-08-20

### Desktop — relay connection fix

- **Fixed desktop unable to connect to relay server** (WebSocket close 4001): desktop connected to
`ws://127.0.0.1:3002/ws` without the `type` query parameter, but the relay handler requires
`?type=host` (or `?type=client` for web) and rejects the handshake with "Missing or invalid
parameters" otherwise. Web client already appended `&type=client`; desktop now appends
`?type=host` at connect time (`apps/desktop/src/main/ws-client/client.ts`), so it works regardless
of the configured relay URL in Settings.

## [1.3.9] - 2026-08-20

### Desktop — critical startup fix

Expand Down
8 changes: 4 additions & 4 deletions apps/desktop/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@remotebridge/desktop",
"version": "1.3.9",
"version": "1.3.10",
"description": "RemoteBridge desktop host agent",
"author": "Aswellle",
"repository": {
Expand Down Expand Up @@ -30,19 +30,19 @@
"electron-updater": "^6.8.9",
"fastify": "^5.8.5",
"nanoid": "^5.1.16",
"ws": "^8.17.0"
"ws": "^8.21.3"
},
"devDependencies": {
"@types/better-sqlite3": "^7.6.8",
"@types/react": "18.2.0",
"@types/react-dom": "18.2.0",
"@types/ws": "^8.5.10",
"@vitejs/plugin-react": "^4.2.0",
"autoprefixer": "^10.4.17",
"autoprefixer": "^10.5.4",
"electron": "^29.0.0",
"electron-builder": "^24.13.0",
"electron-vite": "^2.1.0",
"esbuild": "^0.28.1",
"esbuild": "^0.28.2",
"lucide-react": "^0.400.0",
"postcss": "^8.5.18",
"react": "^18.3.0",
Expand Down
7 changes: 6 additions & 1 deletion apps/desktop/src/main/ws-client/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,12 @@ export class RelayClient {
try {
// SEC: 不在 URL 中传递 token(会出现在服务器/代理日志里),
// 改为通过 WebSocket 握手头的 Authorization 字段发送。
this.ws = new WebSocket(this.config.relayUrl, {
// 桌面端始终以 Host 身份连接;追加 type=host 使 Relay 接受 WS 握手
// (Relay 要求 type 参数,否则返回 4001 Missing or invalid parameters)
const wsUrl = this.config.relayUrl.includes('?')
? `${this.config.relayUrl}&type=host`
: `${this.config.relayUrl}?type=host`;
this.ws = new WebSocket(wsUrl, {
headers: { Authorization: `Bearer ${this.config.hostToken}` },
});
this.ws.on('open', () => {
Expand Down
8 changes: 4 additions & 4 deletions apps/server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,22 @@
"@fastify/cors": "^10.0.1",
"@fastify/rate-limit": "^10.0.1",
"@fastify/websocket": "^11.0.1",
"@node-rs/bcrypt": "^1.10.7",
"@node-rs/bcrypt": "^1.10.8",
"@remotebridge/shared": "workspace:*",
"better-sqlite3": "^9.6.0",
"drizzle-orm": "^0.45.2",
"fastify": "^5.8.5",
"jsonwebtoken": "^9.0.2",
"pino": "^9.14.0",
"ws": "^8.17.0"
"ws": "^8.21.3"
},
"devDependencies": {
"@types/better-sqlite3": "^7.6.8",
"@types/jsonwebtoken": "^9.0.5",
"@types/ws": "^8.5.10",
"@vitest/coverage-v8": "^2.0.0",
"drizzle-kit": "^0.30.6",
"tsx": "^4.7.0",
"drizzle-kit": "^0.31.10",
"tsx": "^4.23.12",
"typescript": "^5.3.0",
"vitest": "^2.0.0"
}
Expand Down
6 changes: 3 additions & 3 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,18 @@
"next": "15.5.21",
"react": "^18.3.0",
"react-dom": "^18.3.0",
"sonner": "^2.0.7",
"sonner": "^2.0.8",
"tailwind-merge": "^2.2.0",
"zustand": "^4.5.0"
},
"devDependencies": {
"@types/node": "^20.11.0",
"@types/react": "^18.3.0",
"@types/react-dom": "^18.3.0",
"autoprefixer": "^10.4.17",
"autoprefixer": "^10.5.4",
"eslint": "^8.57.0",
"eslint-config-next": "15.5.21",
"happy-dom": "^20.10.6",
"happy-dom": "^20.11.2",
"postcss": "^8.5.18",
"tailwindcss": "^3.4.1",
"typescript": "^5.3.0",
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"playwright": "^1.62.1",
"turbo": "^1.13.0",
"typescript": "^5.3.0",
"ws": "^8.17.0"
"ws": "^8.21.3"
},
"packageManager": "pnpm@9.1.0",
"pnpm": {
Expand All @@ -33,7 +33,7 @@
}
},
"dependencies": {
"browserslist": "^4.28.2",
"caniuse-lite": "^1.0.30001797"
"browserslist": "^4.28.8",
"caniuse-lite": "^1.0.30001809"
}
}
Loading
Loading