Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
561070f
deps: upgrade OpenTUI to v0.4.3 (#35226)
simonklee Jul 6, 2026
0df44c4
chore: generate
opencode-agent[bot] Jul 6, 2026
eb6ff0c
chore: update nix node_modules hashes
opencode-agent[bot] Jul 6, 2026
d5aa79c
feat(codemode): sync v2 implementation (#35574)
rekram1-node Jul 6, 2026
728e86b
chore: generate
opencode-agent[bot] Jul 6, 2026
203885d
sync release versions for v1.17.14
Jul 6, 2026
c3b9c9d
feat(data): improved model usage section
adamdotdevin Jul 6, 2026
fc09646
fix(data): refine model trend charts
adamdotdevin Jul 6, 2026
dba0801
chore: generate
opencode-agent[bot] Jul 6, 2026
26885e7
feat(app): align cmd k menu with v2 styles (#35152)
arvsrn Jul 7, 2026
254a481
fix(config): handle unavailable config directories (#35632)
jlongster Jul 7, 2026
6aff2ee
feat(app): visual improvements (#35134)
arvsrn Jul 7, 2026
9353559
chore: generate
opencode-agent[bot] Jul 7, 2026
2a08f8f
feat(app): reintroduce model context tooltip in model selector (#35087)
arvsrn Jul 7, 2026
0497e8b
chore: generate
opencode-agent[bot] Jul 7, 2026
50374ab
feat(app): change traffic light position, fix sequoia bug (#35081)
arvsrn Jul 7, 2026
ae259d8
fix(app): apply settings themes on select (#35011)
opencode-agent[bot] Jul 7, 2026
64fd7a2
fix(app): persist session tab info (#34934)
Brendonovich Jul 7, 2026
c48b77d
chore: generate
opencode-agent[bot] Jul 7, 2026
c5fe32f
fix(app): show unread for pending questions (#34684)
opencode-agent[bot] Jul 7, 2026
65fd2e5
fix(app): prioritize shortcuts in terminal (#35668)
Brendonovich Jul 7, 2026
39397de
chore: generate
opencode-agent[bot] Jul 7, 2026
516f026
fix(app): hide markdown task markers (#35670)
Brendonovich Jul 7, 2026
ea9fffc
feat(data): redesign model efficiency
adamdotdevin Jul 7, 2026
1c25b2f
chore: generate
opencode-agent[bot] Jul 7, 2026
fd9ee43
fix(core): expand home-relative permission paths (#35737)
StarpTech Jul 7, 2026
888dc67
chore: generate
opencode-agent[bot] Jul 7, 2026
78f85b1
fix(core): ensure relevant files survive compaction (#35636)
opencode-agent[bot] Jul 7, 2026
adf178a
fix(llm): classify zai token limit overflow (#35671)
fengjikui Jul 7, 2026
5fb0d1c
release: v1.17.15
Jul 7, 2026
6baccab
Merge tag 'v1.17.15' into sync-upstream-1.17.15
quickbeard Jul 9, 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
56 changes: 28 additions & 28 deletions bun.lock

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

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.17.14",
"version": "1.17.15",
"description": "",
"type": "module",
"exports": {
Expand Down
6 changes: 3 additions & 3 deletions packages/app/src/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ declare global {
deepLinks?: string[]
}
api?: {
setTitlebar?: (theme: { mode: "light" | "dark" }) => Promise<void>
setTitlebar?: (theme: { mode: "light" | "dark"; scheme?: "system" | "light" | "dark" }) => Promise<void>
exportDebugLogs?: () => Promise<string>
}
}
Expand Down Expand Up @@ -320,8 +320,8 @@ export function AppBaseProviders(props: ParentProps<{ locale?: Locale }>) {
<MetaProvider>
<Font />
<ThemeProvider
onThemeApplied={(_, mode) => {
void window.api?.setTitlebar?.({ mode })
onThemeApplied={(_, mode, scheme) => {
void window.api?.setTitlebar?.({ mode, scheme })
}}
>
<LanguageProvider locale={props.locale}>
Expand Down
55 changes: 36 additions & 19 deletions packages/app/src/components/dialog-select-model.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import { Tooltip } from "@opencode-ai/ui/tooltip"
import { Icon } from "@opencode-ai/ui/v2/icon"
import { Tag as TagV2 } from "@opencode-ai/ui/v2/badge-v2"
import { MenuV2 } from "@opencode-ai/ui/v2/menu-v2"
import { TooltipV2 } from "@opencode-ai/ui/v2/tooltip-v2"
import { ModelTooltip } from "./model-tooltip"
import { useLanguage } from "@/context/language"
import { decode64 } from "@/utils/base64"
Expand Down Expand Up @@ -92,6 +93,7 @@ const ModelList: Component<{
class="w-full"
placement="right-start"
gutter={12}
openDelay={0}
value={<ModelTooltip model={item} latest={item.latest} free={isFree(item.provider.id, item.cost)} />}
>
{node}
Expand Down Expand Up @@ -446,26 +448,41 @@ export function ModelSelectorPopoverV2(props: {
<MenuV2.RadioGroup value={current()}>
<For each={group.items}>
{(item) => (
<MenuV2.RadioItem
value={modelKey(item)}
data-option-key={modelKey(item)}
data-selected-model={current() === modelKey(item) ? true : undefined}
class="scroll-my-6"
classList={{ "!bg-v2-overlay-simple-overlay-hover": store.active === modelKey(item) }}
onMouseEnter={() => {
setStore("active", modelKey(item))
setTimeout(() => searchRef?.focus())
}}
onSelect={() => selectModel(item)}
<TooltipV2
class="w-full"
placement="right-start"
gutter={6}
openDelay={0}
value={
<ModelTooltip
model={item}
latest={item.latest}
free={isFree(item.provider.id, item.cost)}
v2
/>
}
>
<span class="min-w-0 truncate">{item.name}</span>
<Show when={isFree(item.provider.id, item.cost)}>
<TagV2 class="shrink-0">{language.t("model.tag.free")}</TagV2>
</Show>
<Show when={item.latest}>
<TagV2 class="shrink-0">{language.t("model.tag.latest")}</TagV2>
</Show>
</MenuV2.RadioItem>
<MenuV2.RadioItem
value={modelKey(item)}
data-option-key={modelKey(item)}
data-selected-model={current() === modelKey(item) ? true : undefined}
class="scroll-my-6 w-full"
classList={{ "!bg-v2-overlay-simple-overlay-hover": store.active === modelKey(item) }}
onMouseEnter={() => {
setStore("active", modelKey(item))
setTimeout(() => searchRef?.focus())
}}
onSelect={() => selectModel(item)}
>
<span class="min-w-0 truncate">{item.name}</span>
<Show when={isFree(item.provider.id, item.cost)}>
<TagV2 class="shrink-0">{language.t("model.tag.free")}</TagV2>
</Show>
<Show when={item.latest}>
<TagV2 class="shrink-0">{language.t("model.tag.latest")}</TagV2>
</Show>
</MenuV2.RadioItem>
</TooltipV2>
)}
</For>
</MenuV2.RadioGroup>
Expand Down
Loading
Loading