---
name: cebersrun-audit-2026-05-19
description: Аудит + миграция + commit v0.8.1 + install в /Applications/ за одну сессию 2026-05-19 (макбук)
metadata:
  node_type: memory
  type: project
  originSessionId: 65e171c9-623e-4e6d-9a55-82e9fdc0e8ee
---

Сессия 2026-05-19 на макбуке. См. [[cebersrun-overview]].

## Что сделано

1. **Аудит на mac mini**: HEAD v0.6.22, 30 mod + 95 untracked в `devin/v0.6.23-batch`, 6 неприменённых deliveries v0.7.5..v0.8.0, нет установленного .app, build чистый, 581/585 тестов (4 KeychainStoreTests падают под SSH из-за `errSecInteractionNotAllowed`)
2. **Миграция на макбук** via rsync: source (без `.build`, 9.8 MB) → `~/Разработки/CebersRun`, deliveries → `~/Разработки/cebers-deliveries/`, App Support metadata 28 KB (bottles/wrappers НЕ переносились). Mac mini оставлен как backup.
3. **Расследование untracked vs deliveries**: 14/16 файлов байт-идентичны, 2 (AICrashDoctorTests, HotkeyRecorderView) с пост-фиксами в репо (Int32(bitPattern:) для NTSTATUS + typo `FlagMask`→`FlagsMask`). Вывод: deliveries уже были применены руками 10-11 мая, апскрипты бы затёрли пост-фиксы.
4. **Cleanup**: удалены `.cebersrun-v0.6.29-batch/`, `apply-v0.6.29.sh`, `apply-v0.7.0.sh`, `scripts/make-app.sh.bak`
5. **Commit `0be922a`** на `devin/v0.6.23-batch`: 121 файл (91 added + 30 modified), +18393/-174. Все фичи v0.7.5..v0.8.0 + AI стек + Bottle infra + post-fixes
6. **Tag `v0.8.1`** на коммит 0be922a
7. **`scripts/make-app.sh release`** → `.build/CebersRun.app` (arm64, 16 MB, Info.plist 0.8.1, CRBuildSHA `0be922a`)
8. **Install** через `osascript ... with administrator privileges` → `/Applications/CebersRun.app` (owner root:admin), Gatekeeper: accepted (adhoc signed)

## Тулчейн макбука (ограничения)

- Apple Swift 6.3.2, **только Command Line Tools**, нет Xcode.app
- `swift build` работает; **`swift test` падает с "no such module 'XCTest'"** — XCTest framework в CLT отсутствует
- Для запуска тестов локально нужен полный Xcode (App Store или developer.apple.com)

## Состояние после сессии (финал)

- `~/Разработки/CebersRun` **main** на v0.8.2 (`ecf6c20`), working tree clean. Ветка `devin/v0.6.23-batch` тоже на v0.8.1 (`0be922a`).
- `/Applications/CebersRun.app`: **v0.8.2**, build SHA `ecf6c20`, root:admin, Gatekeeper accepted (adhoc-signed)
- **Xcode установлен** в `/Applications/Xcode.app` (юзер поставил из App Store во время сессии), `xcode-select -p = /Applications/Xcode.app/Contents/Developer`, лицензия принята
- `swift test` теперь работает: **585/585 тестов проходят**, но SIGABRT на финальном "Selected tests" → BLEScannerTests (окружение macbook без BT TCC permissions — не баг кода)
- Wine bottles НЕ переносились — будут созданы при первом запуске
- Mac mini репо/деливери/AppSupport не тронуты

## Что сделано в сессии (последовательно)

1. Аудит на mac mini
2. Миграция rsync → макбук
3. Commit `0be922a` v0.8.1 batch (121 файл, +18393/-174)
4. Tag v0.8.1
5. Build + install .app v0.8.1
6. Fast-forward merge `devin/v0.6.23-batch` → `main` (19 коммитов)
7. Xcode установлен пользователем + лицензия принята (через osascript)
8. **TODO #1**: SettingsView «Открыть папку логов» → `NSWorkspace.shared.open(appSupportURL)`
9. **TODO #2**: BottleManager.factoryReset() + .alert в SettingsView + сохранение snapshot-hmac.key
10. Commit `ecf6c20` v0.8.2 (3 файла, +66/-4)
11. Tag v0.8.2
12. Rebuild + reinstall .app v0.8.2

## Открытые вопросы

- **BLEScannerTests SIGABRT** под finalize-проходом — environmental, нужно либо XCTSkip без BT permissions, либо grant их через TCC. Не блокер.
- **Code signing**: adhoc. Для распространения нужен Developer ID.
- **Wine bottles** при первом запуске инициализируются с нуля.
- **Push в remote** не делал — AGENTS.md запрещает push в main; локальный merge ОК.

**How to apply**: репо на v0.8.2, чистый, на main. TODO в коде = 0 (FIXME/HACK тоже 0). Можно делать новые фичи с этой baseline.
