# CommiTea (desktop) An AI project manager for Gitea, as an Electron desktop app. The token stays in the main process (OS keychain via `safeStorage`); the renderer never sees it. ## Develop ```bash yarn dev # electron-vite dev, HMR renderer + main (logs → desktop.log) yarn typecheck yarn e2e # builds, then Playwright against the built main (fixtures/demo) ``` For a live pass against a real Gitea, put a token in `.env.local` (`GITEA_TOKEN=…`) and run `GITEA_LIVE=1 yarn e2e live-onboarding`. ## Package (shareable macOS .dmg) ```bash yarn pack # unpacked .app for the host arch (fast sanity check) → dist/ yarn dist # arm64 + x64 .dmg → dist/CommiTea-[-arm64].dmg ``` Config is `electron-builder.yml`. Builds are **unsigned** (no Apple certs, by decision) — electron-builder ad-hoc signs so the app can run, but it is not notarized. Bump `version` in `package.json` for a new release; keep `electronVersion` in `electron-builder.yml` in sync with the `electron` devDependency. ### Installing a shared build (teammates) macOS Gatekeeper blocks unsigned apps on first launch. To open: 1. Open the `.dmg` and drag **CommiTea** to **Applications**. 2. In Applications, **right-click CommiTea → Open**, then confirm **Open** in the dialog. (Double-clicking the first time just shows "cannot be opened".) 3. It opens to the connection screen — enter your Gitea base URL, `owner/repo`, and a personal access token (repo scope). Each teammate uses their own token, so activity is attributed correctly. A model URL is optional; chat is disabled until one is configured, everything else works without it. Grab the `-arm64` dmg on Apple Silicon, the plain one on Intel.