Repository navigation
Entwicklung
Öffentliches npm-Workspaces-Monorepo. Installation nur am Root:
git clone https://github.com/safetraliasoftware/ai-council.git
cd ai-council
npm install
npm run dev| Befehl | Zweck |
|---|---|
npm run dev |
Electron im Entwicklungsmodus |
npm run typecheck |
tsc --noEmit in allen Workspaces |
npm test |
Vitest, mehrere Minuten, echte Git-Worktrees und Kindprozesse |
npm test --workspace=@ai-council/coding |
eine Suite |
npm run build |
Produktionsbuild (electron-vite) |
npm run dist --workspace=@ai-council/desktop |
lokale Installer, ohne Publish |
Kein ESLint/Prettier im Repo. Erwarteter Stand vor einem Merge: typecheck, test und Desktop-build grün.
Wenn die Dev-App mit app is undefined oder requestSingleInstanceLock stirbt, erbt die Shell oft ELECTRON_RUN_AS_NODE=1 (z. B. aus VS Code/Cursor). Der Launcher apps/desktop/scripts/run-electron-vite.cjs entfernt die Variable. npm run dev immer über dieses Script, nicht über ein nacktes electron-vite aus einer verseuchten Umgebung.
- Version in
apps/desktop/package.jsonerhöhen (SemVer, der Auto-Updater vergleicht sie mit dem GitHub-Tag). - Committen und nach
origin/masterpushen. - Git-Tag
vX.Y.Zanlegen und pushen — bevor electron-builder veröffentlicht. Ohne Tag antwortet GitHub mit 422 Published releases must have a valid tag. - Packen und veröffentlichen aus dem Desktop-Projekt, nicht vom Monorepo-Root:
npx electron-builder --projectDir apps/desktop --publish alwaysnpm run dist -- --publish always frisst --publish als npm-Flag. Ein Aufruf ohne --projectDir apps/desktop packt das Root-Paket ohne index.js.
- Prüfen, dass genau ein Release für den Tag existiert (nsis und portable dürfen nicht zwei Releases anlegen):
gh api repos/safetraliasoftware/ai-council/releases --jq ".[] | {tag_name, draft, assets: [.assets[].name]}"Erwartete Assets: Setup-.exe, .blockmap, portable .exe, latest.yml.
Details für Agenten, die im Repo arbeiten: CLAUDE.md.
Start
Funktionen
Hilfe
Entwicklung