# Ten31 Transcripts Native macOS menu-bar app that auto-detects conference calls, records local audio, builds a visual-derived speaker timeline, and hands audio + timeline to the SparkControl backend for naming/transcription. See `docs/` for the full spec. This repo is at **Phase 0** (scaffold, permissions, backend health check). ## One-time setup 1. **Install Xcode** from the Mac App Store (free; ~40 GB). Open it once and accept the license prompt. 2. **Install XcodeGen** (generates the Xcode project from `project.yml`): ```sh brew install xcodegen ``` 3. **Generate the project:** ```sh xcodegen generate ``` This creates `Ten31Transcripts.xcodeproj` (git-ignored — regenerate any time). 4. **Open it:** ```sh open Ten31Transcripts.xcodeproj ``` 5. In Xcode, select the **Ten31Transcripts** target → **Signing & Capabilities**: - Check **Automatically manage signing**. - For **Team**, pick your personal team (sign in with your Apple ID — free; no paid developer account needed). A stable team keeps macOS from re-asking for permissions on every rebuild. 6. Press **Run** (⌘R). ## What Phase 0 does - Launches as a menu-bar-only app (no Dock icon). - Menu panel shows live status for the three permissions it needs — **Microphone**, **Screen Recording**, **Accessibility** — with Grant / Open Settings buttons. - Shows a **backend health check** (`GET /api/status`) against the configured host. - **Settings:** backend base URL, skip-TLS toggle (on by default for the self-signed cert), output folder, and adapter toggles (inert this phase). No audio capture, call detection, screen reading, or backend hand-off yet — those arrive in Phases 1–6 (`docs/04_BUILD_PLAN.md`). ## Project layout ``` project.yml # XcodeGen recipe → generates the .xcodeproj Ten31Transcripts/ App/ Ten31TranscriptsApp.swift, AppDelegate.swift UI/ MenuBarView, SettingsView, PermissionRow Permissions/PermissionsManager.swift Backend/ SparkControlHealth.swift, InsecureTrustDelegate.swift Settings/ AppSettings.swift Support/ Info.plist, Ten31Transcripts.entitlements Ten31TranscriptsTests/ # placeholder; real tests land in Phase 3 ``` ## Notes - **App Sandbox is off** and **Hardened Runtime is off** — this is a personal, LAN-only tool that must observe other apps. Revisit only if distributing. - The default backend host is `https://your-spark-backend.local:62419` (editable in Settings).