Allow tool groups + following content to be updateable.

- I found that when there are fast transactions that update our tool group history at times promoting a tool group into the static container can result in bleeding. As a temporary fix for this (not a react Guru) I'm increasing the # of items to be 2 as updateable if a tool group is close to the end.
This commit is contained in:
Taylor Mullen 2025-04-27 13:25:11 -07:00 committed by N. Taylor Mullen
parent 9de2e82b8f
commit 00840f75a1
1 changed files with 28 additions and 8 deletions

View File

@ -80,8 +80,8 @@ export const App = ({ config, cliVersion }: AppProps) => {
// --- Render Logic --- // --- Render Logic ---
const staticallyRenderedHistoryItems = history.slice(0, -1); const { staticallyRenderedHistoryItems, updatableHistoryItems } =
const updatableHistoryItem = history[history.length - 1]; getHistoryRenderSlices(history);
return ( return (
<Box flexDirection="column" marginBottom={1} width="90%"> <Box flexDirection="column" marginBottom={1} width="90%">
@ -118,13 +118,15 @@ export const App = ({ config, cliVersion }: AppProps) => {
}} }}
</Static> </Static>
{updatableHistoryItem && ( {updatableHistoryItems.length > 0 && (
<Box flexDirection="column" alignItems="flex-start"> <Box flexDirection="column" alignItems="flex-start">
<HistoryItemDisplay {updatableHistoryItems.map((historyItem) => (
key={'history-' + updatableHistoryItem.id} <HistoryItemDisplay
item={updatableHistoryItem} key={'history-' + historyItem.id}
onSubmit={submitQuery} item={historyItem}
/> onSubmit={submitQuery}
/>
))}
</Box> </Box>
)} )}
@ -214,3 +216,21 @@ export const App = ({ config, cliVersion }: AppProps) => {
</Box> </Box>
); );
}; };
function getHistoryRenderSlices(history: HistoryItem[]) {
let staticallyRenderedHistoryItems: HistoryItem[] = [];
let updatableHistoryItems: HistoryItem[] = [];
if (
history.length > 1 &&
history[history.length - 2]?.type === 'tool_group'
) {
// If the second-to-last item is a tool_group, it and the last item are updateable
staticallyRenderedHistoryItems = history.slice(0, -2);
updatableHistoryItems = history.slice(-2);
} else {
// Otherwise, only the last item is updateable
staticallyRenderedHistoryItems = history.slice(0, -1);
updatableHistoryItems = history.slice(-1);
}
return { staticallyRenderedHistoryItems, updatableHistoryItems };
}