Skip to content

Commit 5bf3903

Browse files
committed
Merge branch 'dev'
2 parents bfab064 + 65a4856 commit 5bf3903

7 files changed

Lines changed: 381 additions & 199 deletions

File tree

‎packages/shared/src/constants/dictionary.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ export const dictionary = {
208208
ERROR_DURING_REFACTORING: (file_path: string) =>
209209
`An error occurred during refactoring ${file_path}. See console for details.`,
210210
API_RATE_LIMIT_EXCEEDED: 'API request failed. Rate limit exceeded.',
211+
API_PAYLOAD_TOO_LARGE: 'API request failed. The context is too large.',
211212
API_BAD_REQUEST: 'API request failed. Bad request.',
212213
API_ENDPOINT_UNAVAILABLE:
213214
'Endpoint is currently unable to handle the request. Wait a few moments and retry or use another API provider.',

‎packages/ui/src/components/editor/panel/Presets/Presets.tsx‎

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,19 +96,24 @@ export const Presets: React.FC<Presets.Props> = (props) => {
9696
is_group: boolean
9797
}>()
9898

99-
const ungrouped_selected_count = (() => {
100-
let count = 0
99+
const { ungrouped_selected_count, ungrouped_preset_count } = (() => {
100+
let selected_count = 0
101+
let preset_count = 0
101102
if (props.presets[0]?.chatbot !== undefined) {
102103
for (const p of props.presets) {
103104
if (!p.chatbot) {
104105
break
105106
}
107+
preset_count++
106108
if (p.is_selected) {
107-
count++
109+
selected_count++
108110
}
109111
}
110112
}
111-
return count
113+
return {
114+
ungrouped_selected_count: selected_count,
115+
ungrouped_preset_count: preset_count
116+
}
112117
})()
113118

114119
const pinned_presets = props.presets.filter((p) => p.is_pinned && p.chatbot)
@@ -510,8 +515,15 @@ export const Presets: React.FC<Presets.Props> = (props) => {
510515
<div className={styles.presets__item__left__text}>
511516
<span>Ungrouped</span>
512517
<span>
513-
{ungrouped_selected_count > 0 &&
514-
`${ungrouped_selected_count} selected`}
518+
{`${ungrouped_preset_count} ${
519+
ungrouped_preset_count === 1
520+
? 'preset'
521+
: 'presets'
522+
}${
523+
ungrouped_selected_count > 0
524+
? ` · ${ungrouped_selected_count} selected`
525+
: ''
526+
}`}
515527
</span>
516528
</div>
517529
</div>
@@ -523,7 +535,7 @@ export const Presets: React.FC<Presets.Props> = (props) => {
523535
>
524536
<IconButton
525537
codicon_icon="run-coverage"
526-
title="Run"
538+
title="Run selected presets in this group"
527539
on_click={(e) => {
528540
e.stopPropagation()
529541
props.on_group_click('Ungrouped')
@@ -626,6 +638,7 @@ export const Presets: React.FC<Presets.Props> = (props) => {
626638
)
627639

628640
if (group_index !== -1) {
641+
let preset_count = 0
629642
let selected_count = 0
630643
for (
631644
let i = group_index + 1;
@@ -636,13 +649,18 @@ export const Presets: React.FC<Presets.Props> = (props) => {
636649
if (!child_preset.chatbot) {
637650
break
638651
}
652+
preset_count++
639653
if (child_preset.is_selected) {
640654
selected_count++
641655
}
642656
}
643-
if (selected_count > 0) {
644-
return `${selected_count} selected`
645-
}
657+
return `${preset_count} ${
658+
preset_count == 1 ? 'preset' : 'presets'
659+
}${
660+
selected_count > 0
661+
? ` · ${selected_count} selected`
662+
: ''
663+
}`
646664
}
647665
return model || ''
648666
}

‎packages/vscode/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "gemini-coder",
33
"displayName": "Code Web Chat",
44
"description": "AI coding without agents (CWC)",
5-
"version": "1.525.0",
5+
"version": "1.526.0",
66
"scripts": {
77
"build": "npx vsce package --no-dependencies",
88
"vscode:prepublish": "rimraf out && npm run compile",

‎packages/vscode/src/utils/make-api-request.ts‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,10 @@ export const make_api_request = async (params: {
384384
vscode.window.showErrorMessage(
385385
dictionary.error_message.API_RATE_LIMIT_EXCEEDED
386386
)
387+
} else if (axios.isAxiosError(error) && error.response?.status == 413) {
388+
vscode.window.showErrorMessage(
389+
dictionary.error_message.API_PAYLOAD_TOO_LARGE
390+
)
387391
} else if (axios.isAxiosError(error) && error.response?.status == 400) {
388392
vscode.window.showErrorMessage(dictionary.error_message.API_BAD_REQUEST)
389393
} else if (axios.isAxiosError(error) && error.response?.status == 503) {

‎packages/vscode/src/views/panel/backend/message-handlers/handle-create-group.ts‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ export const handle_create_group = async (
5050
new_group.isCollapsed = !!options.instant
5151
updated_presets = [new_group, ...current_presets]
5252
} else {
53-
new_group.isCollapsed = !!options.instant
5453
updated_presets = [...current_presets, new_group]
5554
}
5655

‎packages/vscode/src/views/panel/backend/message-handlers/handle-delete-preset.ts‎

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,36 @@ export const handle_delete_preset = async (
2121
const deleted_preset = current_presets[preset_index]
2222
const item_type = deleted_preset.chatbot ? 'preset' : 'group'
2323

24-
const is_unnamed = !preset_name || /^\(\d+\)$/.test(preset_name.trim())
25-
const display_preset_name = is_unnamed ? 'Unnamed' : preset_name
26-
27-
const delete_button = 'Delete'
28-
const result = await vscode.window.showInformationMessage(
29-
'Please confirm',
30-
{
31-
modal: true,
32-
detail: is_unnamed
33-
? `Are you sure you want to delete this ${item_type}?`
34-
: `Are you sure you want to delete ${item_type} "${display_preset_name}"?`
35-
},
36-
delete_button
37-
)
38-
39-
if (result != delete_button) {
40-
return
24+
let should_show_confirmation = true
25+
if (item_type == 'group') {
26+
const next_preset = current_presets[preset_index + 1]
27+
const is_empty = !next_preset || !next_preset.chatbot
28+
const has_affixes =
29+
!!deleted_preset.promptPrefix || !!deleted_preset.promptSuffix
30+
if (is_empty && !has_affixes) {
31+
should_show_confirmation = false
32+
}
33+
}
34+
35+
if (should_show_confirmation) {
36+
const is_unnamed = !preset_name || /^\(\d+\)$/.test(preset_name.trim())
37+
const display_preset_name = is_unnamed ? 'Unnamed' : preset_name
38+
39+
const delete_button = 'Delete'
40+
const result = await vscode.window.showInformationMessage(
41+
'Please confirm',
42+
{
43+
modal: true,
44+
detail: is_unnamed
45+
? `Are you sure you want to delete this ${item_type}?`
46+
: `Are you sure you want to delete ${item_type} "${display_preset_name}"?`
47+
},
48+
delete_button
49+
)
50+
51+
if (result != delete_button) {
52+
return
53+
}
4154
}
4255

4356
const updated_presets = current_presets.filter((p) => p.name != preset_name)

0 commit comments

Comments
 (0)