sync to main - #1
Open
darkogj wants to merge 5860 commits into
Open
Conversation
chore(jetbrains): bump CLI pin to v7.4.15
* feat(cli): accept mobile file attachments in remote sessions The mobile client uploads each attachment to R2 and sends a first-class FilePartInput with a server-issued <uuid>.<ext> basename. The CLI fetches the file over HTTPS, re-emits it as a data: URL for text / image / PDF, or writes it to a per-session scratch directory for generic binaries so the agent's tools can read it. - Fetches are HTTPS-only, reject redirects, never forward credentials, are bounded to 5 MB + 1 byte (partial deleted on overflow), and time out. - Any per-attachment failure becomes an explanatory text part so the rest of the prompt still runs; the send_message ACK is unaffected because materialization happens inside the long-running dispatch before prompt(). - Scratch directory (0700 / files 0600) lives under Global.Path.tmp and is removed on session deletion and sender dispose. Basenames derive from the attachment id + validated extension, never the client-supplied filename. - The relay heartbeat now advertises capabilities.attachments so the mobile app only enables attachments for CLIs that support them. * fix(cli): secure remote attachment materialization * chore(cli): remove redundant change markers * fix(cli): coordinate remote attachment lifetime * fix(cli): fail closed during attachment cleanup * fix(cli): track idle attachment cleanup
fix(cli): ignore late tool input events
…ompaction Compaction writes the output budget into agent.options.maxOutputTokens. LLMRequestPrep.prepare merges agent.options into providerOptions, and the AI SDK serializes it verbatim into the request body; strict OpenAI-compatible upstreams reject it with 'Unsupported parameter(s): maxOutputTokens'. Strip the injection site. The cap is still enforced through two independent paths: the constrained model passed downstream and the llm.ts re-cap on prepared.params.maxOutputTokens.
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
* feat(vscode): add searchable session tab switcher * Add screenshot * fix(vscode): label search popover dialogs * fix(vscode): select first result on Enter in session tab switcher * fix(ui): wrap kilocode_change marker around Enter fallback block --------- Co-authored-by: marius-kilocode <marius@kilocode.ai>
* feat(opencode): record per-step token throughput metrics Capture prompt-processing and text-generation tokens/sec on every StepFinishPart. The metrics helper prefers provider-reported rates from llama.cpp / vLLM timings and falls back to wall-clock computation. A new kilocode tui usage route renders PP/TG inline. chore(sdk): regenerate types for StepFinishPart.metrics feat(tui): render PP/TG in sidebar usage panel feat(vscode): per-message and aggregated token throughput display Surface throughput on each AssistantMessage badge (behind the showTokenThroughput toggle) and as a compact PP/TG row in the expanded TaskHeader. Adds session helpers, i18n entries in 20 locales, and StepFinishPart.metrics to extension/webview messages. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * fix(vscode): wire token throughput toggle and drop unreachable provider branch - Replace the dead sendThroughputSetting() private with the shared buildThroughputSettingMessage() helper and add validThroughputSetting to handleUpdateSetting so the showTokenThroughput setting has the same guard as the chat/indexing twins (fixes Knip regression). - Bind the DisplayTab Switch to the local settings draft so the toggle flips on click instead of waiting for a Save round-trip (the user-facing kill switch for #6579). - Narrow StepThroughputMetrics.source to "computed"; backend hard-codes computed metrics today because the upstream AI SDK drops provider timings. Drop the unused provider branches from AssistantMessage and TaskHeader so the rendering code has no dead paths. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * fix(opencode): centralize token throughput labels and tighten type guard - Replace inline PP/TG labels in the CLI sidebar with a throughputLabel constant in model-usage so a future i18n sweep is one file instead of every rendering site. - Tighten isStepMetrics in sidebar-usage back to a real discriminator check after dropping the unreachable "provider" union member. - Drop formatPP/formatTG exports from model-usage since callers already use the shared formatRateValue; mirror the swap in the TUI usage test. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * feat(token-throughput-v2): wire aggregation through DisplayProvider and test computed-only - aggregateMetrics adopts the first non-empty computed sample per field across every step-finish in the session, replacing the dead provider- ranked last-wins strategy that shipped with the unreachable branch. - Share the throughputVisible signal through DisplayProvider so every AssistantMessage and the TaskHeader row react to a single onMount requestThroughputSetting round-trip, instead of each message posting its own handshake. - Drop the unused routes/session/usage.tsx TUI route (no remaining imports) and add the chat-layout badge/header pill styles it was gating on. - Refresh session-utils tests to exercise only source: "computed" samples and follow the new first-wins rule. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * fix(token-throughput-v2): seed settings on hydration, drop dead provider branch Seed the DisplayTab "Show Token Throughput" Switch on initial load by mirroring the throughputSettingLoaded message into settings() (same pattern as chat.shiftTabCyclesVariant). Without this, a persisted-true setting renders unchecked on first open because the Switch was bound to settings()["showTokenThroughput"] but no handler ever populated it. Drop the dead data-source attributes on the per-message and task-header throughput surfaces now that StepThroughputMetrics.source is narrowed to "computed" only — the attribute was always the literal string. Drop the unreachable chat.throughput.badge.provider and .chat.throughput.badge.tooltip.provider i18n keys across all 20 locales. The badges no longer branch on source === "provider" since the provider-source branch is removed (the AI SDK adapter upstream strips llama.cpp timings before they reach providerMetadata). Co-Authored-By: Claude <noreply@anthropic.com> Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * fix(token-throughput-v2): drop PP display until llama.cpp wiring lands PP (prompt-processing rate) has no signal in this build: the AI SDK adapter upstream strips llama.cpp's `prompt_per_second` before it reaches providerMetadata, and computeMetrics has nothing else to derive it from. Ship the TG (text-generation) rate only — the UI no longer renders the "PP –" placeholder that made the feature look broken. CLI sidebar drops the PP row; per-message badge and aggregated header pill both lose the "PP – ·" prefix. The wire shape keeps the optional prompt field so the follow-up that wires the upstream metadataExtractor can populate it without another schema bump. The `throughputLabel` constant on the opencode side and the `formatPP` helper on the webview side are removed; tests that fabricated prompt values are pruned to match. Co-Authored-By: Claude <noreply@anthropic.com> Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * fix(token-throughput-v2): integrate TG into Tokens row, plain-text style The standalone blue pills read as loud for what is secondary session info. Move the aggregated TG into the existing Tokens row as another spanned value (alongside ↑ input, ↑ cache, ↓ output) and restyle the per-message badge as plain text in descriptionForeground so both surfaces match the tokens family. TaskUsage now accepts a `throughput` prop and renders `TG <rate> t/s` inline in the Summary component when the toggle is on. TaskHeader no longer emits a standalone [data-slot="task-header-throughput"] element; its [data-slot="task-header-throughput"] CSS rule is removed. The throughputText / throughputTooltip memos and the unused formatTG import are dropped — the values flow straight into TaskUsage. Co-Authored-By: Claude <noreply@anthropic.com> Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * fix(token-throughput-v2): finish removing memory badge from AssistantMessage The "Merge origin/main into feat/token-throughput-v2" resolution kept the throughput branch's memory-badge code (already removed from main by 28d015f), which broke the kilo-ui-contract test and the i18n-keys test. Drop the dead code: `useMemory`/`MemoryMarkerMeta` imports, `mem`, the `meta`/`recall`/`fmt`/`count`/`items`/`verbose` createMemos, the `tip` function, and the `<Show when={mem.enabled() && recall()}>` block. The file lands at 349 lines (down from 391), matching main + throughput only. Verified locally: - i18n-keys + kilo-ui-contract: 53 pass, 0 fail - Full kilo-vscode suite: failures 138 → 136 (+2 from the two fixes) Co-Authored-By: Claude <noreply@anthropic.com> Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * fix(token-throughput-v2): finish removing memory badge from AssistantMessage Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * formatting fixes Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * fix(token-throughput-v2): address Marius review comments - Rename 'TG' to 'Generation speed' in en.ts and add a 'gauge' icon to packages/kilo-ui so the per-message badge and the Tokens row show '<icon> Generation speed <rate> t/s' instead of the cryptic 'TG <rate>'. Centralize the opencode sidebar label in throughputLabel.generation. - Switch aggregateMetrics (both webview and CLI) to the latest non-empty step-finish snapshot so only the most recent assistant turn's generation rate is shown rather than a session-wide aggregate. Update tests and comments to match. - Translate the throughput strings in no.ts to Norwegian; mirror the new key shape across the other locales (English fallback for untranslated strings). Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * fix(token-throughput-v2): close unclosed CSS block and apply prettier formatting The throughput rebases left a duplicated .vscode-session-turn-diffs selector and let three files drift from prettier's expectations. Fix the CSS unclosed-block (which broke the Storybook preview build) and re-run prettier --write on the touched files. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * ci: re-run after fixing CSS unclosed-block + prettier drift Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> * fix(token-throughput-v2): address kilo-code-bot review Kilo: - CRITICAL: Remove the section === '' guard in KiloProvider.ts that blocked persistence of every top-level setting key. The throughput validator is now redundant, so drop it from throughput-settings.ts. - WARNING: Reset samples in sidebar-usage.tsx when props.session_id changes via a keyed createEffect, so a session switch no longer blends step-finish metrics from the previous session and the array no longer grows without bound across long-lived plugin instances. - WARNING: Pass {speed} to language.t for the TaskUsage throughput tooltip and reuse the shared formatTG helper instead of reformatting the value inline. Drop the dead [data-component='assistant-memory-badge'] rule whose target component no longer exists in the tree. - SUGGESTION: Drop redundant guards in model-usage.ts (undefined check after Number.isFinite, and the ?? 0 on an already-required number field). Use typeof === 'number' for the type narrowing. * feat(token-throughput-v2): weighted per-turn rate, plain text footer Address Marius's review of the throughput UI: Calculation - Persist per-step timing (start/end/elapsed) on step-start and step-finish parts in the session processor. - Add wire schemas in core/src/v1/session.ts and packages/sdk/openapi.json so the new time field round-trips end-to-end. - Replace the last-wins 'latest step rate' snapshot with a weighted aggregate: sum(output + reasoning tokens) / sum(active generation duration) across the turn's step-finish parts. Tool execution and idle waiting are excluded. - The CLI sidebar (model-usage.ts) gains the same weighted semantics when timing is available, falling back to last-wins otherwise so older callers keep working. Presentation - Strip the per-message badge to plain muted text (no icon, no label, no border). The chip in the upstream action row reads as metadata. - Move throughput out of the task header Tokens row so each turn owns its own value (no flicker across turns, single source of truth). - Read the throughput memo from the full message parts in the data store rather than the chunked row slice, so step-finish in any chunk produces the badge. i18n - Replace chat.throughput.speed.{label,row,tooltip,tooltip.missing} with chat.throughput.tooltip and chat.throughput.tooltip.missing across all 19 locale files. Tests - Add messageThroughput and sessionThroughput describe blocks exercising the weighted aggregate across multiple steps. - Cover weighted + fallback paths in the CLI aggregateMetrics tests. * fix(token-throughput-v2): render t/s inline beside copy/feedback buttons Move the throughput badge from a footer line below the assistant message into the copy/feedback action row of the text part that carries the copy button. This avoids the extra vertical space the footer consumed. Also apply prettier formatting to drifted PR files (i18n line wraps, TaskHeader/session-utils/test reflows). * fix(token-throughput-v2): correct changeset package name to @kilocode/cli * fix(token-throughput-v2): annotate step-start time field with kilocode_change --------- Co-authored-by: Thomas Brugman <thomas@kilocode.ai> Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> Co-authored-by: marius-kilocode <marius@kilocode.ai>
…g-error fix(dev): preserve AWS profile credential loading
* feat(vscode): support deleting queued chat messages * feat(vscode): support deleting queued chat messages * fix(ui): add missing deleteQueued i18n key to all locales Add ui.message.deleteQueued to 19 locale files so the shared UI translation test passes. Values left untranslated. * style(vscode): fix prettier formatting in TranscriptRow * Add changeset * fix(ui): translate queued delete label * docs(cli): preserve queue transition rationale * refactor(cli): preserve queue naming from main * test(cli): separate queued deletion coverage * test(cli): await queue events deterministically * docs(cli): clarify queued slot cancellation * Update comment * fix(cli): handle queued deletion race * docs(cli): clarify queued deletion result * Update .changeset/grumpy-cougars-see.md Co-authored-by: hdcode.dev <hdcodedev@gmail.com> * chore: remove kilocode_change markers from i18n dictionary entries * chore(ui): annotate deleteQueued i18n entries with kilocode_change --------- Co-authored-by: Marius <marius@kilocode.ai> Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
feat: reference past chats with @-mentions
fix: show Vercel ID for incomplete responses
* fix: avoid write-on-read mutation of config file * fix: update test description for schema injection case * Apply suggestion from @kilo-code-bot[bot] Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com> * chore: add changeset * fix(cli): preserve as first config property via getInsertionIndex * fix(cli): close missing brackets in config test preventing syntax error * Removed test for preserving environment variables when adding $schema to config. Removed test for preserving environment variables when adding $schema to config. * fix(cli): add ordering assertions to existing injection tests * docs(changeset): clarify per-load churn scope for comment-first JSONC * test(cli): use FSUtil in config schema tests after upstream refactor * chore: combine changeset lines --------- Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
* refactor(vscode): deduplicate config snapshots * test(vscode): stabilize config snapshot settings
* feat(vscode): add Persian (Farsi) UI language
Add Farsi (fa) as a first-class UI locale for the VS Code extension, with
automatic right-to-left layout (the extension already supports RTL via Arabic).
- Register fa in language-utils (Locale union, LOCALES, RTL_LOCALES),
language.tsx (label + merged dict layers), kiloclaw, the extension-host and
cli-backend translation bundles, and both package.json language enums.
- Add complete fa.ts dictionaries for all kilo-vscode i18n namespaces
(sidebar, agent manager, kiloclaw, extension host, autocomplete, cli-backend).
- Extend i18n tests to enforce fa key completeness and placeholder alignment.
Persian language contributed by Babak Safabahar.
* fix(vscode): translate remaining Persian UI strings
* fix(vscode): make question dock and suggestions RTL-aware
The interactive question dock pinned option labels/descriptions to the left
via a hardcoded text-align: left, so they rendered left-aligned even under an
RTL locale (Persian/Arabic). Use logical text-align: start and logical padding
on the header, and add dir=auto to question text, option label/description,
collapsed preview, review rows and the suggestion text so mixed-script content
renders with correct bidi.
Contributed by Babak Safabahar.
* fix(i18n): sync Persian translations with latest en.ts
Resync fa.ts after rebasing on main:
- Translate the 27 newly added English keys into Persian.
- Remove the 23 obsolete memory.* keys that no longer exist in en.ts.
- Translate error.chain.configDirectoryTypo and other single-quoted values
that were previously left in English.
All {{placeholder}} tokens are preserved; brand/technical terms (MCP, VS Code,
Vercel, Kilo Code, TerminalBench) intentionally stay untranslated. The i18n
key-completeness and placeholder-alignment tests pass.
Contributed by Babak Safabahar.
* fix(i18n): sync Persian translations with latest main
Translate the 45 newly added keys after rebasing on upstream main, including
the four session.prompts.* keys requested by the reviewer:
- session.prompts.navLabel -> ناوبر پرامپت
- session.prompts.tick -> پرامپت {{index}} از {{total}}: {{prompt}}
- session.prompts.noAnswer -> هنوز پاسخی وجود ندارد
- session.prompts.queued -> در صف انتظار
All {{placeholder}} tokens preserved; brand terms stay untranslated.
i18n tests pass (32/32). Contributed by Babak Safabahar.
* fix(i18n): improve contextual accuracy of 8 Persian translations
Revise the 8 keys flagged by the reviewer as too literal:
- migration.whatsNew.features.agentManager.title: was 'مدیر عامل'; now 'Agent Manager' (product name, not translated)
- agentManager.dialog.createWorktree: was 'ایجاد درختکاری'; now 'ایجاد Worktree' (git technical term)
- agentManager.dialog.versionHint: 'worktree' kept in English
- sidebar.session.configureWorktree.tooltip: 'worktree'/'Agent Manager' kept in English
- sidebar.session.showChanges.tooltip.empty: 'working tree' kept in English
- diffViewer.source.unstaged.tooltip: 'working tree'/'stage' kept in English
- settings.language.description: phrasing improved
- prompt.placeholder.default: already natural; minor polish
Also sync fa.ts with any additional new keys added since the last commit.
i18n tests pass (32/32). Contributed by Babak Safabahar.
* Update packages/kilo-vscode/webview-ui/src/i18n/fa.ts
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
---------
Co-authored-by: Johnny Eric Amancio <johnnyeric@gmail.com>
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
… readable causes; fix(cli): honest exit codes for headless runs (#12605) * fix(ci): pass --auto to the docs-sync kilo runs and keep full stderr logs Headless kilo run auto-rejects every permission ask it receives, and the GitHub runner has no user config granting bash — so without --auto the docs-sync bot's triage, edit and verify-fix calls were silently crippled whenever the agent reached for a non-allowlisted shell command (CI run 30306629290: 9 rejections, all 11 edit batches failed, exit 0). - Pass --auto immediately after "run" at all three call sites (triage.mjs, edit.mjs, docs-sync.yml Fix verify failures step) - runKilo now always writes the child's full stderr to docs-sync-out/kilo-stderr-<label>.log, on success as well as failure — the blindness that hid the defect - selftest asserts --auto non-vacuously (region-scoped source match + a stub invocation that records argv) and proves the stderr log is written on both the failure and the summary-writing success path * fix(cli): exit nonzero when a headless run auto-rejects or its session errors Non-interactive kilo run reported success for runs that accomplished nothing — a caller cannot distinguish success from a dead run, which is why the docs-sync bot had to stop trusting exit codes entirely. - Plain headless run (neither --auto nor --dangerously-skip-permissions) in which the CLI auto-rejected at least one permission ask now exits non-zero, even when the session still reaches idle afterwards, with the diagnostic: run ended with an auto-rejected permission; pass --auto for autonomous use. Deliberate contract change: any auto-rejected ask means the run was crippled, not successful. - A mid-stream session error now writes its diagnostic to stderr before emitting the json error event, so the cause is visible under --format json as well (the emit-first shape skipped the stderr write). - The old exit-0 contract lock-in test is replaced: its llm.fail fixture never published a consumable session.error, so it locked in a false premise. New tests cover both scenarios in both output formats; happy-path and --format json runs still exit 0 unchanged. * fix(ci): redact secret env values from persisted kilo stderr logs The full-stderr capture added for observability lands in uploaded CI artifacts, which are raw files (GitHub masks secrets in log streams only) on a public repo, and the runner env holds a long-lived KILO_API_KEY. Redact exact values of KEY|TOKEN|SECRET-named env vars (len >= 8) once at capture, so both the console tail and the artifact file are safe. Adds the changeset for the headless exit-code contract change. * fix(ci): redact secrets from persisted kilo stdout and harden redaction The docs-sync workflow uploads docs-sync-out/ as a public 14-day artifact, and kilo stdout was persisted raw there in two more places: triage-raw-*.txt and the edit-log.txt tee. Redact at capture in runKilo for stdout as already done for stderr, and pipe the verify-fix step's kilo stdout through a new line-wise redact-stream.mjs filter before tee. Also harden redactEnvSecrets: widen the name pattern to KEY|TOKEN|SECRET|CREDENTIAL|PASSWORD|ORG_ID|_PAT (KILO_ORG_ID is a repo secret), replace longer values first so a short secret that prefixes a longer one cannot leak the remainder, and document the exact-substring limitation. Selftest gains cases 2e (prefix ordering), 2f (stdout capture), 2g (stream filter) and a non-vacuous exact-line assertion in 2d. * fix(cli): correct the headless-exit changeset's json-format claim The auto-reject path adds a new error event to the --format json stream; only the existing event shapes are unchanged. Also state that the exit-1 rule covers a plain non-interactive --attach run that auto-rejects an ask. * fix(ci): document --auto security trade-off and deferred hardening Update comments in triage.mjs and edit.mjs to accurately describe the security implications of --auto (unrestricted bash for an agent steered by external PR content) and note that a scoped permission.bash map via KILO_CONFIG_CONTENT is the intended hardening, deferred until required shell patterns are stable. * fix(ci): raise docs-sync budgets so the backlog can actually drain --auto fixes the batches the bot attempted; it does not fix the ones it never started. In run 30306629290 (254 PRs collected, 51 docs-worthy), the wall-clock budgets deferred 54 PRs untriaged and 31 unedited without an attempt — 45 of the 60 pending rows on the rolling PR. Triage got 8 of 11 chunks in 35 min; edit got 4 of 11 batches in 50 min. Both are ceilings, not costs. A caught-up run needs ~2 chunks and ~1 batch and finishes in ~25 min, so raising them spends nothing on a normal day and drains the backlog on a bad one. 90/120 covers 20 chunks and 14 batches — 500 triaged and 70 edited PRs against a ~5 docs-worthy/day inflow — inside a 240-minute job timeout. Also strip ANSI CSI sequences in tailText, the shared path both triage and edit route their pending causes through. kilo renders its TUI to stderr, so every "Why" cell on the rolling PR currently reads "^[[0m→ ^[[0mRead packages/..." instead of the diagnostic. The persisted docs-sync-out/kilo-stderr-*.log stays raw as the debugging record. selftest case 2h asserts the pending reason is escape-free and still carries the diagnostic text; case 2i asserts each budget fits at least two units and the job timeout outlasts both, so a future edit cannot silently restore a budget too small to run anything. Both shown failing on the unmodified code first. * fix(ci): keep the docs-sync rebuild authoritative in the fix step The "Fix verify failures" step runs under `set -o pipefail` and the default `bash -e`. Once the CLI half of this PR ships, `kilo run` exits 1 on a mid-stream session error, which aborts the block before the rebuild runs: verify2.log is never written and `Re-verify status` reports VERIFIED=false even when the docs build fine. A transient provider error would flip every rolling docs PR to "Verification: failing". The agent's exit code was never the signal for this step — the rebuild is. Guard the pipeline with `|| echo ::warning::` so a nonzero kilo run is surfaced but the rebuild still decides the outcome. Extends selftest case 2b (which already parses this step) rather than adding a case: the guard must appear between the pipeline's tee and the rebuild, so a comment elsewhere in the block cannot satisfy it. Shown failing with the guard removed. --------- Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…entions Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…est-dependency-versions chore(jetbrains): centralize test dependency versions
…ration Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
docs(kilo-docs): add documentation for referencing past chats via @ mentions
…232-a891-e10de4908e98 docs: document Shift+Tab shortcut for cycling reasoning effort variants
Add feature sections for the mobile apps page covering run-on picker, queued follow-up messages, GitHub PR review, and session cost/model details. Extend the 'What you can do' list with the matching bullets. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Add Settings section covering Auto-Approve, Context, and Skills configuration under Settings → Tools → Kilo Code. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Add mention of JetBrains plugin and its configuration path to the auto-approve settings documentation. Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…a60-b868-22bc0fd1c90c docs(kilo-docs): mention JetBrains in auto-approve settings
docs(kilo-docs): document JetBrains plugin settings
docs: document mobile app remote sessions, PR review, and session cost
…839-b349-1d973a7cd5bb docs(checkpoints): document revert banner warnings and snapshot restoration
* fix(vscode): persist MCP server toggle state * fix(vscode): narrow MCP toggle patch * fix(vscode): persist MCP toggles by config scope * fix(vscode): keep managed MCP toggles runtime-only
…e-sessions docs(agent-manager): document session overview, prompt, and stop
* fix(vscode): improve long-session prompt navigation * fix(vscode): translate prompt navigation in Persian * fix(vscode): complete deferred prompt jumps * chore: update kilo-vscode visual regression baselines --------- Co-authored-by: kilo-maintainer[bot] <kilo-maintainer[bot]@users.noreply.github.com>
…ff-viewer-integration
…r-integration feat(agent-manager): add diff scope selector
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hey! Darko from Kilo here 👋
Saw you forked Kilo, really appreciate for building on top of us.
We are putting together a short Kilo Show segment on why people contribute to open source, and would love to include real perspectives from folks like you.
If you are open to it, would you be up for sharing a quick thought or two on what motivates you (or would motivate you) to contribute to open source?
Also opened a small PR to sync your fork with main in case that is useful.