bingocode 1.1.117 → 1.1.119
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bingocode",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.119",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"claude": "bin/claude-win.cjs",
|
|
@@ -51,7 +51,6 @@
|
|
|
51
51
|
"auto-bind": "^5.0.1",
|
|
52
52
|
"axios": "^1.14.0",
|
|
53
53
|
"bidi-js": "^1.0.3",
|
|
54
|
-
"bingocode": "^1.1.112",
|
|
55
54
|
"chalk": "^5.6.2",
|
|
56
55
|
"chokidar": "^5.0.0",
|
|
57
56
|
"cli-boxes": "^4.0.1",
|
|
@@ -700,7 +700,7 @@ const MessagesImpl = ({
|
|
|
700
700
|
<VirtualMessageList messages={renderableMessages} scrollRef={scrollRef} columns={columns} itemKey={messageKey} renderItem={renderMessageRow} onItemClick={onItemClick} isItemClickable={isItemClickable} isItemExpanded={isItemExpanded} trackStickyPrompt={trackStickyPrompt} selectedIndex={selectedIdx >= 0 ? selectedIdx : undefined} cursorNavRef={cursorNavRef} setCursor={setCursor} jumpRef={jumpRef} onSearchMatchesChange={onSearchMatchesChange} scanElement={scanElement} setPositions={setPositions} extractSearchText={extractSearchText} />
|
|
701
701
|
</InVirtualListContext.Provider> : renderableMessages.flatMap(renderMessageRow)}
|
|
702
702
|
|
|
703
|
-
{streamingText && !isBriefOnly && <Box alignItems="flex-start" flexDirection="row" marginTop={1} width="100%">
|
|
703
|
+
{streamingText && !isBriefOnly && renderableMessages.at(-1)?.type !== 'assistant' && <Box alignItems="flex-start" flexDirection="row" marginTop={1} width="100%">
|
|
704
704
|
<Box flexDirection="row">
|
|
705
705
|
<Box minWidth={2}>
|
|
706
706
|
<Text color="text">{BLACK_CIRCLE}</Text>
|
package/src/utils/messages.ts
CHANGED
|
@@ -746,7 +746,7 @@ export function normalizeMessages(messages: Message[]): NormalizedMessage[] {
|
|
|
746
746
|
// This flag is set to true once we encounter a message with multiple content blocks,
|
|
747
747
|
// and remains true for all subsequent messages in the normalization process.
|
|
748
748
|
let isNewChain = false
|
|
749
|
-
|
|
749
|
+
const raw = messages.flatMap(message => {
|
|
750
750
|
switch (message.type) {
|
|
751
751
|
case 'assistant': {
|
|
752
752
|
isNewChain = isNewChain || message.message.content.length > 1
|
|
@@ -820,6 +820,14 @@ export function normalizeMessages(messages: Message[]): NormalizedMessage[] {
|
|
|
820
820
|
}
|
|
821
821
|
}
|
|
822
822
|
})
|
|
823
|
+
// Dedup: keep only the last occurrence of each uuid.
|
|
824
|
+
// Prevents repeated assistant text blocks when the same normalized message
|
|
825
|
+
// is pushed multiple times during a tool-use loop.
|
|
826
|
+
const seen = new Map<string, number>()
|
|
827
|
+
for (let i = 0; i < raw.length; i++) {
|
|
828
|
+
seen.set(raw[i]!.uuid, i)
|
|
829
|
+
}
|
|
830
|
+
return raw.filter((_, i) => seen.get(raw[i]!.uuid) === i)
|
|
823
831
|
}
|
|
824
832
|
|
|
825
833
|
type ToolUseRequestMessage = NormalizedAssistantMessage & {
|