Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
bb63d16
Set temperature for kimi k2.5
fwang Jan 27, 2026
2649dca
Revert "ci: make tests passing a requirement pre-release"
fwang Jan 27, 2026
df8b23d
Revert "Set temperature for kimi k2.5"
fwang Jan 27, 2026
8206895
feat(app): color filetree change dots by diff kind
iamdavidhill Jan 27, 2026
8ee5376
feat(app): add filetree tooltips with diff labels
iamdavidhill Jan 27, 2026
2ca69ac
fix(app): shorten nav tooltips
iamdavidhill Jan 27, 2026
1fffbc6
fix(app): adjust titlebar left spacing
iamdavidhill Jan 27, 2026
d15201d
fix(app): delay nav tooltips
iamdavidhill Jan 27, 2026
18d6c21
fix(app): align filetree change styling
iamdavidhill Jan 27, 2026
00c7729
fix(app): set filetree padding to 6px
iamdavidhill Jan 27, 2026
f2bf620
fix(app): highlight selected change
iamdavidhill Jan 27, 2026
892113a
chore(app): show 5 highlights
adamdotdevin Jan 27, 2026
d7948c2
fix(app): auto-scroll
adamdotdevin Jan 27, 2026
1ebf63c
fix(app): don't connect to localhost through vpn
adamdotdevin Jan 27, 2026
842f17d
perf(app): better memory management
adamdotdevin Jan 27, 2026
acf0df1
chore: cleanup
adamdotdevin Jan 27, 2026
51edf68
feat(desktop): i18n for tauri side
adamdotdevin Jan 27, 2026
e5b1867
feat(desktop): tauri locales
adamdotdevin Jan 27, 2026
1d5ee3e
fix(app): not auto-navigating to last project
adamdotdevin Jan 27, 2026
95632d8
chore: update nix node_modules hashes
actions-user Jan 27, 2026
b8e7265
fix(tui): handle 4-5 codes too in c to copy logic
rekram1-node Jan 27, 2026
33d400c
fix(app): spinner color
adamdotdevin Jan 27, 2026
605e533
fix(app): file tree not always loading
adamdotdevin Jan 27, 2026
13b2587
test(app): fix outdated e2e test
adamdotdevin Jan 27, 2026
5c8580a
test(app): fix outdated e2e test
adamdotdevin Jan 27, 2026
d17ba84
fix(app): file tree not always loading
adamdotdevin Jan 27, 2026
df7f9ae
fix(app): terminal corruption
adamdotdevin Jan 27, 2026
15ffd3c
feat(app): add 'connect provider' button to the manage models dialog …
alexyaroshuk Jan 27, 2026
b4a9e1b
fix(app): auto-scroll
adamdotdevin Jan 27, 2026
898118b
feat: support headless authentication for chatgpt/codex (#10890)
rgodha24 Jan 28, 2026
d974186
fix(app): reintroduce review tab
adamdotdevin Jan 28, 2026
e3be4c9
release: v1.1.37
Jan 28, 2026
7988f52
feat(app): use opentui markdown component behind experimental flag (#…
remorses Jan 28, 2026
5f2a7c6
chore: generate
actions-user Jan 28, 2026
b73e024
docs: add Daytona OpenCode plugin to ecosystem (#10917)
jamesmurdza Jan 28, 2026
6da9fb8
chore: generate
actions-user Jan 28, 2026
aedd760
fix(cli): restore brand integrity of CLI wordmark (#10912)
mynameistito Jan 28, 2026
36b83db
feat: add keybinds from ctrl+p menu and mcp
pschiel Jan 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,9 @@ permissions:
packages: write

jobs:
test:
if: github.event_name == 'workflow_dispatch'
uses: ./.github/workflows/test.yml
publish:
needs: test
runs-on: blacksmith-4vcpu-ubuntu-2404
if: always() && github.repository == 'anomalyco/opencode' && (github.event_name != 'workflow_dispatch' || needs.test.result == 'success')
if: github.repository == 'anomalyco/opencode'
steps:
- uses: actions/checkout@v3
with:
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ on:
- dev
pull_request:
workflow_dispatch:
workflow_call:
jobs:
test:
name: test (${{ matrix.settings.name }})
Expand Down
31 changes: 16 additions & 15 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions nix/hashes.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"nodeModules": {
"x86_64-linux": "sha256-AkI3guNjnE+bLZQVfzm0z14UENOECv2QBqMo5Lzkvt8=",
"aarch64-linux": "sha256-dBfdyVTqW+fBZKCxC9Ld+1m3cP+nIbS6UDo0tUfPOSk=",
"aarch64-darwin": "sha256-tOw31AMnHkW2cEDi+iqT3P93lU3SiMve26TEIqPz97k=",
"x86_64-darwin": "sha256-wL/DmdZmxCmh+r4dsS1XGXuj8VPwR4pUqy5VIA76jl0="
"x86_64-linux": "sha256-9oI1gekRbjY6L8VwlkLdPty/9rCxC20EJlESkazEX8Y=",
"aarch64-linux": "sha256-vn+eCVanOSNfjyqHRJn4VdqbpdMoBFm49REuIkByAio=",
"aarch64-darwin": "sha256-0dMP5WbqDq3qdLRrKfmCjXz2kUDjTttGTqD3v6PDbkg=",
"x86_64-darwin": "sha256-9dEWluRXY7RTPdSEhhPsDJeGo+qa3V8dqh6n6WsLeGw="
}
}
5 changes: 3 additions & 2 deletions packages/app/e2e/file-tree.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@ import { test, expect } from "./fixtures"
test("file tree can expand folders and open a file", async ({ page, gotoSession }) => {
await gotoSession()

await page.getByRole("button", { name: "Toggle file tree" }).click()

const toggle = page.getByRole("button", { name: "Toggle file tree" })
const treeTabs = page.locator('[data-component="tabs"][data-variant="pill"][data-scope="filetree"]')

if ((await toggle.getAttribute("aria-expanded")) !== "true") await toggle.click()
await expect(treeTabs).toBeVisible()

await treeTabs.locator('[data-slot="tabs-trigger"]').nth(1).click()
Expand Down
4 changes: 2 additions & 2 deletions packages/app/e2e/titlebar-history.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ test("titlebar back/forward navigates between sessions", async ({ page, slug, sd
await expect(page).toHaveURL(new RegExp(`/${slug}/session/${two.id}(?:\\?|#|$)`))
await expect(page.locator(promptSelector)).toBeVisible()

const back = page.getByRole("button", { name: "Go back" })
const forward = page.getByRole("button", { name: "Go forward" })
const back = page.getByRole("button", { name: "Back" })
const forward = page.getByRole("button", { name: "Forward" })

await expect(back).toBeVisible()
await expect(back).toBeEnabled()
Expand Down
2 changes: 1 addition & 1 deletion packages/app/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/app",
"version": "1.1.36",
"version": "1.1.37",
"description": "",
"type": "module",
"exports": {
Expand Down
19 changes: 18 additions & 1 deletion packages/app/src/components/dialog-manage-models.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,33 @@
import { Dialog } from "@opencode-ai/ui/dialog"
import { List } from "@opencode-ai/ui/list"
import { Switch } from "@opencode-ai/ui/switch"
import { Button } from "@opencode-ai/ui/button"
import type { Component } from "solid-js"
import { useLocal } from "@/context/local"
import { popularProviders } from "@/hooks/use-providers"
import { useLanguage } from "@/context/language"
import { useDialog } from "@opencode-ai/ui/context/dialog"
import { DialogSelectProvider } from "./dialog-select-provider"

export const DialogManageModels: Component = () => {
const local = useLocal()
const language = useLanguage()
const dialog = useDialog()

const handleConnectProvider = () => {
dialog.show(() => <DialogSelectProvider />)
}

return (
<Dialog title={language.t("dialog.model.manage")} description={language.t("dialog.model.manage.description")}>
<Dialog
title={language.t("dialog.model.manage")}
description={language.t("dialog.model.manage.description")}
action={
<Button class="h-7 -my-1 text-14-medium" icon="plus-small" tabIndex={-1} onClick={handleConnectProvider}>
{language.t("command.provider.connect")}
</Button>
}
>
<List
search={{ placeholder: language.t("dialog.model.search.placeholder"), autofocus: true }}
emptyMessage={language.t("dialog.model.empty")}
Expand Down
Loading