Commit Graph

19625 Commits

Author SHA1 Message Date
Emilie Schario b7fe91bc43 docs(kilo-docs): improve redirect guardrails 2026-07-06 21:46:27 -04:00
Catriel Müller 9ce665d3ee Merge remote-tracking branch 'origin/main' into feat/cli-vim-mode-prompt 2026-07-06 16:03:20 -03:00
Catriel Müller ea0f5a044f Merge pull request #11223 from maphew/fix/cli-cloud-fork-session-import
fix(cli): import cloud sessions before validation
2026-07-06 14:44:53 -03:00
Kirill Kalishev 2bf41a8b13 docs(jetbrains): edit changelog for v7.0.1 2026-07-06 12:10:07 -04:00
Kirill Kalishev 556623c034 docs(jetbrains): edit changelog for v7.0.1 2026-07-06 12:07:31 -04:00
kilo-maintainer[bot] f8252028f6 release(jetbrains): v7.0.1 2026-07-06 16:01:51 +00:00
Johnny Eric Amancio b976b5a013 feat(cli): opt-in project memory (#11921)
* feat(memory): opt-in project memory — capture, recall, CLI + TUI integration

Add project memory: the standalone @kilocode/kilo-memory effect layer plus the
opencode CLI/server/TUI integration. Memory is disabled by default, so it is a
no-op until enabled (no behavior change when off).

Capture (turn-close consolidation): per-op parse salvage, secret redaction that
skips the offending op instead of aborting the batch, supersede-only auto-updates
(never model-driven deletes), correction-aware echo handling, non-LLM fallback
digests on interrupted/error turns, a shared interval throttle with idle-flush.

Recall + injection: keyword tokenizer with camelCase/compound splitting, light
stemming, and an English-first stopword filter (Unicode-aware; non-English falls
back to plain token-overlap), a live relevance floor, a budget-reserved startup
index, a session-digest catalog, and per-session prompt-cache pinning of the
injected memory block.

Surfaces: kilo_memory_save / kilo_memory_recall tools, the memory HTTP API
(contract schemas live in the package), and a status-focused TUI sidebar showing
auto-save, loaded context, and active recall, plus the /memory dialog.

* fix(memory): address PR review feedback

- C1: bump @kilocode/kilo-memory in the changeset
- C2: redact secrets before they hit the audit log (skip + salvage paths);
  redact before truncating in salvageTyped so a secret straddling the
  500-char cap can't leak an unmatched fragment; opText -> salvageText
- C3: de-abbreviate savedOperations, "changes" wording, ops.ts -> operations.ts
- C4: log.warn on the remaining silent-catch fallbacks (turn diff, memory
  context injection, tool-visibility check)
- C5: relocate memory storage from ~/.kilo to Global.Path.data, delete the
  now-dead needsDependencyInstall guard, add /memory status (root path) and
  /memory edit ($VISUAL/$EDITOR + auto-rebuild)
- C6: replace the hardcoded English stopword list with corpus-derived
  ubiquitous-term filtering (df across the user's own entries) and the
  English suffix stemmer with suffix-tolerant term matching, so recall
  noise-filtering works in any language
- C8: delete the CORRECTION_INTENT English regex; echo turns now run typed
  capture (digest stays echo-gated), bounded by the interval throttle, with
  the typed prompt as the language-agnostic content filter
- C9: exclude generated paths (dist/build/coverage/*.gen.*/*.map/snapshots)
  from the durable-diff churn fallback so generated churn can't burn a
  consolidation call
- C11: fix duplicated assert in httpapi-memory test; assert the error body
- kilo-code-bot batch: clause-boundary regex fix, byte-safe catalog
  truncation, max-length guards on remember/correct/forget payloads (text,
  query, key, sessionID), trim consistency in reconcile, param-shadowing
  rename, missing doc entry for kilo_memory_recall, dead-code removal,
  dialog UI fixes, memoryEnabledCache eviction bound, dedicated Configure
  schema, recall permission renderer, covered-session pointer cap, redact
  chat transcript before the consolidation model call, split configProtected
  metadata from disableAlways so memory-save prompts don't show config-file
  copy, drop unused MemoryService.layer provide from tool registry
- redact colon-separated low-entropy secrets too (password: hunterx),
  accepting the prose false-positive tradeoff (secret: enabled) in favor of
  not missing a real secret
- rename lastConsolidatedAt -> lastTypedConsolidationAt to make its narrow
  scope (typed-consolidation throttle clock) explicit; regen openapi/SDK
- drop now-dead home/config fields from MemoryPaths.Host after the data-dir
  relocation; add Process.splitCommand for quoted $EDITOR/$VISUAL paths with
  spaces, used by /memory edit and the pre-existing Editor.open utility

* refactor(memory): shared client helpers, capture hardening, /memory UX rework

- extract client-side derivations into kilo-memory so both frontends share
  one implementation: MemoryDecisions.summarize (decision-log summary),
  MemoryAutosaveStatus.summarize (autosave-status semantics), and
  MemoryMarkerMeta (marker wire contract encode/decode)
- match exact-key upserts via the canonical stored id (slugged key,
  normalized section) so a re-emitted spaced/uppercase key updates the
  entry instead of falling to fuzzy dedupe
- salvageTyped throws on valid JSON without an operations array so the
  caller's fallback path records a parse error instead of a silent
  zero-op success
- rename memory tool metadata files -> sources (stripPartMetadata rewrites
  tool-part metadata.files assuming apply_patch records, mangling string[])
- read state instead of status for tool enabled checks; dedupe TUI helpers
  (errorMessage, shared route(), Locale.number, relativeTime)
- /memory UX: bare /memory opens a help modal driven by a structured
  command catalog in kilo-memory; /memory on|off become the canonical
  toggle verbs (enable/disable kept as quiet aliases); /memory status opens
  a clean overview dialog (root path, autosave, startup context, source
  counts, index size) instead of a toast; /memory show is the single full
  audit view (inspect removed)
2026-07-06 17:45:49 +02:00
Kirill Kalishev d24b8e700d Update packages/kilo-jetbrains/CHANGELOG.md
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
2026-07-06 11:08:18 -04:00
Kirill Kalishev b9d00e42a9 docs(jetbrains): edit changelog for v7.0.1-rc.15 2026-07-06 11:02:20 -04:00
kilo-maintainer[bot] d4eab7e3bb release(jetbrains): v7.0.1-rc.15 2026-07-06 14:54:57 +00:00
kirillk 0ae9519682 Merge remote-tracking branch 'origin/main' into massive-fontina 2026-07-06 09:52:17 -04:00
Evgeny Shurakov cd49ae633c CLI - Remote model catalog and WebSocket reconnection fixes (#11835)
* feat(cli): remote model catalog and WebSocket reconnection fixes

* fix(cli): preserve provider default semantics under truncation and deflake reconnect test

* fix(cli): omit provider default when per-provider truncation removes preferred model

* refactor(cli): simplify remote model catalog by removing size limits

* refactor(cli): strip remote model catalog to sanitize-and-shape only

* fix(cli): cap remote model catalog at MAX_MODELS

* fix(cli): preserve model metadata and enforce remote catalog limits

* fix(cli): omit currentModel and defaultModel when truncation drops them

* fix(cli): keep stable connection identity across reconnects

* feat(cli): include protocol version in remote session heartbeat
2026-07-06 14:48:30 +02:00
Mark IJbema cc418f4437 Merge pull request #11966 from Kilo-Org/mark/notification-version-headers
feat(gateway): send version headers on notification requests
2026-07-06 13:33:34 +02:00
Vishal Kumar Singh 835500b4eb docs: clarify local Ollama setup (#11652) 2026-07-06 13:04:58 +02:00
Mark IJbema 1d69a2b442 feat(gateway): send version headers on notification requests
Wire fetchKilocodeNotifications up to the shared header helpers
(getDefaultHeaders + buildKiloHeaders) so notification requests carry
User-Agent, X-KILOCODE-EDITORNAME, and org headers instead of only
Authorization/Content-Type. Also set KILOCODE_VERSION to the extension
version when spawning kilo serve so the extension version flows into the
User-Agent, letting the backend discriminate on extension version.
2026-07-06 12:33:26 +02:00
kirillk 5a60c9c0fb test(jetbrains): cover prompt focus outline 2026-07-05 23:22:15 -04:00
kirillk 819cef526d feat(jetbrains): outline focused prompt input 2026-07-05 21:26:45 -04:00
kirillk dd0a6323fb feat(jetbrains): highlight focused prompt input 2026-07-05 21:12:21 -04:00
kirillk e79f4a5582 Merge remote-tracking branch 'origin/main' into massive-fontina 2026-07-05 20:54:59 -04:00
kirillk bf41013402 fix(jetbrains): simplify prompt toolbar suppression 2026-07-05 20:46:37 -04:00
kirillk 6e388ea23b fix(jetbrains): hide prompt floating toolbar 2026-07-05 13:13:01 -04:00
kirillk 6138b102fb fix(jetbrains): address transcript review feedback 2026-07-05 12:09:33 -04:00
kirillk dafe38fbd0 fix(jetbrains): stabilize task tool body indent 2026-07-04 15:59:50 -04:00
kirillk 8361d246ee fix(jetbrains): render compaction marker without prompt chrome 2026-07-04 15:36:43 -04:00
kirillk 59baa02340 fix(jetbrains): use transcript font for prompt text 2026-07-04 14:03:44 -04:00
kirillk d14412943b fix(jetbrains): tighten task tool coverage 2026-07-04 13:39:42 -04:00
kirillk 30407a3e12 fix(jetbrains): improve prompt picker interactions 2026-07-04 12:07:00 -04:00
kirillk 6469e9c196 fix(jetbrains): make settings list action buttons fully clickable
Hit-testing for inline action cells (Connect/OAuth/Disconnect/Enable)
re-derived cell rectangles by hand, ignoring the horizontal insets the
platform SelectablePanel adds in the New UI. The click target was offset
from the drawn button, so only a small strip responded to clicks.

Read the rectangles back from the actual rendered component tree instead,
giving one source of geometry shared by the provider, agent, and MCP
settings lists.
2026-07-04 11:57:35 -04:00
kirillk eb59ad6b13 fix(jetbrains): balance shell tooltip padding 2026-07-03 22:57:40 -04:00
kirillk 66cef1b662 fix(jetbrains): increase todo checklist padding 2026-07-03 22:47:36 -04:00
kirillk f3c886b3fa fix(jetbrains): avoid blocking prompt mention expansion 2026-07-03 22:22:52 -04:00
kirillk 810c65dcdc Merge branch 'handsomely-aspen' into massive-fontina 2026-07-03 21:54:57 -04:00
kirillk 166fe23ca4 fix(jetbrains): preserve collapsed subagent views 2026-07-03 21:48:54 -04:00
kirillk c37d14da7f refactor(jetbrains): extract markdown projector 2026-07-03 20:51:50 -04:00
kirillk fde3671780 fix(jetbrains): scroll wide markdown tables instead of cropping them
Render markdown tables in their own horizontal scroll block, mirroring
the code-block pattern, so a wide table shrinks to the panel width and
scrolls horizontally instead of stretching the message and cropping
content. Derive the pane height from the rendered view's preferred size
so the table is not clipped vertically.
2026-07-03 20:11:29 -04:00
Catriel Müller 10951d68ea Merge remote-tracking branch 'origin/main' into fix/cli-cloud-fork-session-import
# Conflicts:
#	packages/opencode/src/cli/cmd/tui/thread.ts
#	packages/opencode/src/kilocode/cli/cmd/tui/thread.ts
#	packages/opencode/test/kilocode/cli/tui/thread.test.ts
2026-07-03 18:05:01 -03:00
Catriel Müller 2be834fbfc refactor(cli): extract vim prompt logic into kilocode mirror
Move the vim modal editing engine and prompt integration out of shared
upstream files and into src/kilocode/ mirrors per the Fork Isolation Rule:

- src/kilocode/cli/cmd/tui/component/prompt/vim.ts (engine, moved)
- src/kilocode/cli/cmd/tui/component/prompt/index.tsx (new mirror with
  useVim, VimModeIndicator, vimToggleCommand)
- test/kilocode/cli/cmd/tui/prompt/vim.test.ts (moved)

The shared prompt/index.tsx now calls into the mirror behind minimal
kilocode_change markers instead of inlining ~200 lines of vim logic.
2026-07-03 17:54:37 -03:00
Catriel Müller 1fc8f066fd Merge pull request #11506 from mvanhorn/fix/11480-tui-live-spent-cost
fix(cli): show live session spend in TUI sidebar during active turn
2026-07-03 16:57:00 -03:00
Catriel Müller da84f24b6d Merge pull request #11559 from IamCoder18/fix/console-profile-external-link-icons
fix(console): show external link icon on profile sidebar shortcuts
2026-07-03 16:56:02 -03:00
Catriel Müller 545fea5a31 Merge branch 'main' into trusting-property 2026-07-03 14:21:09 -03:00
Catriel Müller 419ff008ef Merge pull request #11564 from IamCoder18/superficial-chimpanzee
feat(kilo-console): align fonts with Kilo Cloud
2026-07-03 14:20:24 -03:00
kilo-maintainer[bot] 4ed43ab7c5 release: v7.4.1 2026-07-03 17:10:11 +00:00
Catriel Müller 79f5ab59c5 Merge branch 'main' into superficial-chimpanzee 2026-07-03 14:01:18 -03:00
Trim21 e79b75126c fix(vscode): include kilo-sandbox-mutation-worker.js in extension bundle (#11926)
* fix(vscode): include kilo-sandbox-mutation-worker.js in extension bundle

The release build script (packages/kilo-vscode/script/build.ts) was
missing the copyKiloSandboxWorker call, causing the sandbox mutation
worker file to be absent from .vsix packages. All sandbox-enclosed file
operations (write, copy, rename, chmod, etc.) would fail with a
"Module not found" error because the kilo binary could not spawn the
required worker process.

Closes #11925

* chore(vscode): fix import formatting

---------

Co-authored-by: marius-kilocode <marius@kilocode.ai>
2026-07-03 16:48:40 +00:00
Marius 771f8c880c Merge pull request #11923 from Kilo-Org/fix/11903-subagent-permission-hang
fix(cli): fail headless subagent permission asks instead of hanging
2026-07-03 18:38:10 +02:00
marius-kilocode b05cbcaca2 fix(cli): reject subagent asks over the wire for daemon and attach runs 2026-07-03 18:04:55 +02:00
Marius 2799ba638f Merge pull request #11924 from Kilo-Org/fix-worktree-reasoning-selector
fix(agent-manager): apply reasoning-variant and mode picks in worktree dialog
2026-07-03 17:51:26 +02:00
marius-kilocode 1755f567fc fix(agent-manager): apply reasoning-variant and mode picks in worktree dialog
The reasoning-variant and mode pickers in the New Worktree dialog portaled
their popover content to <body>, where the dialog's full-screen modal overlay
(z-index 50, pointer-events auto) intercepted pointer events before the
option onClick fired. Selecting a variant dismissed the popover via the
overlay without applying the choice, so the trigger label reverted to the
previous value.

The model picker already avoided this with portal={false} (09f0156bfc).
Forward the same portal prop through ThinkingSelectorBase and
ModeSwitcherBase and pass portal={false} from NewWorktreeDialog so all
three pickers render inline within the dialog content, above the overlay.

Reproduced live in the isolated VS Code self-test: before the fix a real
pointer click on a variant option timed out with 'dialog-overlay ...
intercepts pointer events' and the label stayed unchanged; after the fix
the popover nests inside [dialog] and clicking a variant applies in both
directions with no console errors.
2026-07-03 17:45:48 +02:00
marius-kilocode fda4e1756b fix(cli): fail headless subagent permission asks instead of hanging 2026-07-03 17:39:52 +02:00
Marius 06af466486 Merge pull request #11918 from mjnaderi/feat/prompt-input-rtl-support
feat(vscode): support bidirectional prompt input
2026-07-03 17:28:34 +02:00