The scan's project phase called prisma.space with fields the Space model does not have (title, path). Both calls threw, a per-repository try/catch swallowed the errors, and no project was ever created. With the field names fixed, the space would still have had no organization or membership, so nobody could have seen it. The phase now goes through createSpaceForMember and wireProjectWorkspace, the helpers behind spaces.create: each repository becomes a project of the deployment owner in their current organization, linked to its folder with its git remote, branch and head. It still runs only in the owner's scan with ONBOARDING_SCAN_HOME set. A repository whose real folder one of the owner's projects already links is skipped, so scanning again creates nothing; the phase stops at the per-member space limit; and a second start while a scan runs (a StrictMode remount, a retry) joins it instead of linking everything twice. Discovery no longer descends into dot folders, where shell and editor plugin checkouts would otherwise become projects. The Prisma client is typed, so a field the schema lacks is a compile error again instead of a swallowed one. readGitCheckout loaded child_process with require(), which does not exist in the ES module runtime the API runs in, so linking any folder with a .git directory threw "require is not defined", in the scan and in the New project dialog alike. It now imports spawn statically; the module is only reachable through its server-only subpath, so browser bundles still never load it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ebcq9seT9eCoHtqxuWEUzg
evOo
DE · Lokale Multi-Oo Programmier-Maschine — persistente KI-Teamkollegen mit Voice First, Projekt-Timeline und lokalen Tools.
EN · Local multi-Oo programming machine — persistent AI teammates with Voice First, project timeline, and local tooling.
Clean local checkout for Ingo Wagner. Brand: evOo only. Sourced from
cynarAI/evoo@f00577b(antigravity-handoff/project-timeline), with a fresh git history.
What this is / Was das ist
| DE | EN |
|---|---|
| Persönliche Multi-Agenten-App auf dem eigenen Rechner | Personal multi-agent app on your own machine |
| Oos (Agents) mit Memory, Tools, Voice und Computer | Oos (agents) with memory, tools, voice, and computer |
| Antigravity-Zukunftswerkzeuge: self_improve, autonomous-sentinel, self-update, orchestrator, local-stack, pi-local-provider, seed-ollama, Voice First / Oo-Stage | Same Antigravity future tools kept on this branch |
Quick start
# clone (Mac recommended path)
git clone git@github.com:cynarAI/evOo-local.git ~/Projects/evOo-local
cd ~/Projects/evOo-local
cp .env.example .env
# set POSTGRES_PASSWORD, DATABASE_URL, BETTER_AUTH_SECRET, ENCRYPTION_KEY, SCREEN_PROXY_SECRET, SANDBOX_SUPERVISOR_TOKEN
# Postgres (Compose overlay publishes 127.0.0.1:5433)
docker compose --env-file .env \
-f infra/compose/docker-compose.yml \
-f infra/compose/docker-compose.postgres-host.yml \
up postgres -d
pnpm install
pnpm db:generate
pnpm db:migrate
pnpm sandbox:build # optional, for Docker computers
pnpm dev
| Service | URL |
|---|---|
| Web app | http://127.0.0.1:5173 |
| API | http://127.0.0.1:3100 |
Full local notes: docs/LOCAL-SETUP.md
Stack
- TypeScript monorepo (pnpm + Turborepo)
- React 19 / Vite / Tailwind (web), Electron (desktop), Expo (mobile)
- Hono + oRPC, PostgreSQL + Prisma, Better Auth, Graphile Worker
- Pi model routing, Docker sandboxes, Voice (Kokoro local / BYO keys)
Antigravity tools kept on this branch
scripts/self_improve.pyscripts/autonomous-sentinel.tspackages/core/src/self-update.tsorchestrator/(agent_runner + agents.json)apps/desktop/src/local-stack.tspackages/adapters/src/pi-local-provider.tsscripts/seed-ollama.ts- Voice First / Oo stage (
apps/webCallView + stage components)
Voice (Kokoro)
Large voice model blobs are not in this repo. Recreate Kokoro separately:
docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu:latest
export KOKORO_BASE_URL=http://127.0.0.1:8880
Details: docs/kokoro-voice.md
Tech debt (brand / packages)
Internal workspace packages still use @rakazo/* names (and some RAKAZO_* env vars). Renaming them would break the build; treat as temporary tech debt. User-facing titles and docs say evOo.
License
Apache License 2.0 — see LICENSE.