Files
sol/docker-compose.dev.yaml
Sienna Meridian Satterwhite 495c465a01 refactor: remove legacy responder + agent_ux, add Gitea integration tests
Legacy removal:
- DELETE src/brain/responder.rs (900 lines) — replaced by orchestrator
- DELETE src/agent_ux.rs (184 lines) — UX moved to transport bridges
- EXTRACT chat_blocking() to src/brain/chat.rs (standalone utility)
- sync.rs: uses ConversationRegistry directly (no responder)
- main.rs: holds ToolRegistry + Personality directly (no Responder wrapper)
- research.rs: progress updates via tracing (no AgentProgress)

Gitea integration testing:
- docker-compose: added Gitea service with healthcheck
- bootstrap-gitea.sh: creates admin, org, mirrors 6 real repos from
  src.sunbeam.pt (sol, cli, proxy, storybook, admin-ui, mistralai-client-rs)
- PAT provisioning for SDK testing without Vault
- code_index/gitea.rs: fixed directory listing (direct API calls instead
  of SDK's single-object parser), proper base64 file decoding

New integration tests:
- Gitea: list_repos, get_repo, get_file, directory listing, code indexing
- Web search: SearXNG query with result verification
- Conversation registry: lifecycle + send_message round-trip
- Evaluator: rule matching (DM, own message)
- gRPC bridge: event filtering, tool call mapping, thinking→status
2026-03-24 11:45:43 +00:00

75 lines
2.2 KiB
YAML

## Local dev stack for sunbeam code iteration.
## Run: docker compose -f docker-compose.dev.yaml up
## Sol gRPC on localhost:50051, Matrix on localhost:8008
services:
opensearch:
image: opensearchproject/opensearch:3
environment:
- discovery.type=single-node
- OPENSEARCH_JAVA_OPTS=-Xms1536m -Xmx1536m
- DISABLE_SECURITY_PLUGIN=true
- plugins.ml_commons.only_run_on_ml_node=false
- plugins.ml_commons.native_memory_threshold=90
- plugins.ml_commons.model_access_control_enabled=false
- plugins.ml_commons.allow_registering_model_via_url=true
ports:
- "9200:9200"
volumes:
- opensearch-data:/usr/share/opensearch/data
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:9200/_cluster/health || exit 1"]
interval: 10s
timeout: 5s
retries: 10
tuwunel:
image: jevolk/tuwunel:main
environment:
- CONDUWUIT_SERVER_NAME=sunbeam.local
- CONDUWUIT_DATABASE_PATH=/data
- CONDUWUIT_PORT=8008
- CONDUWUIT_ADDRESS=0.0.0.0
- CONDUWUIT_ALLOW_REGISTRATION=true
- CONDUWUIT_ALLOW_GUEST_REGISTRATION=true
- CONDUWUIT_YES_I_AM_VERY_VERY_SURE_I_WANT_AN_OPEN_REGISTRATION_SERVER_PRONE_TO_ABUSE=true
- CONDUWUIT_LOG=info
ports:
- "8008:8008"
volumes:
- tuwunel-data:/data
searxng:
image: searxng/searxng:latest
environment:
- SEARXNG_SECRET=dev-secret-key
ports:
- "8888:8080"
volumes:
- ./dev/searxng-settings.yml:/etc/searxng/settings.yml:ro
gitea:
image: gitea/gitea:1.22
environment:
- GITEA__database__DB_TYPE=sqlite3
- GITEA__server__ROOT_URL=http://localhost:3000
- GITEA__server__HTTP_PORT=3000
- GITEA__service__DISABLE_REGISTRATION=false
- GITEA__service__REQUIRE_SIGNIN_VIEW=false
- GITEA__security__INSTALL_LOCK=true
- GITEA__api__ENABLE_SWAGGER=false
ports:
- "3000:3000"
volumes:
- gitea-data:/data
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:3000/api/v1/version || exit 1"]
interval: 10s
timeout: 5s
retries: 10
volumes:
opensearch-data:
tuwunel-data:
gitea-data: