Skip to content

Commit fc158ca

Browse files
committed
Merge branch 'shuvcode-dev' into integration
Closes #231
2 parents 6bc91e2 + 185614d commit fc158ca

94 files changed

Lines changed: 2852 additions & 484 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/last-synced-tag

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v1.0.218
1+
v1.0.220

.opencode/agent/docs.md

Lines changed: 0 additions & 34 deletions
This file was deleted.

AGENTS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99

1010
- To test opencode in the `packages/opencode` directory you can run `bun dev`
1111

12+
## SDK
13+
14+
To regenerate the javascript SDK, run ./packages/sdk/js/script/build.ts
15+
1216
## Tool Calling
1317

1418
- ALWAYS USE PARALLEL TOOLS WHEN APPLICABLE.

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ The following PRs have been merged into this fork and are awaiting merge into up
6060

6161
| PR | Title | Author | Status | Description |
6262
| ----------------------------------------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------ | ------ | ------------------------------------------------------------------------ |
63+
| [#6476](https://github.com/sst/opencode/pull/6476) | Edit suggested changes before applying | [@dmmulroy](https://github.com/dmmulroy) | Open | Press 'e' to edit AI suggestions in your editor before accepting |
64+
| [#6507](https://github.com/sst/opencode/pull/6507) | Optimize Ripgrep.tree() (109x faster) | [@Karavil](https://github.com/Karavil) | Open | 109x performance improvement for large repos by streaming ripgrep output |
6365
| [#6360](https://github.com/sst/opencode/pull/6360) | Desktop: Edit Project | [@dbpolito](https://github.com/dbpolito) | Merged | Edit project name, icon color, and custom icon image in desktop sidebar |
6466
| [#6368](https://github.com/sst/opencode/pull/6368) | Desktop: Sidebar subsessions support | [@dbpolito](https://github.com/dbpolito) | Open | Expand/collapse subsessions in sidebar with chevron indicators |
6567
| [#6372](https://github.com/sst/opencode/pull/6372) | Desktop: Image Preview and Dedupe | [@dbpolito](https://github.com/dbpolito) | Merged | Click user attachments to preview images, dedupe file uploads |
@@ -78,7 +80,7 @@ The following PRs have been merged into this fork and are awaiting merge into up
7880
| [#140](https://github.com/Latitudes-Dev/shuvcode/pull/140) | Toggle transparent background | [@JosXa](https://github.com/JosXa) | Open | Command palette toggle for transparent TUI background on any theme |
7981
| [Branch](https://github.com/ariane-emory/opencode/tree/feat/glob-permissions) | Granular File Permissions | [@ariane-emory](https://github.com/ariane-emory) | N/A | Glob pattern support for `permission.edit` to restrict agent file access |
8082

81-
_Last updated: 2025-12-29_
83+
_Last updated: 2025-12-31_
8284

8385
---
8486

STATS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,3 +186,4 @@
186186
| 2025-12-28 | 1,390,388 (+18,617) | 1,245,690 (+7,454) | 2,636,078 (+26,071) |
187187
| 2025-12-29 | 1,415,560 (+25,172) | 1,257,101 (+11,411) | 2,672,661 (+36,583) |
188188
| 2025-12-30 | 1,445,450 (+29,890) | 1,272,689 (+15,588) | 2,718,139 (+45,478) |
189+
| 2025-12-31 | 1,479,598 (+34,148) | 1,293,235 (+20,546) | 2,772,833 (+54,694) |

bun.lock

Lines changed: 24 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nix/hashes.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"nodeModules": "sha256-2Wbnxy9SPcZkO03Sis3uiypPXa87jc5TzKbo6PvMlxY="
2+
"nodeModules": "sha256-7zMUWgMCnoe2As8WdEKazkKiGEcUIk5rP4zFvX9USgA="
33
}

packages/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencode-ai/app",
3-
"version": "1.0.218-1",
3+
"version": "1.0.220",
44
"description": "",
55
"type": "module",
66
"exports": {

packages/app/src/components/dialog-create-project.tsx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -363,27 +363,30 @@ export const DialogCreateProject: Component = () => {
363363
<div class="flex gap-1 p-1 bg-surface-base rounded-lg">
364364
<Button
365365
variant={activeTab() === "existing" ? "secondary" : "ghost"}
366-
class="flex-1 justify-center"
366+
class="flex-1 justify-center min-w-0 px-2 sm:px-3"
367367
onClick={() => setActiveTab("existing")}
368368
>
369-
<Icon name="folder-add-left" />
370-
Add Existing
369+
<Icon name="folder-add-left" class="shrink-0" />
370+
<span class="hidden sm:inline">Add Existing</span>
371+
<span class="sm:hidden">Existing</span>
371372
</Button>
372373
<Button
373374
variant={activeTab() === "create" ? "secondary" : "ghost"}
374-
class="flex-1 justify-center"
375+
class="flex-1 justify-center min-w-0 px-2 sm:px-3"
375376
onClick={() => setActiveTab("create")}
376377
>
377-
<Icon name="plus" />
378-
Create New
378+
<Icon name="plus" class="shrink-0" />
379+
<span class="hidden sm:inline">Create New</span>
380+
<span class="sm:hidden">New</span>
379381
</Button>
380382
<Button
381383
variant={activeTab() === "clone" ? "secondary" : "ghost"}
382-
class="flex-1 justify-center"
384+
class="flex-1 justify-center min-w-0 px-2 sm:px-3"
383385
onClick={() => setActiveTab("clone")}
384386
>
385-
<Icon name="github" />
386-
Git Clone
387+
<Icon name="github" class="shrink-0" />
388+
<span class="hidden sm:inline">Git Clone</span>
389+
<span class="sm:hidden">Clone</span>
387390
</Button>
388391
</div>
389392

packages/app/src/components/prompt-input.tsx

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1140,6 +1140,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
11401140
providerID: currentModel.provider.id,
11411141
}
11421142
const agent = currentAgent.name
1143+
const variant = local.model.variant.current()
11431144

11441145
if (isShellMode) {
11451146
sdk.client.session
@@ -1167,6 +1168,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
11671168
arguments: args.join(" "),
11681169
agent,
11691170
model: `${model.providerID}/${model.modelID}`,
1171+
variant,
11701172
})
11711173
.catch((e) => {
11721174
console.error("Failed to send command", e)
@@ -1203,6 +1205,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
12031205
model,
12041206
messageID,
12051207
parts: requestParts,
1208+
variant,
12061209
})
12071210
.catch((e) => {
12081211
console.error("Failed to send prompt", e)
@@ -1395,9 +1398,14 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
13951398
<Tooltip
13961399
placement="top"
13971400
value={
1398-
<div class="flex items-center gap-2">
1399-
<span>Choose model</span>
1400-
<span class="text-icon-base text-12-medium">{command.keybind("model.choose")}</span>
1401+
<div class="flex flex-col gap-1">
1402+
<div class="flex items-center gap-2">
1403+
<span>Choose model</span>
1404+
<span class="text-icon-base text-12-medium">{command.keybind("model.choose")}</span>
1405+
</div>
1406+
<Show when={local.model.current()?.provider.name}>
1407+
<span class="text-text-weak">{local.model.current()?.provider.name}</span>
1408+
</Show>
14011409
</div>
14021410
}
14031411
>
@@ -1411,12 +1419,25 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
14111419
}
14121420
>
14131421
{local.model.current()?.name ?? "Select model"}
1414-
<span class="hidden md:block ml-0.5 text-text-weak text-12-regular">
1415-
{local.model.current()?.provider.name}
1416-
</span>
14171422
<Icon name="chevron-down" size="small" />
14181423
</Button>
14191424
</Tooltip>
1425+
<Show when={local.model.variant.list().length > 0}>
1426+
<Tooltip placement="top" value="Cycle effort level">
1427+
<Button
1428+
variant="ghost"
1429+
onClick={() => local.model.variant.cycle()}
1430+
classList={{
1431+
"text-icon-warning": !!local.model.variant.current(),
1432+
}}
1433+
>
1434+
<Icon name="brain" size="small" />
1435+
<Show when={local.model.variant.current()}>
1436+
<span class="text-12-regular">{local.model.variant.current()}</span>
1437+
</Show>
1438+
</Button>
1439+
</Tooltip>
1440+
</Show>
14201441
</Match>
14211442
</Switch>
14221443
</div>

0 commit comments

Comments
 (0)