Skip to content

feat: TRIOS desktop app launches final BrowserOS binary #508

@gHashTag

Description

@gHashTag

Задача

TRIOS desktop приложение должно запускать финальный скомпилированный бинарник BrowserOS, а не dev сервер.

Текущее поведение (НЕПРАВИЛЬНО)

# Сейчас запускает dev режим:
bun dev  →  wxt + bun --watch + CDP

Ожидаемое поведение (ЦЕЛЬ)

# TRIOS app запускает:
/Applications/BrowserOS.app/Contents/MacOS/BrowserOS
# ИЛИ:
packages/browseros/out/BrowserOS/BrowserOS

Шаги агенту

Шаг 1: Найти бинарник

# Где лежит скомпилированный бинарник?
find packages/browseros/out -name "BrowserOS" -type f 2>/dev/null | head -5
find /Applications -name "BrowserOS" -type f 2>/dev/null | head -5
ls packages/browseros/out/BrowserOS/ 2>/dev/null

Шаг 2: Создать launch script

File: packages/browseros/tools/launch.ts (Rust/TS, NO .sh)

import { spawn } from 'bun'

const BINARY_PATHS = [
  '/Applications/BrowserOS.app/Contents/MacOS/BrowserOS',
  `${process.env.HOME}/Applications/BrowserOS.app/Contents/MacOS/BrowserOS`,
  `${import.meta.dir}/../../out/BrowserOS/BrowserOS`,
]

const binary = BINARY_PATHS.find(p => {
  try { return Bun.statSync(p).isFile() } catch { return false }
})

if (!binary) {
  console.error('❌ BrowserOS binary not found. Run ./build.sh first.')
  console.error('Searched:', BINARY_PATHS)
  process.exit(1)
}

console.log(`🚀 Launching: ${binary}`)

const proc = spawn([binary, '--user-data-dir=/tmp/browseros-dev'], {
  stdout: 'inherit',
  stderr: 'inherit',
})

process.on('SIGINT', () => proc.kill())
process.on('SIGTERM', () => proc.kill())

await proc.exited

Шаг 3: Добавить в package.json

"scripts": {
  "launch": "bun packages/browseros/tools/launch.ts",
  "launch:dev": "bun packages/browseros/tools/launch.ts --user-data-dir=/tmp/browseros-dev",
}

Шаг 4: TRIOS desktop app кнопка

В TRIOS UI добавить кнопку "Launch BrowserOS" которая вызывает:

await fetch('http://localhost:9105/api/launch-browser', { method: 'POST' })

Или через Tauri/Electron IPC если TRIOS desktop — нативное приложение.

Шаг 5: Verify

bun run launch
# Должен открыться BrowserOS с чёрным фреймом (#000000)
# НЕ должен запускать wxt/bun dev

Критерий готовности

  • bun run launch открывает финальный бинарник
  • Фрейм чёрный (rgb(0,0,0)) без tokens:apply
  • Не запускает dev сервер
  • Работает на чистом профиле /tmp/browseros-test

GO. Closes #507

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions