Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
528 commits
Select commit Hold shift + click to select a range
40ecfce
fix(sdk): wake embedded session execution (#33992)
kitlangton Jun 26, 2026
ef5c9f4
feat(sdk): expose active sessions (#33991)
kitlangton Jun 26, 2026
41f2705
chore: generate
opencode-agent[bot] Jun 26, 2026
077deb9
fix(app): bump ghostty-web to prevent terminal resize hangs (#34020)
opencode-agent[bot] Jun 26, 2026
8a1608e
chore: update nix node_modules hashes
opencode-agent[bot] Jun 26, 2026
19e510f
refactor(app): use dropdown for project selector (#33984)
opencode-agent[bot] Jun 26, 2026
929c4aa
refactor(app): replace tab drag handling with dndkit (#33880)
Brendonovich Jun 26, 2026
1153726
chore: generate
opencode-agent[bot] Jun 26, 2026
e8fea9e
feat(oauth): unify OAuth callback browser pages (#34025)
rekram1-node Jun 26, 2026
219ba24
chore: update nix node_modules hashes
opencode-agent[bot] Jun 26, 2026
78a5a03
feat(app): refine session UI styling (#33860)
usrnk1 Jun 26, 2026
f8ceb30
chore: generate
opencode-agent[bot] Jun 26, 2026
eeb5b1d
core: prevent UI imports compiling TSX source
vimtor Jun 26, 2026
753d312
fix(tui): preserve renderer initialization errors (#33996)
Hona Jun 26, 2026
ae85356
fix(opencode): preserve skill resource paths (#34052)
nexxeln Jun 26, 2026
971518c
fix(core): refresh cached remote skills (#34059)
nexxeln Jun 26, 2026
6e8e772
fix(acp): surface prompt errors (#34061)
nexxeln Jun 26, 2026
9c38b91
feat(app): updates to design system (#34066)
arvsrn Jun 26, 2026
c288226
fix(acp): skip resume transcript replay (#34070)
nexxeln Jun 26, 2026
e3bfd4c
fix(mcp): refresh credentials on reauthentication (#33717)
rekram1-node Jun 26, 2026
639c8e6
tweak: update OAuth callback branding (#34081)
rekram1-node Jun 26, 2026
f254476
fix(llm): omit stateless response item ids (#34027)
rekram1-node Jun 26, 2026
0d3e0fc
fix(core): enlarge OAuth callback card (#34082)
rekram1-node Jun 26, 2026
4a8fee3
feat(app): add new session workspace controls (#34085)
Brendonovich Jun 26, 2026
1aea999
fix(app): consolidate add project action (#34086)
Brendonovich Jun 26, 2026
ebf4007
fix(acp): enrich permission prompts (#34079)
nexxeln Jun 26, 2026
92f1a17
docs(providers): document blacklist and whitelist model filtering (#3…
ariane-emory Jun 26, 2026
36f9015
fix(app): wait for persisted home state before reading collapsed stat…
Brendonovich Jun 26, 2026
1de7368
fix(acp): send partial completed tool updates (#34091)
nexxeln Jun 26, 2026
05ce6bc
fix(data): canonicalize locale pages
adamdotdevin Jun 26, 2026
c72cca8
docs: route enterprise contact links (#34080)
Slickstef11 Jun 26, 2026
7b1fe33
fix(data): clarify unchanged rank
adamdotdevin Jun 26, 2026
82f47cb
feat(stats): add clickable section headings (#34095)
adamdotdevin Jun 26, 2026
18a419e
chore: generate
opencode-agent[bot] Jun 26, 2026
850a0df
fix(core): resolve prompt attachment mime types
thdxr Jun 26, 2026
0befd9b
chore: generate
opencode-agent[bot] Jun 26, 2026
1ac6b4b
fix(core): authorize external read paths
thdxr Jun 26, 2026
11d2f3e
fix(llm): end reasoning before responses
thdxr Jun 26, 2026
0e2dd4a
chore: generate
opencode-agent[bot] Jun 26, 2026
af0b7ff
fix(app): animate prompt selectors after loading (#34101)
Brendonovich Jun 26, 2026
65210f2
feat(api): add finite durable session history pages (#34097)
kitlangton Jun 26, 2026
20f47fe
chore: generate
opencode-agent[bot] Jun 26, 2026
2ec20e5
fix(app): slow tooltip display for models (#30745)
affanali2k3 Jun 26, 2026
2c02f8b
chore: update nix node_modules hashes
opencode-agent[bot] Jun 26, 2026
42e6b7d
feat(sdk): expose live event stream (#34098)
kitlangton Jun 26, 2026
44a6787
chore: generate
opencode-agent[bot] Jun 26, 2026
5acb253
fix(app): centralize notification state (#34105)
Brendonovich Jun 26, 2026
7a17925
zen: new inference
fwang Jun 26, 2026
43e39d7
fix(tui): use generated event union (#34118)
opencode-agent[bot] Jun 26, 2026
cd56c51
fix(app): keep bare slash as plain inline code (#34122)
opencode-agent[bot] Jun 26, 2026
4b948c5
fix(app): hide home session archive action (#34136)
opencode-agent[bot] Jun 27, 2026
ecdfff5
refactor(core): separate out location node functionality and integrat…
jlongster Jun 27, 2026
71c3a7c
chore: generate
opencode-agent[bot] Jun 27, 2026
e1e0304
fix(mcp): surface OAuth completion errors (#34145)
rekram1-node Jun 27, 2026
36c416e
fix(mcp): request refresh token scope (#34125)
rekram1-node Jun 27, 2026
a3035c5
chore: update nix node_modules hashes
opencode-agent[bot] Jun 27, 2026
fab8ec4
fix(app): migrate composer tooltips to v2 (#34147)
opencode-agent[bot] Jun 27, 2026
93159bc
feat(core): port v2 runtime fixes onto dev
thdxr Jun 27, 2026
225a1fb
chore: generate
opencode-agent[bot] Jun 27, 2026
9903abc
fix(opencode): allow empty provider config default (#34167)
opencode-agent[bot] Jun 27, 2026
eb923c2
chore: update nix node_modules hashes
opencode-agent[bot] Jun 27, 2026
8870d36
fix(app): space home sessions from scrollbar (#34132)
opencode-agent[bot] Jun 27, 2026
5a55135
fix(ui): make select hover feedback immediate (#34121)
opencode-agent[bot] Jun 27, 2026
a2d08fb
feat(app): update home screen alignment + markdown styles (#34172)
arvsrn Jun 27, 2026
bdfea04
fix(desktop): recognize normal auth metadata input prompts in connect…
OpeOginni Jun 27, 2026
3d07211
fix(app): reconcile session pages with concurrent events (#34042)
Hona Jun 27, 2026
6861fed
chore: generate
opencode-agent[bot] Jun 27, 2026
2caa016
fix(app): batch new session tab navigation (#34196)
Brendonovich Jun 27, 2026
f5a0b92
feat(app): minor visual updates (#34205)
arvsrn Jun 27, 2026
ecc5c44
refactor(core): make node build bind maps conditionally (#34218)
jlongster Jun 27, 2026
25702e0
feat(app): new debug bar (#34237)
arvsrn Jun 27, 2026
10579cc
chore: generate
opencode-agent[bot] Jun 27, 2026
2b91a6f
fix(tui): register `prompt.skills` keybinds (#34180)
BenGu3 Jun 27, 2026
a76c691
refactor(core): rename app node modules (#34238)
jlongster Jun 27, 2026
062f545
chore: generate
opencode-agent[bot] Jun 27, 2026
5d63020
test(core): cover app node builder graphs (#34244)
jlongster Jun 27, 2026
d25c91e
refactor(core): move session test to nodes (#34245)
jlongster Jun 27, 2026
6248542
chore: generate
opencode-agent[bot] Jun 27, 2026
a31698f
refactor(core): move more tests to nodes (#34248)
jlongster Jun 27, 2026
4120281
chore: generate
opencode-agent[bot] Jun 27, 2026
ae53163
fix(app): transition draft project updates (#34252)
Brendonovich Jun 27, 2026
6446b8a
fix(sdk): preserve V2Event name for SSE streams (#34171)
thdxr Jun 28, 2026
61a7f6d
chore: update nix node_modules hashes
opencode-agent[bot] Jun 28, 2026
dfeb1b5
feat(client): generate complete protocol client (#34164)
kitlangton Jun 28, 2026
6ee817d
fix(app): disable `add project` when given server is offline (#34294)
neriousy Jun 28, 2026
58ba99e
fix(desktop): avoid destroyed window permission checks (#34300)
Brendonovich Jun 28, 2026
bda0ddc
zen: new inference
fwang Jun 28, 2026
b862d17
zen: update alert role
fwang Jun 28, 2026
411e053
fix(mcp): reconnect after OAuth even when server is disabled
MaxAnderson95 Jun 28, 2026
92025e9
fix(mcp): clarify debug oauth probe (#34350)
rekram1-node Jun 28, 2026
683aca5
feat(desktop): Display stored totals for Tokens and Cost in Desktop S…
OpeOginni Jun 28, 2026
5d6aa3b
chore: generate
opencode-agent[bot] Jun 28, 2026
3376229
fix(app): wrap model.set in startTransition (#34351)
Brendonovich Jun 28, 2026
d78f91a
chore: generate
opencode-agent[bot] Jun 28, 2026
01a5c69
feat(tui): integrate ServerAuth headers into transport configuration …
OpeOginni Jun 29, 2026
84336e4
refactor(core): refine layer node replacements (#34377)
jlongster Jun 29, 2026
846d548
chore: generate
opencode-agent[bot] Jun 29, 2026
fb59606
test(core): fix layer node replacement type expectation (#34386)
opencode-agent[bot] Jun 29, 2026
beaaa17
fix(app): disable empty server chevron (#34292)
neriousy Jun 29, 2026
078385d
zen: budget
fwang Jun 29, 2026
f90d154
zen: budget
fwang Jun 29, 2026
5409151
feat(app): sticky session list header (#34220)
arvsrn Jun 29, 2026
56a789d
feat(app): show loader on session hover (#34224)
arvsrn Jun 29, 2026
be8cfa7
chore: generate
opencode-agent[bot] Jun 29, 2026
84bb706
feat(app): new timeline header (#34192)
arvsrn Jun 29, 2026
48dc05e
chore: generate
opencode-agent[bot] Jun 29, 2026
2070fd9
feat(app): improve projects sidebar reactivity (#34391)
arvsrn Jun 29, 2026
b5f92c9
docs: fix Kimi K2.7 Go model ID (#34413)
MrMushrooooom Jun 29, 2026
0a5e617
feat(app): update message part ui to v2 (#34394)
arvsrn Jun 29, 2026
7fac843
feat(app): align slash popover to v2 tokens (#34286)
arvsrn Jun 29, 2026
82a482b
chore: generate
opencode-agent[bot] Jun 29, 2026
48fc9e3
feat(llm): add response reducer (#34417)
nexxeln Jun 29, 2026
c363775
chore: generate
opencode-agent[bot] Jun 29, 2026
b0151e1
test(llm): verify generate reducer law (#34418)
nexxeln Jun 29, 2026
e5101d9
test(llm): lock event reducer laws (#34423)
nexxeln Jun 29, 2026
6d9539f
fix: exempt org issues from compliance close (#34431)
opencode-agent[bot] Jun 29, 2026
1fd8bf5
feat(llm): add model defaults and compatibility data (#34436)
nexxeln Jun 29, 2026
7077c70
chore: generate
opencode-agent[bot] Jun 29, 2026
08c5a2a
feat(llm): enforce request precedence (#34440)
nexxeln Jun 29, 2026
c0e43c0
chore: generate
opencode-agent[bot] Jun 29, 2026
a377642
refactor(core): finish test layer node conversion (#34385)
jlongster Jun 29, 2026
9205dfe
chore: generate
opencode-agent[bot] Jun 29, 2026
f7eeb08
fix(llm): narrow raw overlays (#34448)
nexxeln Jun 29, 2026
71ec022
chore: generate
opencode-agent[bot] Jun 29, 2026
18466b8
feat(llm): add tool schema projections (#34454)
nexxeln Jun 29, 2026
b10d617
chore: generate
opencode-agent[bot] Jun 29, 2026
bc5ce5e
refactor(core): convert opencode tests to nodes (#34453)
jlongster Jun 29, 2026
de18555
chore: generate
opencode-agent[bot] Jun 29, 2026
d4fd528
refactor(core): convert more opencode tests to nodes (#34464)
jlongster Jun 29, 2026
d6e54e9
chore: generate
opencode-agent[bot] Jun 29, 2026
762588c
refactor(core): convert prompt tests to nodes (#34470)
jlongster Jun 29, 2026
be14739
refactor(core): convert config tests to nodes (#34474)
jlongster Jun 29, 2026
d8f9388
chore: generate
opencode-agent[bot] Jun 29, 2026
b9dae85
refactor(opencode): migrate compaction and workspace tests to layer n…
jlongster Jun 29, 2026
0ebe74b
refactor(opencode): migrate llm tests to layer nodes (#34479)
jlongster Jun 29, 2026
93a7b4a
chore: generate
opencode-agent[bot] Jun 29, 2026
aae0e89
refactor(opencode): use layer nodes in plugin tests (#34495)
jlongster Jun 29, 2026
4d32947
chore: generate
opencode-agent[bot] Jun 29, 2026
15bcbb1
refactor(opencode): migrate session tests to layer nodes (#34494)
jlongster Jun 29, 2026
9151af7
chore: generate
opencode-agent[bot] Jun 29, 2026
7a035d7
refactor(opencode): bind instance bootstrap node (#34502)
jlongster Jun 29, 2026
7d33a6f
chore: generate
opencode-agent[bot] Jun 29, 2026
3726052
refactor(opencode): use layer nodes in server tests (#34503)
jlongster Jun 29, 2026
fd213e6
fix(mcp): prefer content over structured output (#34505)
rekram1-node Jun 29, 2026
7823538
chore: generate
opencode-agent[bot] Jun 29, 2026
884c256
fix(console): cancel upstream provider requests (#34467)
StarpTech Jun 29, 2026
d71454c
fix(core): expose models.dev modes as models (#34521)
rekram1-node Jun 29, 2026
e9d4ca7
zen: track region
fwang Jun 29, 2026
4caec80
chore: generate
opencode-agent[bot] Jun 29, 2026
60b6229
zen: track region
fwang Jun 29, 2026
5b62211
refactor(opencode): build runtimes from layer nodes (#34515)
jlongster Jun 30, 2026
2ace237
chore: generate
opencode-agent[bot] Jun 30, 2026
2fe68b5
fix(ui): prevent tool status blank frame (#34547)
Hona Jun 30, 2026
8f1e13f
fix(core): skip fff in node runtime (#34353)
opencode-agent[bot] Jun 30, 2026
cb3e28d
fix(app): collapse review pane by default (#34165)
opencode-agent[bot] Jun 30, 2026
1f37c26
refactor(opencode): use layer nodes in remaining harnesses (#34516)
jlongster Jun 30, 2026
ce82b21
chore: generate
opencode-agent[bot] Jun 30, 2026
018ce34
revert(core): skip fff in node runtime (#34549)
opencode-agent[bot] Jun 30, 2026
91561bb
refactor(opencode): remove app service layer exports (#34517)
jlongster Jun 30, 2026
451876b
refactor(opencode): remove core service layer exports (#34518)
jlongster Jun 30, 2026
ba41dad
ci: skip issue actions for team authors (#34556)
opencode-agent[bot] Jun 30, 2026
0a5bed2
feat(tui): add yolo permission mode (#33279)
thdxr Jun 30, 2026
797cb53
chore: generate
opencode-agent[bot] Jun 30, 2026
e687eb9
fix(app): register export logs globally (#34352)
opencode-agent[bot] Jun 30, 2026
6b074ed
fix(app): suppress middle-click tab auxclick (#34355)
opencode-agent[bot] Jun 30, 2026
b19ae65
sync
fwang Jun 30, 2026
e34822d
fix(desktop): preserve selected model during session promotion (#34466)
usrnk1 Jun 30, 2026
90f0576
fix(session-ui): deselect review line on draft cancel (#34585)
opencode-agent[bot] Jun 30, 2026
1982d98
fix(session-ui): align code copy tooltip with v2 style (#34459)
opencode-agent[bot] Jun 30, 2026
003c22b
fix(desktop): context menu button / tab intermittent issue (#34420)
usrnk1 Jun 30, 2026
8289883
chore: generate
opencode-agent[bot] Jun 30, 2026
f69f677
feat(desktop): add hover background to session title and single-click…
usrnk1 Jun 30, 2026
4aaed42
fix(app): preserve macos titlebar inset (#34594)
opencode-agent[bot] Jun 30, 2026
aa56750
fix(desktop): persist last active url (#34595)
Brendonovich Jun 30, 2026
ad63cf1
feat(app): hide separators around active tabs (#34591)
usrnk1 Jun 30, 2026
3aa2860
fix(app): restore prompt cursor on focus (#34175)
Brendonovich Jun 30, 2026
3ca89ac
fix(app): autocomplete configured references (#34308)
opencode-agent[bot] Jun 30, 2026
06cb0de
feat(app): autocomplete mcp resources (#34597)
Brendonovich Jun 30, 2026
bd83177
chore: generate
opencode-agent[bot] Jun 30, 2026
b329fcc
fix(docs): fix Russian translation for index.mdx (#34001)
runvip Jun 30, 2026
8e10ab0
chore: bump venice provider (#34629)
rekram1-node Jun 30, 2026
eaf42c4
chore: update nix node_modules hashes
opencode-agent[bot] Jun 30, 2026
63e2488
feat(desktop): polish inline session title editing (#34607)
usrnk1 Jun 30, 2026
fa9ba29
feat(desktop): make error view draggable (#34627)
usrnk1 Jun 30, 2026
c86066e
test(opencode): update help snapshots (#34639)
jlongster Jun 30, 2026
6fc9405
refactor(core): route aggregate layers through nodes (#34621)
jlongster Jun 30, 2026
20445ca
fix(cli): hide auto approval aliases in help (#34641)
opencode-agent[bot] Jun 30, 2026
fced9c5
feat(desktop): polish tooltips and session search (#34632)
usrnk1 Jun 30, 2026
74e7a37
chore: generate
opencode-agent[bot] Jun 30, 2026
5691f36
refactor(core): remove tool layer exports (#34622)
jlongster Jun 30, 2026
6387f95
refactor(core): remove session layer exports (#34623)
jlongster Jun 30, 2026
a4b6047
fix(core): drop legacy config filename (#34645)
opencode-agent[bot] Jun 30, 2026
c8fde60
fix(app): hide missing workspace branch (#34649)
Brendonovich Jun 30, 2026
472d0f3
refactor(core): remove infrastructure layer exports (#34624)
jlongster Jun 30, 2026
e787268
chore: generate
opencode-agent[bot] Jun 30, 2026
5a23bdc
refactor(core): remove domain layer exports (#34625)
jlongster Jun 30, 2026
3af9f64
chore: generate
opencode-agent[bot] Jun 30, 2026
6636683
refactor: remove remaining default layer aliases (#34660)
jlongster Jun 30, 2026
6789214
fix(console): remove expired Go MiniMax promo (#34663)
MrMushrooooom Jun 30, 2026
3a669d5
fix(provider): enable sonnet 5 adaptive thinking (#34673)
rekram1-node Jun 30, 2026
afff74e
sync release versions for v1.17.12
Jun 30, 2026
928c37b
zen: kk2.7, mm3, sonnet5
fwang Jun 30, 2026
c88ca97
chore: generate
opencode-agent[bot] Jun 30, 2026
f1407e4
fix(core): stop replaying stale GitHub Copilot Responses item IDs (#3…
rekram1-node Jul 1, 2026
ae3fefb
fix(session-ui): recognize more inline file paths (#34688)
opencode-agent[bot] Jul 1, 2026
439ec9b
chore: generate
opencode-agent[bot] Jul 1, 2026
45a437c
fix(app): clamp virtualizer range to scroll bounds (#34588)
opencode-agent[bot] Jul 1, 2026
2b611a5
chore: update nix node_modules hashes
opencode-agent[bot] Jul 1, 2026
55552c5
fix(provider): force openai reasoning variants (#34702)
rekram1-node Jul 1, 2026
af72cec
feat(desktop): scope tabs to windows (#34669)
Brendonovich Jul 1, 2026
bd7f7ad
chore: generate
opencode-agent[bot] Jul 1, 2026
5e1a1ed
fix(app): scope session page errors (#34254)
Brendonovich Jul 1, 2026
bf18cc9
chore: generate
opencode-agent[bot] Jul 1, 2026
4d91f0c
feat(app): v2 wsl ui (#34233)
arvsrn Jul 1, 2026
34ee942
chore: generate
opencode-agent[bot] Jul 1, 2026
cd00422
fix(app): question UI fixes and UX improvements (#34116)
eXamadeus Jul 1, 2026
6f2ff35
chore: generate
opencode-agent[bot] Jul 1, 2026
2f4d36d
fix(desktop): clean stale draft stores (#34651)
Brendonovich Jul 1, 2026
8b68dc0
chore: generate
opencode-agent[bot] Jul 1, 2026
f014686
feat(desktop): session tab hover preview popover (#34678)
usrnk1 Jul 1, 2026
9410eda
feat(app): composer improvements (#34720)
arvsrn Jul 1, 2026
4b1c7f2
chore: generate
opencode-agent[bot] Jul 1, 2026
246dea3
feat(app): more v2 ui alignment (#34465)
arvsrn Jul 1, 2026
3136b1b
feat(desktop): improve markdown heading spacing in session timeline (…
usrnk1 Jul 1, 2026
87aa62d
chore: generate
opencode-agent[bot] Jul 1, 2026
6697cf3
feat(app): minor fixes (#34748)
arvsrn Jul 1, 2026
10c894b
release: v1.17.13
Jul 1, 2026
898f0dc
refactor: kilo compat for v1.17.13
johnnyeric Jul 29, 2026
db1eae3
merge: record upstream v1.17.13
johnnyeric Jul 29, 2026
518501a
resolve merge conflicts
johnnyeric Jul 30, 2026
6017c3e
fix(server): provide the v2 service graph to the Kilo listener
johnnyeric Jul 30, 2026
61b2f1d
fix: repair generated artifacts and branding after the v1.17.13 merge
johnnyeric Jul 30, 2026
db000fe
Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-openc…
johnnyeric Jul 30, 2026
a606a91
fix: restore Kilo deltas the merge dropped
johnnyeric Jul 30, 2026
7d0089b
Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-openc…
johnnyeric Jul 30, 2026
9dc9b0e
fix: apply --yolo consistently and drop an empty catch
johnnyeric Jul 30, 2026
5c9da08
Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-openc…
johnnyeric Jul 30, 2026
3c20e6a
fix: let the listener reuse the app services instead of rebuilding them
johnnyeric Jul 30, 2026
a08d57d
chore: update kilo-vscode visual regression baselines
kilo-maintainer[bot] Jul 30, 2026
76d06fd
fix: name the auto-approve commands by scope and repair CI failures
johnnyeric Jul 30, 2026
5ca9741
chore: update kilo-vscode visual regression baselines
kilo-maintainer[bot] Jul 30, 2026
6cc716f
docs(cli): use canonical auto-approve flag
johnnyeric Aug 4, 2026
6c13844
Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-openc…
johnnyeric Aug 4, 2026
ebd1af3
test(cli): isolate PTY route tests from indexing
johnnyeric Aug 4, 2026
6a55020
chore: update kilo-vscode visual regression baselines
kilo-maintainer[bot] Aug 4, 2026
bc5ac7f
chore(client): regenerate command types
johnnyeric Aug 4, 2026
054ee59
fix(docs): use direct RFC link
johnnyeric Aug 4, 2026
10a3eec
fix: address upstream merge regressions
johnnyeric Aug 4, 2026
ea3cc17
Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-openc…
johnnyeric Aug 4, 2026
3aeb39e
fix(ci): stabilize cross-platform unit tests
johnnyeric Aug 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 25 additions & 0 deletions .changeset/opencode-v1-17-9-to-v1-17-13.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
"@kilocode/cli": patch
"kilo-code": patch
---

Changes from opencode v1.17.9 to v1.17.13 upstream:

- Core Improvements: Sessions gain a snapshot and revert system for staging, clearing and committing file reverts.
- Core Improvements: Durable session history is served in finite pages and exposed through the SDK.
- Core Improvements: MCP servers can append their instructions to the model context, and MCP resources are available as tools with template listing.
- Core Improvements: MCP tools use the `mcp__server__tool` naming convention, with legacy names still accepted.
- Core Improvements: Plugins can use the v2 effect host and a namespaced hook API.
- Core Improvements: Model variants are generated from models.dev data, including modes exposed as models.
- Core Improvements: Tool definitions pass `strict` through for Codex parity, and Gemini requests support video and audio media.
- Core Bugfixes: Interrupted assistant steps settle instead of leaving sessions stuck busy.
- Core Bugfixes: MCP OAuth reconnects after authorization even when the server is disabled, refreshes credentials on reauthentication, requests refresh token scope, surfaces completion errors, and binds its callback to the IPv4 loopback.
- Core Bugfixes: MCP tool results prefer content over structured output, and denied resource template tools stay hidden.
- Core Bugfixes: Stale GitHub Copilot Responses item IDs are no longer replayed, and OpenAI reasoning variants are forced where required.
- Core Bugfixes: Adaptive thinking is enabled for Claude Sonnet 5, and expired promos were removed from the zen catalog.
- Core Bugfixes: Preserve released prompt history during database replay and keep native event streams connected for all supported Kilo events.
- Core Bugfixes: Remote skills refresh atomically with version pinning, and skill base directories are emitted as filesystem paths.
- CLI Improvements: `kilo run --mini` provides a compact interactive mode, and ports increment from the default when busy.
- CLI Improvements: Use `--auto` to start the TUI in a run-scoped auto-approve mode, and leave the mode mid-session from the command palette.
- TUI Improvements: Redesigned crash screen, model picker sorted by release date, a diff viewer keybind, main-branch diff source, bindable move-session command, and inline skill load errors.
- TUI Bugfixes: File autocomplete is scoped to the session, multi-day durations format correctly, and root sessions load in the session switcher.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ blank_issues_enabled: false
contact_links:
- name: 💬 Join our Discord
url: https://kilo.ai/discord
about: For quick questions or real-time discussion. Note that issues are searchable and help others with the same question.
about: For support, troubleshooting, how-to questions, and real-time discussion.
38 changes: 38 additions & 0 deletions .github/workflows/disabled/compliance-close.yml.disabled
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,48 @@ jobs:

const now = Date.now();
const twoHours = 2 * 60 * 60 * 1000;
const orgMemberAssociations = new Set(['OWNER', 'MEMBER']);
const agentLogin = 'opencode-agent[bot]';
const { data: file } = await github.rest.repos.getContent({
owner: context.repo.owner,
repo: context.repo.repo,
path: '.github/TEAM_MEMBERS',
ref: 'dev',
});
const teamMembers = new Set(
Buffer.from(file.content, 'base64')
.toString()
.split('\n')
.map((line) => line.trim().toLowerCase())
.filter(Boolean)
);

function isExempt(item) {
const login = item.user?.login?.toLowerCase();
return (
login === agentLogin ||
orgMemberAssociations.has(item.author_association) ||
(login && teamMembers.has(login))
);
}

for (const item of items) {
const isPR = !!item.pull_request;
const kind = isPR ? 'PR' : 'issue';
const login = item.user?.login;

if (isExempt(item)) {
core.info(`Skipping ${kind} #${item.number}; author ${login || 'unknown'} is exempt`);
try {
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: item.number,
name: 'needs:compliance',
});
} catch (e) {}
continue;
}

const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
Expand Down
46 changes: 45 additions & 1 deletion .github/workflows/disabled/duplicate-issues.yml.disabled
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,31 @@ jobs:
with:
fetch-depth: 1

- name: Check exempt issue author
id: author
run: |
LOGIN="${{ github.event.issue.user.login }}"
ASSOCIATION="${{ github.event.issue.author_association }}"

if [ "$LOGIN" = "opencode-agent[bot]" ] ||
[ "$ASSOCIATION" = "OWNER" ] ||
[ "$ASSOCIATION" = "MEMBER" ] ||
grep -qxiF "$LOGIN" .github/TEAM_MEMBERS; then
echo "skip=true" >> "$GITHUB_OUTPUT"
echo "Skipping issue automation for exempt author: $LOGIN ($ASSOCIATION)"
else
echo "skip=false" >> "$GITHUB_OUTPUT"
fi

- uses: ./.github/actions/setup-bun
if: steps.author.outputs.skip != 'true'

- name: Install opencode
if: steps.author.outputs.skip != 'true'
run: curl -fsSL https://kilo.ai/install | bash

- name: Check duplicates and compliance
if: steps.author.outputs.skip != 'true'
env:
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -38,6 +57,7 @@ jobs:
opencode run -m opencode/claude-sonnet-4-6 "A new issue has been created:

Issue number: ${{ github.event.issue.number }}
Issue author association: ${{ github.event.issue.author_association }}

Lookup this issue with gh issue view ${{ github.event.issue.number }}.

Expand All @@ -49,6 +69,8 @@ jobs:

Check whether the issue follows our contributing guidelines and issue templates.

If the issue author association is OWNER or MEMBER, skip this compliance check. Do not add the needs:compliance label for organization-owned issues.

This project has three issue templates that every issue MUST use one of:

1. Bug Report - requires a Description field with real content
Expand Down Expand Up @@ -83,7 +105,7 @@ jobs:

Based on your findings, post a SINGLE comment on issue #${{ github.event.issue.number }}. Build the comment as follows:

If the issue is NOT compliant, start the comment with:
If the issue is NOT compliant and the author association is not OWNER or MEMBER, start the comment with:
<!-- issue-compliance -->
Then explain what needs to be fixed and that they have 2 hours to edit the issue before it is automatically closed. Also add the label needs:compliance to the issue using: gh issue edit ${{ github.event.issue.number }} --add-label needs:compliance

Expand Down Expand Up @@ -129,12 +151,31 @@ jobs:
with:
fetch-depth: 1

- name: Check exempt issue author
id: author
run: |
LOGIN="${{ github.event.issue.user.login }}"
ASSOCIATION="${{ github.event.issue.author_association }}"

if [ "$LOGIN" = "opencode-agent[bot]" ] ||
[ "$ASSOCIATION" = "OWNER" ] ||
[ "$ASSOCIATION" = "MEMBER" ] ||
grep -qxiF "$LOGIN" .github/TEAM_MEMBERS; then
echo "skip=true" >> "$GITHUB_OUTPUT"
echo "Skipping issue automation for exempt author: $LOGIN ($ASSOCIATION)"
else
echo "skip=false" >> "$GITHUB_OUTPUT"
fi

- uses: ./.github/actions/setup-bun
if: steps.author.outputs.skip != 'true'

- name: Install opencode
if: steps.author.outputs.skip != 'true'
run: curl -fsSL https://kilo.ai/install | bash

- name: Recheck compliance
if: steps.author.outputs.skip != 'true'
env:
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -148,9 +189,12 @@ jobs:
}
run: |
opencode run -m opencode/claude-sonnet-4-6 "Issue #${{ github.event.issue.number }} was previously flagged as non-compliant and has been edited.
Issue author association: ${{ github.event.issue.author_association }}

Lookup this issue with gh issue view ${{ github.event.issue.number }}.

If the issue author association is OWNER or MEMBER, remove the needs:compliance label if present, delete the previous compliance comment if present, and do not post a new comment.

Re-check whether the issue now follows our contributing guidelines and issue templates.

This project has three issue templates that every issue MUST use one of:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/disabled/storybook.yml.disabled
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
- "bun.lock"
- "packages/storybook/**"
- "packages/ui/**"
- "packages/session-ui/**"
pull_request:
branches: [dev]
paths:
Expand All @@ -17,6 +18,7 @@ on:
- "bun.lock"
- "packages/storybook/**"
- "packages/ui/**"
- "packages/session-ui/**"
workflow_dispatch:

concurrency:
Expand Down
19 changes: 19 additions & 0 deletions .github/workflows/disabled/triage.yml.disabled
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,32 @@ jobs:
with:
fetch-depth: 1

- name: Check exempt issue author
id: author
run: |
LOGIN="${{ github.event.issue.user.login }}"
ASSOCIATION="${{ github.event.issue.author_association }}"

if [ "$LOGIN" = "opencode-agent[bot]" ] ||
[ "$ASSOCIATION" = "OWNER" ] ||
[ "$ASSOCIATION" = "MEMBER" ] ||
grep -qxiF "$LOGIN" .github/TEAM_MEMBERS; then
echo "skip=true" >> "$GITHUB_OUTPUT"
echo "Skipping issue automation for exempt author: $LOGIN ($ASSOCIATION)"
else
echo "skip=false" >> "$GITHUB_OUTPUT"
fi

- name: Setup Bun
if: steps.author.outputs.skip != 'true'
uses: ./.github/actions/setup-bun

- name: Install opencode
if: steps.author.outputs.skip != 'true'
run: curl -fsSL https://kilo.ai/install | bash

- name: Triage issue
if: steps.author.outputs.skip != 'true'
env:
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
11 changes: 8 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ jobs:
echo 'general=true' >> "$GITHUB_OUTPUT"
echo 'settings=[{"os":"linux","index":1,"total":2,"host":"blacksmith-4vcpu-ubuntu-2404","run":true,"packages":true},{"os":"linux","index":2,"total":2,"host":"blacksmith-4vcpu-ubuntu-2404","run":true,"packages":false},{"os":"macos","index":1,"total":1,"host":"macos-15","run":true,"packages":true},{"os":"windows","index":1,"total":4,"host":"blacksmith-4vcpu-windows-2025","run":true,"packages":true},{"os":"windows","index":2,"total":4,"host":"blacksmith-4vcpu-windows-2025","run":true,"packages":false},{"os":"windows","index":3,"total":4,"host":"blacksmith-4vcpu-windows-2025","run":true,"packages":false},{"os":"windows","index":4,"total":4,"host":"blacksmith-4vcpu-windows-2025","run":true,"packages":false}]' >> "$GITHUB_OUTPUT"
# kilocode_change end

unit:
# kilocode_change start
name: ${{ !matrix.settings.run && 'unit (unchanged)' || matrix.settings.total > 1 && format('unit ({0}, {1}/{2})', matrix.settings.os, matrix.settings.index, matrix.settings.total) || format('unit ({0})', matrix.settings.os) }}
Expand Down Expand Up @@ -146,6 +145,8 @@ jobs:
- name: Run non-CLI unit tests
if: matrix.settings.run && matrix.settings.packages
run: bun turbo test:ci --output-logs=errors-only --log-order=grouped --log-prefix=task --filter='!@kilocode/cli' --filter='!@kilocode/kilo-jetbrains'
env:
KILO_EXPERIMENTAL_DISABLE_FILEWATCHER: "true" # kilocode_change - non-CLI tests use the watcher-free unit-test profile
# kilocode_change end

# kilocode_change start - ensure the Darwin profile cannot suppress its own validation
Expand Down Expand Up @@ -222,10 +223,15 @@ jobs:
turbo-${{ runner.os }}-${{ hashFiles('turbo.json', 'bun.lock') }}-
turbo-${{ runner.os }}-

- name: Check generated client
if: runner.os == 'Linux'
working-directory: packages/client
run: bun run check:generated
- name: Run HttpApi exerciser gates
run: bun turbo test:httpapi --filter='@kilocode/cli'
env:
KILO_EXPERIMENTAL_DISABLE_FILEWATCHER: "true" # kilocode_change - same rationale as the CLI unit step: a watcher per scenario instance is too heavy for the exerciser
KILO_EXPERIMENTAL_DISABLE_FILEWATCHER: "true" # kilocode_change - a watcher per scenario instance is too heavy for the exerciser

# kilocode_change end

# kilocode_change start
Expand All @@ -251,7 +257,6 @@ jobs:
echo "unit=${{ needs.unit.result }}"
test "${{ needs.unit.result }}" = "success"
# kilocode_change end

# kilocode_change start
required:
name: test (linux)
Expand Down
2 changes: 1 addition & 1 deletion .opencode-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v1.17.9
v1.17.13
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ packages/desktop/src/bindings.ts
# alignment, which creates large spurious diffs on any unrelated content change.
# See AGENTS.md "Markdown Tables" and script/check-md-table-padding.ts.
*.md
packages/client/src/generated/
packages/client/src/generated-effect/
Loading
Loading