cynarAI ece3638ce7
fix(ui-web): teach cn() the design system's text and control scales (#115)
* fix(ui-web): teach cn() the design system's text and control scales

cn() used plain tailwind-merge, which only knows Tailwind's default scales.
It read the custom font sizes (text-ui-label, text-ui-caption, ...) as text
colors, so of a size and a color in one class list only the last survived:

- Small, extra-small and large buttons lost their variant's text color. A
  small primary button rendered foreground text on the primary fill (ink on
  ink in the light theme, near-white on white in the dark theme), and
  destructive, secondary and link buttons lost their colors the same way.
- Default-size and icon buttons, tab triggers and the typography helpers
  lost their font size and inherited the parent's instead.

The control and icon spacing scales (h-control-sm, size-icon-md, ...) were
unknown as well, so they never merged with other sizes: an explicit h-auto
or h-9 on a Button, Input or Toggle lost to the component's own height, and
large buttons and toggles drew their icons at the medium size.

cn() now extends tailwind-merge with the text and spacing keys styles.css
adds under @theme. A unit test probes cn() with every @theme key in
styles.css, so a new key that is not registered fails the test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MRtGG9ARfqqhma3t85Ro2u

* test: look up the home main conversation in the scheduling journey

Since every project has its own main conversation, the journey that
schedules for a specialist found the user's main conversation with
findFirst over all of them. With the Lab project's conversation also
matching, it picked either one, so the check failed about one run in
three. The lookup now names the home space, where the specialist joined
and the routine is created.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MRtGG9ARfqqhma3t85Ro2u

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-04 10:04:18 +02:00
2026-09-20 17:15:16 +02:00
2026-09-20 17:15:16 +02:00

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-update, 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

  • packages/core/src/self-update.ts
  • apps/desktop/src/local-stack.ts
  • packages/adapters/src/pi-local-provider.ts
  • scripts/seed-ollama.ts
  • Voice First / Oo stage (apps/web CallView + 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.

Description
evOo - Multi-Agent Orchestration Platform
Readme 24 MiB
Languages
TypeScript 94.5%
CSS 1.2%
JavaScript 1.1%
Shell 0.9%
Python 0.8%
Other 1.4%