Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
1f128eb
feat: add configurable recent models count
ariane-emory Dec 14, 2025
7d85b14
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 17, 2025
6bca905
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 17, 2025
bdb42f9
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 18, 2025
1d86508
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 19, 2025
4a41677
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 19, 2025
017e6fb
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 20, 2025
27326bc
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 20, 2025
115e6e0
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 20, 2025
c5d2edc
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 21, 2025
a40eb98
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 21, 2025
33fe348
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 22, 2025
56c7f6c
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 23, 2025
a896e66
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 23, 2025
e42742a
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 23, 2025
dc2dbc7
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 23, 2025
354d5ba
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 23, 2025
898043e
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 24, 2025
e211fa9
feat: sinister quotes
ariane-emory Dec 24, 2025
81cfe5a
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 24, 2025
4749d73
Merge branch 'dev' into feat/sinister-quotes-v3
ariane-emory Dec 24, 2025
a6de56f
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 24, 2025
d301de9
feat: quotes
ariane-emory Dec 24, 2025
e3f5b0f
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 24, 2025
c17639b
Merge branch 'feat/sinister-quotes' of github.com:ariane-emory/openco…
ariane-emory Dec 24, 2025
545a697
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 24, 2025
611839d
tweak: caps in quotes
ariane-emory Dec 25, 2025
7b44586
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 25, 2025
f044243
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 25, 2025
d5063a8
tweak: quote wording
ariane-emory Dec 25, 2025
1ff1636
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 25, 2025
09879a5
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 25, 2025
83066f7
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 25, 2025
929e1b5
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 25, 2025
9cc7785
tweak: quotes
ariane-emory Dec 26, 2025
519e19a
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 26, 2025
0a2a03f
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 26, 2025
42296ed
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 27, 2025
cd7e450
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 27, 2025
f384f27
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 27, 2025
e6ecce8
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 27, 2025
821f7c0
tweak: quotes
ariane-emory Dec 27, 2025
7dfca1e
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 27, 2025
f963683
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 27, 2025
f6ec685
Merge branch 'feat/configurable-recent-models-limit' of github.com:ar…
ariane-emory Dec 27, 2025
18f9b2c
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 27, 2025
a794589
comment: 'no clobber' warning.
ariane-emory Dec 28, 2025
bd2a590
Merge dev into feat/configurable-recent-models-limit
ariane-emory Dec 28, 2025
2997fe7
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 28, 2025
ff5416a
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 28, 2025
0f90a72
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 28, 2025
cfaf696
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 28, 2025
33aa327
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 28, 2025
ce64276
tweak: quote capitalization
ariane-emory Dec 29, 2025
3ac980e
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 29, 2025
75f3fdd
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 29, 2025
150d1f1
Merge branch 'feat/configurable-recent-models-limit' of github.com:ar…
ariane-emory Dec 29, 2025
e07008f
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 29, 2025
f66de9c
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 29, 2025
1802b67
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 29, 2025
dfbe9e4
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 29, 2025
1d55b48
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 29, 2025
6115b8b
Merge branch 'feat/configurable-recent-models-limit' of github.com:ar…
ariane-emory Dec 29, 2025
e8e8d42
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 29, 2025
1a5c9bf
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 29, 2025
bcd90e7
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 29, 2025
69887ad
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 29, 2025
68322b1
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 29, 2025
4b5ca6a
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 30, 2025
e1a8f72
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 30, 2025
efa1bc9
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 30, 2025
9152b6e
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 30, 2025
b626b57
tweak: capitalization in quote
ariane-emory Dec 30, 2025
c24c03b
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 30, 2025
1710175
Merge dev into feat/configurable-recent-models-limit
ariane-emory Dec 30, 2025
8f2faf1
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 30, 2025
d8525d4
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 30, 2025
855364e
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 30, 2025
9ba167f
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Dec 30, 2025
44d5424
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 30, 2025
679a53d
tweak: - some quotes.
ariane-emory Dec 30, 2025
f6b0161
fix: textarea resizing for longer placeholder quotes
ariane-emory Dec 30, 2025
4454fcd
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Dec 31, 2025
23af3f8
Merge dev into feat/configurable-recent-models-limit
ariane-emory Dec 31, 2025
32197ba
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 1, 2026
5f5fddb
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 1, 2026
d89ddfd
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 1, 2026
6c302a6
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 1, 2026
4733f07
Merge remote-tracking branch 'origin/dev' into feat/configurable-rece…
ariane-emory Jan 1, 2026
8ad5f9d
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 1, 2026
e7b428b
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 2, 2026
d4a92c9
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 2, 2026
4744458
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 3, 2026
188fc6d
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 3, 2026
63657da
Merge dev into feat/sinister-quotes
ariane-emory Jan 3, 2026
2634eee
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 3, 2026
102868f
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 3, 2026
7cec18d
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 4, 2026
1663b41
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 4, 2026
4a6176a
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 4, 2026
ddbd75d
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 4, 2026
eb17a9e
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 4, 2026
9192f96
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 4, 2026
45de74b
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 5, 2026
a9a3c9a
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 5, 2026
d7f09ed
fix: prevent yoga-layout WASM error during navigation
ariane-emory Jan 5, 2026
6affd4b
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 5, 2026
0a60220
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 5, 2026
7fd1f95
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 5, 2026
fe0ba21
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 5, 2026
54bbd45
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 5, 2026
e1016de
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 5, 2026
5dbe72e
Merge branch 'feat/sinister-quotes' of github.com:ariane-emory/openco…
ariane-emory Jan 5, 2026
4f15c91
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 5, 2026
411e6ad
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 6, 2026
58d2aa7
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 6, 2026
426a1b4
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 6, 2026
97eb901
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 6, 2026
823cdf8
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 6, 2026
5d91c1f
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 6, 2026
3bb09c6
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 6, 2026
edcc4e1
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 6, 2026
2f57861
Merge branch 'dev' into feat/sinister-quotes
ariane-emory Jan 6, 2026
4b9e301
Merge branch 'feat/sinister-quotes' of github.com:ariane-emory/openco…
ariane-emory Jan 6, 2026
4a9dc69
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 7, 2026
b7dca32
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 7, 2026
9941757
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 7, 2026
07be5ca
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 7, 2026
074d318
fix: revert a file
ariane-emory Jan 11, 2026
0999410
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 11, 2026
799a6ef
Merge branch 'dev' into feat/configurable-recent-models-limit
ariane-emory Jan 11, 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
9 changes: 6 additions & 3 deletions packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,13 @@ export function DialogModel(props: { providerID?: string }) {
const favorites = connected() ? local.model.favorite() : []
const recents = local.model.recent()

const limit = sync.data.config.tui?.recent_models_count ?? 10
const recentList = showSections
? recents.filter(
(item) => !favorites.some((fav) => fav.providerID === item.providerID && fav.modelID === item.modelID),
)
? recents
.filter(
(item) => !favorites.some((fav) => fav.providerID === item.providerID && fav.modelID === item.modelID),
)
.slice(0, limit)
: []

const favoriteOptions = showSections
Expand Down
6 changes: 4 additions & 2 deletions packages/opencode/src/cli/cmd/tui/context/local.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,8 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
if (!next) return
setModelStore("model", agent.current().name, { ...next })
const uniq = uniqueBy([next, ...modelStore.recent], (x) => `${x.providerID}/${x.modelID}`)
if (uniq.length > 10) uniq.pop()
const limit = sync.data.config.tui?.recent_models_count ?? 10
if (uniq.length > limit) uniq.pop()
setModelStore(
"recent",
uniq.map((x) => ({ providerID: x.providerID, modelID: x.modelID })),
Expand All @@ -275,7 +276,8 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
setModelStore("model", agent.current().name, model)
if (options?.recent) {
const uniq = uniqueBy([model, ...modelStore.recent], (x) => `${x.providerID}/${x.modelID}`)
if (uniq.length > 10) uniq.pop()
const limit = sync.data.config.tui?.recent_models_count ?? 10
if (uniq.length > limit) uniq.pop()
setModelStore(
"recent",
uniq.map((x) => ({ providerID: x.providerID, modelID: x.modelID })),
Expand Down
9 changes: 9 additions & 0 deletions packages/opencode/src/config/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -770,7 +770,16 @@ export namespace Config {
.enum(["auto", "stacked"])
.optional()
.describe("Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column"),
recent_models_count: z
.number()
.int()
.min(1)
.max(50)
.optional()
.default(10)
.describe("Number of recent models to store and display in model selection"),
})
export type TUI = z.infer<typeof TUI>

export const Server = z
.object({
Expand Down
4 changes: 4 additions & 0 deletions packages/sdk/js/src/v2/gen/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1563,6 +1563,10 @@ export type Config = {
* Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column
*/
diff_style?: "auto" | "stacked"
/**
* Number of recent models to store and display in model selection
*/
recent_models_count?: number
}
server?: ServerConfig
/**
Expand Down