From 9146d5e44c626a6780e98d170133c289e6ca9391 Mon Sep 17 00:00:00 2001 From: Px8Studio Date: Sun, 12 Oct 2025 01:55:25 +0200 Subject: [PATCH 1/5] add LANGSMITH_API_KEY to .env.example --- backend/.env.example | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/.env.example b/backend/.env.example index fde5f6ba..21c999c4 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -1 +1,2 @@ -# GEMINI_API_KEY= \ No newline at end of file +# GEMINI_API_KEY= +# LANGSMITH_API_KEY= \ No newline at end of file From a0d791859b2c172126d03e94e03568ab0f619348 Mon Sep 17 00:00:00 2001 From: Px8Studio Date: Sun, 12 Oct 2025 02:03:46 +0200 Subject: [PATCH 2/5] uncomment LANGSMITH_API_KEY in .env.example --- backend/.env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/.env.example b/backend/.env.example index 21c999c4..50546102 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -1,2 +1,2 @@ # GEMINI_API_KEY= -# LANGSMITH_API_KEY= \ No newline at end of file +# LANGSMITH_API_KEY= From 85667e571e350a887dad643770e3403e7b6c0e7c Mon Sep 17 00:00:00 2001 From: Px8Studio Date: Sun, 12 Oct 2025 02:30:29 +0200 Subject: [PATCH 3/5] update default reasoning model and input form model to stable versions --- backend/examples/cli_research.py | 2 +- frontend/src/components/InputForm.tsx | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/backend/examples/cli_research.py b/backend/examples/cli_research.py index a086496b..fc6718d0 100644 --- a/backend/examples/cli_research.py +++ b/backend/examples/cli_research.py @@ -21,7 +21,7 @@ def main() -> None: ) parser.add_argument( "--reasoning-model", - default="gemini-2.5-pro-preview-05-06", + default="gemini-2.5-pro", help="Model for the final answer", ) args = parser.parse_args() diff --git a/frontend/src/components/InputForm.tsx b/frontend/src/components/InputForm.tsx index 97aa5c67..656f283c 100644 --- a/frontend/src/components/InputForm.tsx +++ b/frontend/src/components/InputForm.tsx @@ -26,7 +26,7 @@ export const InputForm: React.FC = ({ }) => { const [internalInputValue, setInternalInputValue] = useState(""); const [effort, setEffort] = useState("medium"); - const [model, setModel] = useState("gemini-2.5-flash-preview-04-17"); + const [model, setModel] = useState("gemini-2.0-flash"); const handleInternalSubmit = (e?: React.FormEvent) => { if (e) e.preventDefault(); @@ -36,11 +36,12 @@ export const InputForm: React.FC = ({ }; const handleKeyDown = (e: React.KeyboardEvent) => { - // Submit with Ctrl+Enter (Windows/Linux) or Cmd+Enter (Mac) - if (e.key === "Enter" && (e.ctrlKey || e.metaKey)) { + // Submit with Enter, new line with Shift+Enter + if (e.key === "Enter" && !e.shiftKey) { e.preventDefault(); handleInternalSubmit(); } + // Shift+Enter will allow a new line (default behavior) }; const isSubmitDisabled = !internalInputValue.trim() || isLoading; @@ -144,7 +145,7 @@ export const InputForm: React.FC = ({
@@ -152,11 +153,11 @@ export const InputForm: React.FC = ({
- 2.5 Pro + 2.5 Pro
From ef5ed4648b64c32bae27a47eb06a1c239108a8c6 Mon Sep 17 00:00:00 2001 From: Px8Studio Date: Tue, 11 Nov 2025 00:40:22 +0100 Subject: [PATCH 4/5] add peer dependencies to various packages in package-lock.json --- frontend/package-lock.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 48599091..8b996e90 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -2259,6 +2259,7 @@ "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -2268,6 +2269,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.2.tgz", "integrity": "sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -2278,6 +2280,7 @@ "integrity": "sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg==", "devOptional": true, "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^19.0.0" } @@ -2336,6 +2339,7 @@ "integrity": "sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.31.1", "@typescript-eslint/types": "8.31.1", @@ -2531,6 +2535,7 @@ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2998,6 +3003,7 @@ "integrity": "sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", @@ -4879,6 +4885,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -4888,6 +4895,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.26.0" }, @@ -5345,6 +5353,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -5439,6 +5448,7 @@ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -5663,6 +5673,7 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz", "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==", "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -5751,6 +5762,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -5802,6 +5814,7 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } From 60562e8b848e4df9cddf650f13f946da3ff688ad Mon Sep 17 00:00:00 2001 From: Px8Studio Date: Tue, 11 Nov 2025 00:56:21 +0100 Subject: [PATCH 5/5] update model version in InputForm and refine key handling logic --- frontend/src/components/InputForm.tsx | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/InputForm.tsx b/frontend/src/components/InputForm.tsx index 656f283c..ce7703ef 100644 --- a/frontend/src/components/InputForm.tsx +++ b/frontend/src/components/InputForm.tsx @@ -26,7 +26,7 @@ export const InputForm: React.FC = ({ }) => { const [internalInputValue, setInternalInputValue] = useState(""); const [effort, setEffort] = useState("medium"); - const [model, setModel] = useState("gemini-2.0-flash"); + const [model, setModel] = useState("gemini-2.5-flash"); const handleInternalSubmit = (e?: React.FormEvent) => { if (e) e.preventDefault(); @@ -36,12 +36,15 @@ export const InputForm: React.FC = ({ }; const handleKeyDown = (e: React.KeyboardEvent) => { - // Submit with Enter, new line with Shift+Enter - if (e.key === "Enter" && !e.shiftKey) { - e.preventDefault(); - handleInternalSubmit(); + // Submit on Enter; use Shift+Enter for a newline. + if (e.key !== "Enter") { + return; } - // Shift+Enter will allow a new line (default behavior) + if (e.shiftKey) { + return; + } + e.preventDefault(); + handleInternalSubmit(); }; const isSubmitDisabled = !internalInputValue.trim() || isLoading; @@ -157,7 +160,7 @@ export const InputForm: React.FC = ({ className="hover:bg-neutral-600 focus:bg-neutral-600 cursor-pointer" >
- 2.5 Pro + 2.5 Pro