MASTER ТЗ — TRIOS PROJECT
⚠️ ЭТОТ ISSUE ЧИТАЕТСЯ ПЕРВЫМ ПЕРЕД ЛЮБОЙ РАБОТОЙ.
Нарушение любого пункта = немедленный откат PR без обсуждения.
🔴 ЗАКОН #1 — НАЗВАНИЕ
ПРОЕКТ НАЗЫВАЕТСЯ: TRIOS
НЕ: BrowserOS
НЕ: browseros
НЕ: BrowserOS Server
НЕ: browserosId
Что заменить везде:
| ❌ ЗАПРЕЩЕНО |
✅ ОБЯЗАТЕЛЬНО |
BrowserOS Server |
TRIOS Server |
BrowserOS ID initialized |
TRIOS ID initialized |
browserosId |
triosId |
Starting BrowserOS |
Starting TRIOS |
@browseros/ (новые пакеты) |
@trios/ |
| Google логотип в NTP |
999.svg (TRIOS logo) |
ИСКЛЮЧЕНИЕ: chromium_patches/ — там BrowserOS может быть в C++ именах классов (legacy). Всё остальное — TRIOS.
🔴 ЗАКОН #2 — ЦВЕТ ФРЕЙМА
ЦВЕТ ФРЕЙМА: #000000 (ЧЁРНЫЙ)
user_color2 = 4278190080
color_scheme2 = 2 (kDark)
SSOT для цветов: packages/browseros/tokens/trios.tokens.json
Менять цвета ТОЛЬКО там, затем:
bun run tokens:build
bun run tokens:apply
НЕ ТРОГАТЬ user_color2 и color_scheme2 руками — только через tokens:apply.
🔴 ЗАКОН #3 — ЛОГОТИП
ЛОГОТИП: /Users/playra/BrowserOS/assets/999.svg
- В NTP (New Tab Page) — 999.svg вместо Google
- В sidebar extension — 999.svg
- В favicon extension — 999.svg
- НЕ УДАЛЯТЬ, НЕ ЗАМЕНЯТЬ на Google/Chrome/BrowserOS логотип
🔴 ЗАКОН #4 — ЗАПУСК
TRIOS запускает ФИНАЛЬНЫЙ БИНАРНИК, не dev сервер.
bun run launch → открывает /Applications/BrowserOS.app или out/BrowserOS/BrowserOS
- Клик по иконке на рабочем столе → открывает TRIOS (не wxt, не bun --watch)
- Порт 9105 должен быть свободен перед запуском
🔴 ЗАКОН #5 — ПОРТ 9105 RACE CONDITION
bun --watch НЕ ДОЛЖЕН перезапускать упавший сервер немедленно.
В apps/server/src/api/server.ts — retry с задержкой 2с при EADDRINUSE.
НЕ бесконечный цикл crash → restart.
✅ ИСТОРИЯ УСПЕХА (не откатывать!)
| Что сделано |
Файл |
Статус |
| SSOT токены |
packages/browseros/tokens/trios.tokens.json |
✅ DONE |
| Build pipeline |
packages/browseros/tokens/build.mjs |
✅ DONE |
| CSS импорт |
apps/agent/styles/global.css |
✅ DONE |
| CI guard цветов |
check_no_hardcoded_colors.py |
✅ DONE |
| C++ патчи созданы |
browseros_prefs.cc, theme_service.cc |
✅ DONE |
| Runtime fix |
set_dark_theme.py / apply_black_theme.py |
✅ DONE |
| Preferences |
user_color2=4278190080, color_scheme2=2 |
✅ DONE |
📋 ЗАДАЧИ В ОЧЕРЕДИ
🛑 ПЕРЕД КАЖДЫМ PR ПРОВЕРИТЬ:
# 1. Нет BrowserOS в новом коде
grep -rn "BrowserOS" apps/server/src/ apps/agent/src/ \
--include="*.ts" --include="*.tsx" | grep -v node_modules
# 2. Цвет правильный
python3 -c "
import json,pathlib
p=pathlib.Path.home()/'Library/Application Support/BrowserOS/Default/Preferences'
b=json.loads(p.read_text()).get('browser',{})
print('✅ OK' if b.get('user_color2')==4278190080 and b.get('color_scheme2')==2 else '❌ FAIL: '+str(b))
"
# 3. Логотип на месте
ls -la /Users/playra/BrowserOS/assets/999.svg
# 4. Билд токенов
bun run tokens:check
Все 4 проверки должны быть ✅. Иначе PR не мёрджится.
GO. Начни с grep -rn "BrowserOS" apps/ --include="*.ts" и замени всё на TRIOS.
MASTER ТЗ — TRIOS PROJECT
🔴 ЗАКОН #1 — НАЗВАНИЕ
Что заменить везде:
BrowserOS ServerTRIOS ServerBrowserOS ID initializedTRIOS ID initializedbrowserosIdtriosIdStarting BrowserOSStarting TRIOS@browseros/(новые пакеты)@trios/ИСКЛЮЧЕНИЕ:
chromium_patches/— там BrowserOS может быть в C++ именах классов (legacy). Всё остальное — TRIOS.🔴 ЗАКОН #2 — ЦВЕТ ФРЕЙМА
SSOT для цветов:
packages/browseros/tokens/trios.tokens.jsonМенять цвета ТОЛЬКО там, затем:
НЕ ТРОГАТЬ
user_color2иcolor_scheme2руками — только черезtokens:apply.🔴 ЗАКОН #3 — ЛОГОТИП
🔴 ЗАКОН #4 — ЗАПУСК
bun run launch→ открывает/Applications/BrowserOS.appилиout/BrowserOS/BrowserOS🔴 ЗАКОН #5 — ПОРТ 9105 RACE CONDITION
В
apps/server/src/api/server.ts— retry с задержкой 2с при EADDRINUSE.НЕ бесконечный цикл crash → restart.
✅ ИСТОРИЯ УСПЕХА (не откатывать!)
packages/browseros/tokens/trios.tokens.jsonpackages/browseros/tokens/build.mjsapps/agent/styles/global.csscheck_no_hardcoded_colors.pybrowseros_prefs.cc,theme_service.ccset_dark_theme.py/apply_black_theme.pyuser_color2=4278190080, color_scheme2=2📋 ЗАДАЧИ В ОЧЕРЕДИ
./build.shс TRIOS C++ tokens → Chromium rebuildbun run launch→ финальный бинарник🛑 ПЕРЕД КАЖДЫМ PR ПРОВЕРИТЬ:
Все 4 проверки должны быть ✅. Иначе PR не мёрджится.
GO. Начни с
grep -rn "BrowserOS" apps/ --include="*.ts"и замени всё на TRIOS.