Commit Graph

26909 Commits

Author SHA1 Message Date
Bruno Agatao dbf50aa821 fix(cli): fix nested code-span ranges and flaky quadratic-scan test 2026-08-03 13:14:48 +02:00
Bruno Agatao 5bd420aae1 fix(cli): stop inline skill-shell doc examples from triggering permission prompts 2026-08-03 12:39:49 +02:00
Marius 6693f2d176 Merge pull request #12799 from Kilo-Org/fix-worktree-tooltip-delay
fix(agent-manager): make worktree hover cards instant
2026-08-03 12:29:30 +02:00
Marius 7b07eb803d Merge pull request #12796 from Kilo-Org/plan-cmd-dot-agent-manager-mode-switching
fix(agent-manager): route mode shortcuts through modal
2026-08-03 12:25:28 +02:00
Marius f239f36f65 feat(ui): show line summaries for multi-file patches (#12725)
* feat(ui): show line summaries for multi-file patches

* fix(ui): animate multi-file patch summaries
2026-08-03 12:22:56 +02:00
Marius 2fbd380dfc fix(cli): speed up local recall searches (#12726)
* fix(cli): speed up local recall searches

* fix(cli): bound local recall scans

* fix(cli): make recall index initialization lazy
2026-08-03 12:22:42 +02:00
Marius 7d3f50c2e8 fix(cli): defer threshold compaction during tool loops (#12792)
* fix(cli): preserve Kilo prompt cache keys

* fix(cli): defer threshold compaction during tool loops
2026-08-03 12:22:39 +02:00
Marius 46715c3053 fix(vscode): restore Markdown comment gutter anchors after renderer wrapper change (#12794)
The Markdown renderer began wrapping rendered blocks in div[data-markdown-block]
containers with display: contents, which collapsed the annotation layer's
bounding-box lookups and broke list/table special-case comment handling.

Flatten renderer-owned block wrappers to their actual rendered children while
preserving legacy top-level Markdown DOM and filtering inserted annotation
elements.

Regression introduced in PR #12460 (a776bd4d29, refactor: kilo compat for v1.17.9).
2026-08-03 12:21:55 +02:00
marius-kilocode 6b5a605a8c fix(agent-manager): remove hover card animation 2026-08-03 12:07:44 +02:00
marius-kilocode 7cfaeb2c8d fix(agent-manager): make worktree hover cards instant 2026-08-03 12:01:29 +02:00
marius-kilocode 76e34bdcf0 fix(agent-manager): align modal model resolution 2026-08-03 11:57:15 +02:00
marius-kilocode 20d1648e7a fix(agent-manager): route mode shortcuts through modal 2026-08-03 11:41:52 +02:00
Hardik Sharma c554409080 fix(cli): preserve configured subagent routing (#12652)
* fix(cli): preserve configured subagent routing

* fix(cli): preserve markdown agent precedence

* ci: rerun checks
2026-08-01 21:19:19 +00:00
Kirill Kalishev f08b78c7a2 Merge pull request #12766 from Kilo-Org/jetbrains/release/v7.0.12
release(jetbrains): v7.0.12
2026-08-01 13:24:46 -04:00
Kirill Kalishev 12a29f5f37 docs(jetbrains): edit changelog for v7.0.12 2026-08-01 13:19:34 -04:00
kilo-maintainer[bot] 3b6562466d release(jetbrains): v7.0.12 2026-08-01 17:12:11 +00:00
Kirill Kalishev 190d9325c9 Merge pull request #12765 from Kilo-Org/jetbrains/release/v7.0.12-rc.4
release(jetbrains): v7.0.12-rc.4
jetbrains/v7.0.12
2026-08-01 11:53:35 -04:00
Kirill Kalishev 14efc82925 docs(jetbrains): edit changelog for v7.0.12-rc.4 2026-08-01 11:51:37 -04:00
kilo-maintainer[bot] 87fcc06a63 release(jetbrains): v7.0.12-rc.4 2026-08-01 15:11:31 +00:00
Kirill Kalishev 0aabd47b58 Merge pull request #12746 from Kilo-Org/spectacled-week
fix(jetbrains): improve diff performance and session layout
jetbrains/v7.0.12-rc.4
2026-07-31 19:55:43 -04:00
kirillk b2f17a20c2 test(jetbrains): pin reflow gate to Busy with a non-streaming state
Add a Retry-state reflow test (isBusy() == true but not SessionState.Busy):
it must keep restarting the settle window toward the idle budget rather than
collapsing to REFLOW_PASSES. This is the only case that distinguishes
`is SessionState.Busy` from the old `isBusy()` predicate — verified it fails
(7 passes) if the gate is reverted to isBusy().
2026-07-31 18:26:08 -04:00
kirillk f1947697ea fix(jetbrains): gate reflow settle window on Busy, not isBusy()
isBusy() is true for awaiting-permission/question, retry, and offline —
states recoverPending() can seed right after history load, where no deltas
arrive and a moving height genuinely means the panes are still settling.
Gating the settle-window shortcut on those states cut the reflow chain to
REFLOW_PASSES and reintroduced the crop-until-resize bug on exactly that
path. Gate only on SessionState.Busy (the streaming state) so the runaway
fix stays while blocked/retry/offline sessions keep their full settle window.
Add a Busy-state test that fails if the term is dropped or inverted.
2026-07-31 18:19:22 -04:00
kirillk 6820530e97 fix(jetbrains): avoid per-row cache invalidation on bulk diff tree toggle
invalidateCacheAndRepaint is UI-scoped, so firing it from the expansion
listener on every row made expand/collapse-all O(rows^2) to re-measure on
large branch diffs. Suppress the listener during bulk toggles and invalidate
once at the end, and register it after the initial expandAll. Per-row user
toggles still invalidate immediately.
2026-07-31 17:05:07 -04:00
kirillk 45ed8f20ee fix(jetbrains): settle transcript reflow by session state, test budget
Only treat a moving preferred height as an unsettled layout while the session
is idle. During streaming the height just tracks incoming content, so the
chain now counts its passes down instead of restarting the settle window,
settling in REFLOW_PASSES and handing off to the per-turn forgetTurn path
rather than risking a narrow crop-until-resize when the hard budget trips
mid-stream. Keep the budget as the idle backstop and cover it with a test
that drives an ever-growing child so the chain would spin without the cap.
2026-07-31 17:00:23 -04:00
kirillk 87b00a9b19 fix(jetbrains): invalidate diff tree layout cache on folder toggle
A folder row hides its rolled-up badge while expanded, so its preferred
width now depends on expansion state. JTree only invalidates cached path
bounds on model changes, not on expand/collapse, so a collapsed folder could
keep its narrower expanded-state bounds and let the re-shown badge squeeze
the file name until an unrelated re-measure. Add a TreeExpansionListener that
invalidates the layout cache on toggle so the row re-measures immediately.
2026-07-31 16:50:18 -04:00
kirillk 820d5d5f01 fix(jetbrains): bound transcript reflow passes during streaming
The reflow chain restarted its pass budget on every height change, so a
session that keeps streaming after open reset the budget each EDT cycle and
held the panel in a perpetual forgetAll()/re-measure loop, defeating the
width-keyed height cache. Add a hard total-pass budget that never resets so
the layout can still settle across a few height changes while capping the
work a streaming session can trigger. Covers the doLayout re-arm path with a
test that latches pendingReflow via a real turn at zero width.
2026-07-31 16:43:34 -04:00
kirillk e0fa585e33 fix(jetbrains): hide expanded diff folder badges
Expanded folders already reveal child file badges, so showing the rolled-up folder total duplicates the visible counts. Keep aggregate badges only on collapsed folders while preserving file badges.
2026-07-31 16:33:30 -04:00
kirillk 632e4ca8c0 fix(jetbrains): reflow transcript at real width on session open
Opening a session could pin the transcript to a bottom computed from a zero-width measurement, cropping the last content until a toolwindow resize forced a re-measure. Reflow now no-ops until the panel has a real width and re-arms from doLayout once it does, so the transcript is always measured on-screen. The streaming path is untouched: pendingReflow is only set by a rebuild/clear that ran before layout, so the added doLayout check short-circuits during live updates.
2026-07-31 16:26:33 -04:00
kilo-maintainer[bot] f00da9a75b release: v7.4.18 v7.4.18 2026-07-31 19:59:08 +00:00
kirillk 7e0468fab0 Merge remote-tracking branch 'origin/main' into spectacled-week 2026-07-31 15:41:36 -04:00
kirillk 1a506a712c fix(jetbrains): sync prompt button after attachments change 2026-07-31 15:34:12 -04:00
kirillk c1f6a75377 fix(jetbrains): reflow transcripts after session load 2026-07-31 15:21:51 -04:00
Joshua Lambert c70fc73e57 Merge pull request #12173 from seven7763/docs/daoxe-provider-guide
docs: add DaoXE provider guide
2026-07-31 15:12:12 -04:00
hei 18657ca3a1 fix: rewrite opening paragraph to lead with DaoXE differentiators
- Replace generic 'multi-model API gateway' opening with punchier
  differentiators: native Claude protocol, verifiable routing, one-key access
- Reviewer feedback: opening sentence didn't differentiate from other gateways

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-01 03:08:52 +08:00
kirillk 572c87b27c fix(jetbrains): allow horizontal diff tree scrolling 2026-07-31 14:49:53 -04:00
kirillk 2569f3ecd6 fix(jetbrains): cap large inline diff previews 2026-07-31 14:29:23 -04:00
Igor Šćekić ace509dc60 feat(opencode): remote create_session fields, org metadata, rename/title sync, cancel proof (#12704)
* feat(opencode): remote create_session fields, rename adoption, title sync

Extend create_session wire with optional agent/model/orgId (strict v1,
old-CLI degrade via client retry); claim org via session metadata
(metadata > KILO_ORG_ID > auth); adopt system session.renamed via
setTitle with consume-on-failure adoption marks; POST generation-aware
title changes through readiness (auto-titles marked by ensureTitle,
same-title Updated consumes pending adoptions).

* test(opencode): prove cancel→reprompt reaches idle; lock exit survivor

Item 14 CLI prove-it at SessionPrompt level: cancel-when-idle,
mid-stream, mid-tool, queued follow-up (deterministic queue wait), and
abortIntakes all settle to idle and reprompt completes — no production
hang found, no src change. Item 8: lock survivor session send_message
after sibling exit_cli.

* test(opencode): drop AppRuntime spy from create_session default test

Satisfies check-opencode-promise-facades while still proving the
production default forwards {agent, model, metadata} into
Session.Service.create.

* fix(opencode): bound rename marks, wire title report path, harden title tests

Kilobot review on #12704: adoption/auto-title maps now carry timestamps,
prune on write (60s TTL), and clear on Session.Event.Deleted (exported
clear/clearAll); the Updated watcher calls the interface
reportSessionTitle and fullSync passes preloaded info into meta();
ensureTitle's Kilo logic lives in kilocode/session/prompt.ts behind one
kilocode_change call site; title tests poll instead of sleeping and lock
mark-before-write plus clear-on-failure for real; meta() get-failure
org fallback covered via the _metaForTests seam.

* fix(kilo-sessions): mark bookkeeping before ingest sync, AppRuntime, test cleanup

Kilobot round 2 on #12704: consume rename/auto-title marks before the
ingest.sync network hop so the 60s TTL spans only the in-process hop;
call reportSessionTitle via AppRuntime.runPromise; auth cleanup back
under Effect.ensuring; restore the upstream blank line in prompt.ts so
the fork diff is only the kilocode_change call site.

* fix(kilo-sessions): keep title report self-healing if ingest.sync fails

Advance knownTitles only after successful sync; restore consumed rename/
auto-title marks on failure so the next Updated can re-POST. IIFE keeps
const-style outcome derivation.

* fix(kilo-sessions): optimistic knownTitles with full title-path rollback

Advance knownTitles before the network hop so concurrent Updated handlers
see sameTitle and cannot POST the same title with a wrong generated flag.
Restore prev + consumed marks when ingest.sync throws or reportSessionTitle
returns not-ok, so the next Updated retries the full self-healing path.

* style(kilo-sessions): prettier title Updated handler

* fix(kilo-sessions): preserve newer title state

* refactor(kilo-sessions): simplify title reporting tests

* fix(kilo-sessions): report unseeded title updates

* fix(kilo-sessions): consume unseeded title marks

* test(kilo-sessions): cover unseeded title marks

* test(kilo-sessions): unique ids for unseeded title tests

Thread a distinct session id through unseededMockSessionLayer so
session_share Storage records do not couple the three unseeded cases.
2026-07-31 18:25:03 +00:00
kirillk 329c6db489 fix(jetbrains): compact diff tree directories 2026-07-31 13:27:31 -04:00
Kirill Kalishev 3404676c10 Merge pull request #12672 from Kilo-Org/trusting-speech
chore(vscode): add isolated extension dev launches
2026-07-31 13:17:17 -04:00
Kirill Kalishev 5d2d46be35 Merge branch 'main' into trusting-speech 2026-07-31 13:06:24 -04:00
Joshua Lambert 7530f15fef Merge branch 'main' into docs/daoxe-provider-guide 2026-07-31 13:04:12 -04:00
Joshua Lambert 3bf4743c94 Update packages/kilo-docs/pages/ai-providers/daoxe.md 2026-07-31 13:04:03 -04:00
kirillk 64f0373056 fix(jetbrains): improve diff editor rendering 2026-07-31 12:50:04 -04:00
Kirill Kalishev ed8d53733e Merge pull request #12711 from Kilo-Org/add-icon-jetbrains-skill
docs: add icon-jetbrains skill for authoring JetBrains plugin icons
2026-07-31 12:25:05 -04:00
Kirill Kalishev acb8a04301 Merge branch 'main' into add-icon-jetbrains-skill 2026-07-31 12:14:48 -04:00
Kirill Kalishev deb08fe2eb Merge pull request #12742 from Kilo-Org/jetbrains/release/v7.0.12-rc.3
release(jetbrains): v7.0.12-rc.3
2026-07-31 11:18:50 -04:00
kilo-maintainer[bot] dc902dfeed release(jetbrains): v7.0.12-rc.3 2026-07-31 15:12:08 +00:00
kirillk 2c8fe026be docs: teach stroke-scaling and round-cap clipping in icon skill 2026-07-31 11:07:55 -04:00
Kirill Kalishev 20c6064e61 Merge pull request #12612 from Kilo-Org/lovely-wallflower
feat(jetbrains): improve session changes and diff review
jetbrains/v7.0.12-rc.3
2026-07-31 11:04:23 -04:00
Marius 3a923f36b4 fix(cli): suppress AI SDK system message warning in TUI (#12739)
AI SDK 6 logs a console.warn when system messages appear in the
messages array. OpenCode prepends trusted system prompts to messages
in session/llm/request.ts, so the warning fires on every turn and
bleeds into the TUI frame.

Set allowSystemInMessages: true on the streamText call to acknowledge
the trusted internal system messages and prevent the warning from
corrupting terminal output. This also future-proofs against AI SDK 7,
which rejects system messages by default.
2026-07-31 15:03:13 +00:00