Skip to content

feat: TRIOS desktop app launches final BrowserOS binary #508

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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