mirror of
https://github.com/jeffusion/gitea-ai-assistant.git
synced 2026-06-06 07:26:49 +00:00
- Add agent-kernel runtime (MainAgentRunner with while-true state machine, subagent spawning, tool loop, budget control) - Add review-agent entrypoint with read_file/search_code/spawn_subagent tools - Add deterministic publish adapter with cross-specialist finding dedup - Delete old fixed workflow (orchestrator, triage, specialist, judge agents, 4 domain agents, critic/debate/reflexion agents, learning/memory system) - Remove legacy ModelRole (planner/specialist/judge) from LLM types, gateway, config schema, DB, and frontend RoleAssignment UI - Replace RoleAssignment with AgentModelSettings for role-based model config - Add agent config API endpoints (GET/PUT /admin/api/agents/config) - Add review session detail page with observability/findings/logs tabs - Add runtime contract tests and review adapter integration tests - Add E2E mock LLM with scripted behavior support for deterministic testing - Update E2E test script with subagent and finding assertions - Add e2e/README.md with real PR review testing guide - Fix seed.sh to run gitea admin commands as git user (not root) - Update docs (configuration, review-engines, deployment, README) - Remove unused feedback controller, qdrant k8s manifest, embedding migration - Add .omo/ and .opencode/ to .gitignore
2.6 KiB
2.6 KiB
Configuration Reference
Configuration model
This project uses a DB-first runtime configuration model:
.envcontains only infrastructure-level bootstrap values.- Runtime settings (Gitea, providers, secrets, review policy, notifications) are managed in Admin UI and stored in SQLite.
Environment variables (minimal)
| Variable | Required | Description | Default |
|---|---|---|---|
ENCRYPTION_KEY |
Yes | AES-256-GCM master key (64 hex chars) for API key encryption | - |
PORT |
No | Service port | 5174 |
DATABASE_PATH |
No | SQLite path | ./data/assistant.db |
LOG_LEVEL |
No | Backend log level (debug/info/warn/error). Default is info; use error in production. |
info |
Generate key:
openssl rand -hex 32
First boot defaults
When database is empty:
JWT_SECRETauto-generatedWEBHOOK_SECRETauto-generatedADMIN_PASSWORDdefaults topassword
Change ADMIN_PASSWORD immediately after first login.
Runtime groups in Admin UI
1) Gitea
- API URL
- Access token
- Admin token (optional)
2) Security
- Webhook secret (HMAC-SHA256 verification)
- Admin password
- JWT secret
3) LLM
- Providers: OpenAI Compatible / OpenAI Responses / Anthropic / Gemini
- Agent runtime models:
AGENT_MAIN_MODEL: The main model name used by the agent runtime when no specific model is configured. Default isgpt-4.1.AGENT_DEFAULT_SUBAGENT_MODEL: The default model name used by subagents when no specific model is declared in their definition or overridden during spawn. Default isgpt-4.1-mini.
4) Notification
- Feishu webhook and optional secret
- WeCom (企业微信) webhook
5) Review
- Engine mode:
agentorcodex - Triage size classification and routing hints
- Size thresholds (
small/medium/large) - Execution modes (
skip/light/full) - Token budgets and concurrency limits
Size and mode are different layers:
small/medium/large: change-size classificationskip/light/full: review execution depth
Agent Definitions
Project agent definitions are stored as Markdown files with frontmatter in the repository:
- Path:
.gitea-assistant/agents/*.md
These files define the system prompts, metadata, and execution parameters for each agent.
Tool Permissions
Tool permissions are controlled directly within each agent's definition file:
tools: An allow-list of tool names that the agent is permitted to call. An empty list grants no tools.disallowedTools: A deny-list of tool names that the agent is explicitly forbidden from calling. This takes precedence over the allow-list.