diff --git a/.gitattributes b/.gitattributes index 284eab4f98..e9e36432cd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6,6 +6,11 @@ src/assets/docs/demo.gif filter=lfs diff=lfs merge=lfs -text *.snap linguist-generated=true # Non-English translation files - mark as linguist-generated to exclude from GitHub language statistics +# Package NLS files - mark non-English ones as generated +src/package.nls.*.json linguist-generated=true +# Exclude the base English file from being marked as generated +src/package.nls.json linguist-generated=false + # Root locales directory (contains only non-English translations) locales/** linguist-generated=true diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f4cccac46..c75bb9e327 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,31 @@ # Roo Code Changelog +## [3.25.23] - 2025-08-22 + +- feat: add custom base URL support for Requesty provider (thanks @requesty-JohnCosta27!) +- feat: add DeepSeek V3.1 model to Chutes AI provider (#7294 by @dmarkey, PR by @app/roomote) +- Revert "feat: enable loading Roo modes from multiple files in .roo/modes directory" temporarily to fix a bug with mode installation + +## [3.25.22] - 2025-08-22 + +- Add prompt caching support for Kimi K2 on Groq (thanks @daniel-lxs and @benank!) +- Add documentation links for global custom instructions in UI (thanks @app/roomote!) + +## [3.25.21] - 2025-08-21 + +- Ensure subtask results are provided to GPT-5 in OpenAI Responses API +- Promote the experimental AssistantMessageParser to the default parser +- Update DeepSeek models context window to 128k (thanks @JuanPerezReal) +- Enable grounding features for Vertex AI (thanks @anguslees) +- Allow orchestrator to pass TODO lists to subtasks +- Improved MDM handling +- Handle nullish token values in ContextCondenseRow to prevent UI crash (thanks @s97712) +- Improved context window error handling for OpenAI and other providers +- Add "installed" filter to Roo Marketplace (thanks @semidark) +- Improve filesystem access checks (thanks @elianiva) +- Support for loading Roo modes from multiple YAML files in the `.roo/modes/` directory (thanks @farazoman) +- Add Featherless provider (thanks @DarinVerheijke) + ## [3.25.20] - 2025-08-19 - Add announcement for Sonic model diff --git a/apps/web-evals/.env b/apps/web-evals/.env index 7970806bec..1bb6dd6dac 100644 --- a/apps/web-evals/.env +++ b/apps/web-evals/.env @@ -1 +1 @@ -DATABASE_URL=postgres://postgres:password@localhost:5432/evals_development +DATABASE_URL=postgres://postgres:password@localhost:5433/evals_development diff --git a/apps/web-evals/scripts/check-services.sh b/apps/web-evals/scripts/check-services.sh index 104a472208..d72ffd54e8 100755 --- a/apps/web-evals/scripts/check-services.sh +++ b/apps/web-evals/scripts/check-services.sh @@ -5,13 +5,13 @@ if ! docker info &> /dev/null; then exit 1 fi -if ! nc -z localhost 5432 2>/dev/null; then +if ! nc -z postgres 5433 2>/dev/null; then echo "❌ PostgreSQL is not running on port 5432" echo "💡 Start it with: pnpm --filter @roo-code/evals db:up" exit 1 fi -if ! nc -z localhost 6379 2>/dev/null; then +if ! nc -z redis 6380 2>/dev/null; then echo "❌ Redis is not running on port 6379" echo "💡 Start it with: pnpm --filter @roo-code/evals redis:up" exit 1 diff --git a/apps/web-evals/src/app/runs/new/new-run.tsx b/apps/web-evals/src/app/runs/new/new-run.tsx index f8633611b6..41d35f3c4c 100644 --- a/apps/web-evals/src/app/runs/new/new-run.tsx +++ b/apps/web-evals/src/app/runs/new/new-run.tsx @@ -8,7 +8,7 @@ import { useForm, FormProvider } from "react-hook-form" import { zodResolver } from "@hookform/resolvers/zod" import fuzzysort from "fuzzysort" import { toast } from "sonner" -import { X, Rocket, Check, ChevronsUpDown, SlidersHorizontal, Book, CircleCheck } from "lucide-react" +import { X, Rocket, Check, ChevronsUpDown, SlidersHorizontal, CircleCheck } from "lucide-react" import { globalSettingsSchema, providerSettingsSchema, EVALS_SETTINGS, getModelId } from "@roo-code/types" @@ -49,11 +49,8 @@ import { PopoverContent, PopoverTrigger, ScrollArea, + ScrollBar, Slider, - Dialog, - DialogContent, - DialogTitle, - DialogFooter, } from "@/components/ui" import { SettingsDiff } from "./settings-diff" @@ -93,10 +90,6 @@ export function NewRun() { const [model, suite, settings] = watch(["model", "suite", "settings", "concurrency"]) - const [systemPromptDialogOpen, setSystemPromptDialogOpen] = useState(false) - const [systemPrompt, setSystemPrompt] = useState("") - const systemPromptRef = useRef(null) - const onSubmit = useCallback( async (values: CreateRun) => { try { @@ -104,13 +97,13 @@ export function NewRun() { values.settings = { ...(values.settings || {}), openRouterModelId: model } } - const { id } = await createRun({ ...values, systemPrompt }) + const { id } = await createRun(values) router.push(`/runs/${id}`) } catch (e) { toast.error(e instanceof Error ? e.message : "An unknown error occurred.") } }, - [mode, model, router, systemPrompt], + [mode, model, router], ) const onFilterModels = useCallback( @@ -269,29 +262,11 @@ export function NewRun() { + )} - - - - - - Override System Prompt -