Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion apps/web/components/chat/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,8 @@ export function ChatSidebar({
}) {
const isMobile = useIsMobile()
const [input, setInput] = useState("")
const [selectedModel, setSelectedModel] = useState<ModelId>("gemini-2.5-pro")
const [selectedModel, setSelectedModel] =
useState<ModelId>("claude-sonnet-4.6")
const [copiedMessageId, setCopiedMessageId] = useState<string | null>(null)
const [hoveredMessageId, setHoveredMessageId] = useState<string | null>(null)
const [messageFeedback, setMessageFeedback] = useState<
Expand Down
3 changes: 2 additions & 1 deletion apps/web/components/chat/model-selector.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ export default function ChatModelSelector({
selectedModel: selectedModelProp,
onModelChange,
}: ChatModelSelectorProps = {}) {
const [internalModel, setInternalModel] = useState<ModelId>("gemini-2.5-pro")
const [internalModel, setInternalModel] =
useState<ModelId>("claude-sonnet-4.6")
const [isOpen, setIsOpen] = useState(false)

const selectedModel = selectedModelProp ?? internalModel
Expand Down
9 changes: 4 additions & 5 deletions apps/web/components/next-app-research-cta.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,7 @@ export function NextAppResearchCta() {
if (org?.name) visitor.company = org.name
const github = (user as { github?: unknown } | null)?.github
if (typeof github === "string" && github) visitor.github = github
const joinArgs =
Object.keys(visitor).length > 0 ? { visitor } : undefined
const joinArgs = Object.keys(visitor).length > 0 ? { visitor } : undefined
const { entryUrl } = await widget.joinCall(joinArgs)
navigate(entryUrl)
} catch (err) {
Expand Down Expand Up @@ -226,9 +225,9 @@ export function NextAppResearchCta() {
}

return (
<section
<button
type="button"
id="next-app-research-cta"
role="button"
tabIndex={0}
onClick={handleJoinCall}
onKeyDown={handleCardKeyDown}
Expand Down Expand Up @@ -306,6 +305,6 @@ export function NextAppResearchCta() {
</div>
</div>
</div>
</section>
</button>
)
}
2 changes: 1 addition & 1 deletion apps/web/components/onboarding/setup/chat-sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ export function ChatSidebar({ formData }: ChatSidebarProps) {

useEffect(() => {
agent.setState({
model: "gemini-2.5-pro" as const,
model: "claude-sonnet-4.6" as const,
projectId: selectedProject,
})
}, [agent, selectedProject])
Expand Down
8 changes: 6 additions & 2 deletions apps/web/lib/chat-stream-error.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import type { ModelId } from "@/lib/models"

const OTHER_MODELS: ModelId[] = ["gpt-5", "claude-sonnet-4.5"]
const OTHER_MODELS: ModelId[] = [
"gpt-5.1",
"claude-sonnet-4.6",
"gemini-2.5-pro",
]

function flattenError(e: unknown): string {
if (e == null) return ""
Expand Down Expand Up @@ -36,6 +40,6 @@ export function getNovaChatErrorCopy(error: unknown, model: ModelId) {
return {
title: "Something went wrong",
body,
otherModels: model === "gemini-2.5-pro" ? OTHER_MODELS : [],
otherModels: OTHER_MODELS.filter((id) => id !== model),
}
}
16 changes: 8 additions & 8 deletions apps/web/lib/models.tsx
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
export const models = [
{
id: "gpt-5",
name: "GPT 5",
id: "gpt-5.1",
name: "GPT 5.1",
description: "OpenAI's latest model",
},
{
id: "claude-sonnet-4.5",
name: "Claude Sonnet 4.5",
id: "claude-sonnet-4.6",
name: "Claude Sonnet 4.6",
description: "Anthropic's advanced model",
},
{
id: "gemini-2.5-pro",
name: "Gemini 2.5 Pro",
name: "Gemini 3 Pro",
description: "Google's most capable model",
},
] as const

export type ModelId = (typeof models)[number]["id"]

export const modelNames: Record<ModelId, { name: string; version: string }> = {
"gpt-5": { name: "GPT", version: "5" },
"claude-sonnet-4.5": { name: "Claude", version: "4.5" },
"gemini-2.5-pro": { name: "Gemini", version: "2.5 Pro" },
"gpt-5.1": { name: "GPT", version: "5.1" },
"claude-sonnet-4.6": { name: "Claude", version: "4.6" },
"gemini-2.5-pro": { name: "Gemini", version: "3 Pro" },
}

interface ModelIconProps {
Expand Down
8 changes: 4 additions & 4 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
"postdeploy": "bun run sentry:sourcemaps"
},
"dependencies": {
"@ai-sdk/google": "^3.0.9",
"@ai-sdk/react": "^3.0.39",
"@ai-sdk/xai": "^3.0.23",
"@ai-sdk/google": "^3.0.64",
"@ai-sdk/react": "^3.0.170",
"@ai-sdk/xai": "^3.0.83",
"@better-fetch/fetch": "^1.1.18",
"@cloudflare/ai-chat": "^0.0.7",
"@dnd-kit/core": "^6.3.1",
Expand Down Expand Up @@ -69,7 +69,7 @@
"@types/d3-force": "^3.0.10",
"@types/dompurify": "^3.2.0",
"agents": "^0.4.0",
"ai": "^6.0.35",
"ai": "^6.0.168",
"autumn-js": "0.0.116",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
Expand Down
66 changes: 40 additions & 26 deletions bun.lock

Large diffs are not rendered by default.

Loading