refactor: remove locale panel, improve provider validation and terminal buffer persistence
All checks were successful
Beta Release / beta (push) Successful in 47s
All checks were successful
Beta Release / beta (push) Successful in 47s
- Remove locale panel from config (language/keyboard already handled elsewhere) - Add per-provider key validation status with auto-check on load - Add missing tools section with AI-powered installation - Improve reset confirmation with modal - Persist terminal buffer to localStorage with auto-save - Detect clear command to wipe saved buffer - Remove AI tab concept (commands routed to active tab instead) - Remove renderTick hacks, use proper message keys 💘 Generated with Crush Assisted-by: MiniMax-M2.7 via Crush <crush@charm.land>
This commit is contained in:
@@ -309,7 +309,6 @@ export default function Studio({ api }) {
|
||||
const [tokenInfo, setTokenInfo] = useState({ used: 0, max: 100000, summarizeAt: 80000 })
|
||||
const [contextCollapsed, setContextCollapsed] = useState(false)
|
||||
const [messagesCollapsed, setMessagesCollapsed] = useState(false)
|
||||
const [renderTick, setRenderTick] = useState(0)
|
||||
const messagesEnd = useRef(null)
|
||||
const feedRef = useRef(null)
|
||||
const textareaRef = useRef(null)
|
||||
@@ -342,12 +341,6 @@ export default function Studio({ api }) {
|
||||
messagesEnd.current?.scrollIntoView({ behavior: 'smooth' })
|
||||
}, [messages, streaming, streamThinking, streamToolCalls])
|
||||
|
||||
useEffect(() => {
|
||||
const ms = loading ? 1000 : 5000
|
||||
const iv = setInterval(() => setRenderTick(t => t + 1), ms)
|
||||
return () => clearInterval(iv)
|
||||
}, [loading])
|
||||
|
||||
useEffect(() => {
|
||||
const onTab = (e) => {
|
||||
if (e.key !== 'Tab') return
|
||||
@@ -648,7 +641,7 @@ export default function Studio({ api }) {
|
||||
return (
|
||||
<>
|
||||
{messages.slice(0, visibleCount).map(msg => (
|
||||
<FeedItem key={`${msg.id}-${renderTick}`} msg={msg} />
|
||||
<FeedItem key={msg.id} msg={msg} />
|
||||
))}
|
||||
<div className="feed-collapsed-messages" onClick={handleToggleCollapsed}>
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
|
||||
@@ -661,7 +654,7 @@ export default function Studio({ api }) {
|
||||
)
|
||||
}
|
||||
return messages.map(msg => (
|
||||
<FeedItem key={`${msg.id}-${renderTick}`} msg={msg} />
|
||||
<FeedItem key={msg.id} msg={msg} />
|
||||
))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user