feat: add Behavior settings page for global AGENTS.md (#1079)

* feat: add Behavior settings page for global AGENTS.md

- Add new 'Behavior' settings page to manage global system prompt
- Sync global behavior prompt to ~/.config/opencode/AGENTS.md
- Add GET/PUT /api/behavior/agents-md endpoints with 1MB size limit
- Add AbortController guards and parallel fetches in BehaviorPage
- Add i18n translations for en, es, ko, pt-BR, uk, zh-CN
- Add globalBehaviorPrompt to DesktopSettings type and sanitizer
- Add /api/behavior to express.json() body-parser whitelist
- Ensure atomic save: AGENTS.md written before settings updated

* fix: address Greptile review feedback

- Rename misleading 'trimmed' variable to 'value' in settings-helpers.js
- Add Content-Length guard for /api/behavior before 50mb JSON parser
- Use express.json({ limit: '1mb' }) for behavior endpoints
- Add actual translations for es, ko, pt-BR, uk, zh-CN locales

* fix(vscode): support behavior settings endpoint

* fix(behavior): wait for settings persistence

* fix(behavior): end agents file with newline

* fix(behavior): avoid duplicate textarea resize handles

* fix(behavior): clarify global rules copy

* fix(behavior): move rules note into tooltip

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
This commit is contained in:
Shyamalan Kannan
2026-05-01 00:39:55 +03:00
committed by GitHub
co-authored by Bohdan Triapitsyn
parent d35ff8a2db
commit bcbf34b1d1
15 changed files with 361 additions and 1 deletions
@@ -337,6 +337,14 @@ export const settingsDict = {
"settings.agents.page.permissions.addCustomRule": "Añadir regla personalizada",
"settings.agents.page.permissions.permissionPlaceholder": "Permiso...",
"settings.agents.page.permissions.patternPlaceholder": "Patrón (ej. *)",
"settings.page.behavior.title": "Comportamiento",
"settings.behavior.page.title": "Comportamiento",
"settings.behavior.page.warning.title": "Las reglas globales se combinan con las reglas del proyecto",
"settings.behavior.page.warning.description": "Los cambios realizados aquí actualizan {path}. OpenCode también incluye cualquier AGENTS.md a nivel de proyecto cuando existe.",
"settings.behavior.page.section.systemPrompt": "AGENTS.md global",
"settings.behavior.page.field.systemPromptPlaceholder": "Eres un asistente de IA útil...\n\nUsa este espacio para definir reglas absolutas sobre cómo la IA debe comportarse en todas las sesiones y proveedores.",
"settings.behavior.page.toast.saved": "Comportamiento guardado correctamente",
"settings.behavior.page.toast.saveFailed": "Error al guardar el comportamiento",
"settings.commands.sidebar.title": "Comandos",
"settings.commands.sidebar.total": "Total {count}",
"settings.commands.sidebar.empty.title": "No hay comandos configurados",