fix: Address code review findings (backend validation, hydration efficiency, plot readability)

This commit is contained in:
Yunxiao Xu
2026-02-17 01:53:25 -08:00
parent e4513fcf18
commit 96e2634053
5 changed files with 14 additions and 9 deletions

View File

@@ -91,7 +91,7 @@ async def stream_agent_events(
encoded_plots: list[str] = []
for fig in plots:
buf = io.BytesIO()
fig.savefig(buf, format="png", transparent=True)
fig.savefig(buf, format="png")
plot_bytes = buf.getvalue()
assistant_plots.append(plot_bytes)
encoded_plots.append(base64.b64encode(plot_bytes).decode('utf-8'))

View File

@@ -1,5 +1,5 @@
from pydantic import BaseModel, EmailStr
from typing import List, Optional
from typing import List, Optional, Literal
from datetime import datetime
# --- Auth Schemas ---
@@ -17,10 +17,10 @@ class UserResponse(BaseModel):
id: str
email: str
display_name: str
theme_preference: str
theme_preference: Literal["light", "dark"]
class ThemeUpdate(BaseModel):
theme: str
theme: Literal["light", "dark"]
# --- History Schemas ---

View File

@@ -420,7 +420,7 @@ def main():
st.pyplot(fig)
# Convert fig to bytes
buf = io.BytesIO()
fig.savefig(buf, format="png", transparent=True)
fig.savefig(buf, format="png")
plot_bytes_list.append(buf.getvalue())
if final_state.get("dfs"):

View File

@@ -12,7 +12,7 @@ import { Button } from "./components/ui/button"
import { useTheme } from "./components/theme-provider"
function App() {
const { setTheme } = useTheme()
const { setThemeLocal } = useTheme()
const [isAuthenticated, setIsAuthenticated] = useState(false)
const [user, setUser] = useState<UserResponse | null>(null)
const [authMode, setAuthMode] = useState<"login" | "register">("login")
@@ -37,7 +37,7 @@ function App() {
setUser(userData)
setIsAuthenticated(true)
if (userData.theme_preference) {
setTheme(userData.theme_preference as "light" | "dark")
setThemeLocal(userData.theme_preference as "light" | "dark")
}
// Load history after successful auth
loadHistory()
@@ -67,7 +67,7 @@ function App() {
setUser(userData)
setIsAuthenticated(true)
if (userData.theme_preference) {
setTheme(userData.theme_preference as "light" | "dark")
setThemeLocal(userData.theme_preference as "light" | "dark")
}
loadHistory()
} catch (err: unknown) {

View File

@@ -6,6 +6,7 @@ type Theme = "light" | "dark"
interface ThemeContextType {
theme: Theme
setTheme: (theme: Theme) => void
setThemeLocal: (theme: Theme) => void
toggleTheme: () => void
}
@@ -35,12 +36,16 @@ export function ThemeProvider({
}
}
const setThemeLocal = (newTheme: Theme) => {
setThemeState(newTheme)
}
const toggleTheme = () => {
setTheme(theme === "light" ? "dark" : "light")
}
return (
<ThemeContext.Provider value={{ theme, setTheme, toggleTheme }}>
<ThemeContext.Provider value={{ theme, setTheme, setThemeLocal, toggleTheme }}>
{children}
</ThemeContext.Provider>
)