Skip to content

Commit 40dbfaa

Browse files
authored
chore: update version to 2.8.13 (#1286)
1 parent a29432e commit 40dbfaa

6 files changed

Lines changed: 50 additions & 38 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
> For the complete history, please visit [CHANGELOG_ARCHIVE.md](./CHANGELOG_ARCHIVE.md)
44
5+
## [2.8.13]
6+
7+
- Add exclusion for additional bundled skill files in review generation (#1285)
8+
- Guard axios socket keepalive call (#1283)
9+
- Fix known issues
10+
511
## [2.8.12]
612

713
- Add timeout option to CoStrict model fetching and caching (#1276)
@@ -31,24 +37,3 @@
3137

3238
- Ensure MCP and Skills Managers are initialized properly in providers (#1251)
3339
- Fix DeepSeek 'reasoning_content' error
34-
35-
## [2.8.6]
36-
37-
- Update generate-review-builtin script
38-
39-
## [2.8.5]
40-
41-
- MCP support async poll for improved performance (#1235)
42-
- Fix fake_reasoning empty text handling and warn on empty chunks (#1239)
43-
- Migrate review skills to costrict-review repo with multi-locale support (#1236)
44-
- Telemetry API clients support additional headers (#1226)
45-
46-
## [2.8.4]
47-
48-
- Add reload webview command and error boundary reload button for `Gray Screen`
49-
50-
## [2.8.3]
51-
52-
- Add Xiaomi MiMo provider support
53-
- Fix `Could not find ripgrep binary`
54-
- Fix known issues

CHANGELOG_ARCHIVE.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,27 @@
22

33
> This file contains historical version records. For the latest versions, please visit [CHANGELOG.md](./CHANGELOG.md)
44
5+
## [2.8.6]
6+
7+
- Update generate-review-builtin script
8+
9+
## [2.8.5]
10+
11+
- MCP support async poll for improved performance (#1235)
12+
- Fix fake_reasoning empty text handling and warn on empty chunks (#1239)
13+
- Migrate review skills to costrict-review repo with multi-locale support (#1236)
14+
- Telemetry API clients support additional headers (#1226)
15+
16+
## [2.8.4]
17+
18+
- Add reload webview command and error boundary reload button for `Gray Screen`
19+
20+
## [2.8.3]
21+
22+
- Add Xiaomi MiMo provider support
23+
- Fix `Could not find ripgrep binary`
24+
- Fix known issues
25+
526
## [2.8.2]
627

728
- Fix commit message generation in multi-root workspaces (#1210)

src/api/providers/fetchers/__tests__/modelCache.spec.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,12 @@ describe("empty cache protection", () => {
332332
})
333333

334334
expect(result).toEqual(diskModels)
335-
expect(mockGetCostrictModels).toHaveBeenCalledWith("https://api.example.com", "test-api-key", undefined, 2000)
335+
expect(mockGetCostrictModels).toHaveBeenCalledWith(
336+
"https://api.example.com",
337+
"test-api-key",
338+
undefined,
339+
1000,
340+
)
336341

337342
await vi.waitFor(() => {
338343
expect(mockSet).toHaveBeenCalledWith("costrict", refreshedModels)

src/api/transform/zai-format.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export function convertToZAiFormat(
4343
for (const message of messages) {
4444
// Check if the message has reasoning_content (for Z.ai interleaved thinking)
4545
const messageWithReasoning = message as AnthropicMessage & { reasoning_content?: string }
46-
const reasoningContent = messageWithReasoning.reasoning_content
46+
const reasoningContent = messageWithReasoning.reasoning_content || ""
4747

4848
if (message.role === "user") {
4949
// Handle user messages - may contain tool_result blocks
@@ -207,7 +207,7 @@ export function convertToZAiFormat(
207207
lastMessage.content = `${lastContent}\n${assistantMessage.content}`
208208
}
209209
// Preserve reasoning_content from the new message if present
210-
if (finalReasoning) {
210+
if (finalReasoning != null) {
211211
;(lastMessage as ZAiAssistantMessage).reasoning_content = finalReasoning
212212
}
213213
} else {

src/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"displayName": "%extension.displayName.long%",
44
"description": "%extension.description%",
55
"publisher": "zgsm-ai",
6-
"version": "2.8.12",
6+
"version": "2.8.13",
77
"icon": "assets/images/shenma_robot_logo_big.png",
88
"galleryBanner": {
99
"color": "#617A91",

webview-ui/src/components/chat/__tests__/ChatView.scroll-debug-repro.spec.tsx

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,7 @@ describe("ChatView scroll behavior regression coverage", () => {
572572
await hydrate(2, buildMessagesWithMultipleCheckpoints(Date.now() - 3_000))
573573
await waitForCalls(2)
574574
await waitForCallsSettled()
575+
harness.atBottomAfterCalls = Number.POSITIVE_INFINITY
575576

576577
await act(async () => {
577578
fireEvent.keyDown(window, { key: "PageUp" })
@@ -581,26 +582,26 @@ describe("ChatView scroll behavior regression coverage", () => {
581582
timeout: 1_200,
582583
})
583584

584-
const checkpointButton = getScrollToCheckpointButton()
585+
const clickCheckpointAndWaitForScroll = async () => {
586+
const scrollCallsBeforeClick = harness.scrollCalls
585587

586-
await act(async () => {
587-
;(checkpointButton as HTMLButtonElement).click()
588-
})
588+
await act(async () => {
589+
getScrollToCheckpointButton().click()
590+
})
591+
592+
await waitForCalls(scrollCallsBeforeClick + 1)
593+
}
594+
595+
await clickCheckpointAndWaitForScroll()
589596
expect(harness.scrollToIndexArgs.at(-1)).toMatchObject({ index: 4, align: "center", behavior: "smooth" })
590597

591-
await act(async () => {
592-
;(checkpointButton as HTMLButtonElement).click()
593-
})
598+
await clickCheckpointAndWaitForScroll()
594599
expect(harness.scrollToIndexArgs.at(-1)).toMatchObject({ index: 2, align: "center", behavior: "smooth" })
595600

596-
await act(async () => {
597-
;(checkpointButton as HTMLButtonElement).click()
598-
})
601+
await clickCheckpointAndWaitForScroll()
599602
expect(harness.scrollToIndexArgs.at(-1)).toMatchObject({ index: 0, align: "center", behavior: "smooth" })
600603

601-
await act(async () => {
602-
;(checkpointButton as HTMLButtonElement).click()
603-
})
604+
await clickCheckpointAndWaitForScroll()
604605
expect(harness.scrollToIndexArgs.at(-1)).toMatchObject({ index: 0, align: "center", behavior: "smooth" })
605606
})
606607
})

0 commit comments

Comments
 (0)