Minor fixes

This commit is contained in:
Saoud Rizwan
2024-08-25 05:48:17 -04:00
parent cfb3c20afa
commit d7a31705a9
2 changed files with 69 additions and 52 deletions

View File

@@ -32,64 +32,81 @@ const App: React.FC = () => {
const [taskHistory, setTaskHistory] = useState<HistoryItem[]>([]) const [taskHistory, setTaskHistory] = useState<HistoryItem[]>([])
const [showAnnouncement, setShowAnnouncement] = useState(false) const [showAnnouncement, setShowAnnouncement] = useState(false)
const [koduCredits, setKoduCredits] = useState<number | undefined>(undefined) const [koduCredits, setKoduCredits] = useState<number | undefined>(undefined)
const [isNewUser, setIsNewUser] = useState(false)
useEffect(() => { useEffect(() => {
vscode.postMessage({ type: "webviewDidLaunch" }) vscode.postMessage({ type: "webviewDidLaunch" })
}, []) }, [])
const handleMessage = useCallback((e: MessageEvent) => { const handleMessage = useCallback(
const message: ExtensionMessage = e.data (e: MessageEvent) => {
switch (message.type) { const message: ExtensionMessage = e.data
case "state": switch (message.type) {
setVersion(message.state!.version) case "state":
const hasKey = setVersion(message.state!.version)
message.state!.apiConfiguration?.apiKey !== undefined || const hasKey =
message.state!.apiConfiguration?.openRouterApiKey !== undefined || message.state!.apiConfiguration?.apiKey !== undefined ||
message.state!.apiConfiguration?.awsAccessKey !== undefined || message.state!.apiConfiguration?.openRouterApiKey !== undefined ||
message.state!.apiConfiguration?.koduApiKey !== undefined message.state!.apiConfiguration?.awsAccessKey !== undefined ||
setShowWelcome(!hasKey) message.state!.apiConfiguration?.koduApiKey !== undefined
setApiConfiguration(message.state!.apiConfiguration) setShowWelcome(!hasKey)
setMaxRequestsPerTask( if (!hasKey && !isNewUser) {
message.state!.maxRequestsPerTask !== undefined ? message.state!.maxRequestsPerTask.toString() : "" setIsNewUser(true)
) }
setCustomInstructions(message.state!.customInstructions || "") setApiConfiguration(message.state!.apiConfiguration)
setAlwaysAllowReadOnly(message.state!.alwaysAllowReadOnly || false) setMaxRequestsPerTask(
setVscodeThemeName(message.state!.themeName) message.state!.maxRequestsPerTask !== undefined
setClaudeMessages(message.state!.claudeMessages) ? message.state!.maxRequestsPerTask.toString()
setTaskHistory(message.state!.taskHistory) : ""
setKoduCredits(message.state!.koduCredits) )
// don't update showAnnouncement to false if shouldShowAnnouncement is false setCustomInstructions(message.state!.customInstructions || "")
if (message.state!.shouldShowAnnouncement) { setAlwaysAllowReadOnly(message.state!.alwaysAllowReadOnly || false)
setShowAnnouncement(true) setVscodeThemeName(message.state!.themeName)
} setClaudeMessages(message.state!.claudeMessages)
setDidHydrateState(true) setTaskHistory(message.state!.taskHistory)
break setKoduCredits(message.state!.koduCredits)
case "action": // don't update showAnnouncement to false if shouldShowAnnouncement is false
switch (message.action!) { if (message.state!.shouldShowAnnouncement) {
case "settingsButtonTapped": setShowAnnouncement(true)
setShowSettings(true) }
setShowHistory(false) setDidHydrateState(true)
break break
case "historyButtonTapped": case "action":
setShowSettings(false) switch (message.action!) {
setShowHistory(true) case "settingsButtonTapped":
break setShowSettings(true)
case "chatButtonTapped": setShowHistory(false)
setShowSettings(false) break
setShowHistory(false) case "historyButtonTapped":
break setShowSettings(false)
case "koduAuthenticated": setShowHistory(true)
setShowSettings(true) break
setShowHistory(false) case "chatButtonTapped":
break setShowSettings(false)
} setShowHistory(false)
break break
} case "koduAuthenticated":
// we don't need to define any dependencies since we're not using any state in the callback. if you were to use state, you'd either have to include it in the dependency array or use the updater function `setUserText(prev => `${prev}${key}`);`. (react-use takes care of not registering the same listener multiple times even if this callback is updated.) if (!isNewUser) {
}, []) setShowSettings(true)
setShowHistory(false)
}
break
}
break
}
// (react-use takes care of not registering the same listener multiple times even if this callback is updated.)
},
[isNewUser]
)
useEvent("message", handleMessage) useEvent("message", handleMessage)
useEffect(() => {
if (showWelcome === false) {
setIsNewUser(false)
}
}, [showWelcome])
const { selectedModelInfo } = useMemo(() => { const { selectedModelInfo } = useMemo(() => {
return normalizeApiConfiguration(apiConfiguration) return normalizeApiConfiguration(apiConfiguration)
}, [apiConfiguration]) }, [apiConfiguration])

View File

@@ -54,9 +54,9 @@ const Announcement = ({ version, hideAnnouncement, apiConfiguration }: Announcem
</li> </li>
<li> <li>
Added "Always allow read-only operations" setting to let Claude read files and view directories Added "Always allow read-only operations" setting to let Claude read files and view directories
without needing to hit Allow. without needing to approve (off by default)
</li> </li>
<li>Added sliding window context management to keep tasks going past 200k tokens.</li> <li>Added sliding window context management to keep tasks going past 200k tokens</li>
</ul> </ul>
<p style={{ margin: "0" }}> <p style={{ margin: "0" }}>
Follow me for more updates!{" "} Follow me for more updates!{" "}