Commit Graph

823 Commits

Author SHA1 Message Date
kilo-maintainer[bot] 67cd629f3c release: v7.4.23 2026-08-20 12:26:16 +00:00
marius-kilocode 08c81b42c9 chore: refresh architecture ratchet baseline 2026-08-19 16:30:30 +02:00
marius-kilocode b8984e468d refactor(cli): scope watcher state per instance 2026-08-19 16:21:31 +02:00
marius-kilocode 300d862512 Merge remote-tracking branch 'origin/main' into refactor-notebook-service-retry
# Conflicts:
#	script/architecture-allowlist.json
2026-08-19 14:33:03 +02:00
Marius dbd08c5d57 Merge pull request #13237 from Kilo-Org/refactor-agent-manager-service
refactor(agent-manager): scope pending request state
2026-08-19 14:32:02 +02:00
Marius a59260b667 Merge pull request #13236 from Kilo-Org/refactor-interactive-terminal-service
fix(cli): scope interactive terminal state
2026-08-19 14:31:05 +02:00
marius-kilocode 66adb2e5de merge: update notebook branch with main 2026-08-19 13:45:56 +02:00
marius-kilocode b344f77423 chore(cli): remove stale notebook allowlist entry 2026-08-19 13:22:07 +02:00
marius-kilocode 41d88eb8f4 refactor(agent-manager): scope pending request state 2026-08-19 13:20:06 +02:00
marius-kilocode 5cfa60c06f chore(cli): restore notebook architecture allowlist 2026-08-19 13:19:05 +02:00
marius-kilocode dd8947abb5 fix(cli): scope interactive terminal state 2026-08-19 13:14:08 +02:00
marius-kilocode 0a1bf48b7a refactor(cli): scope notebook state by directory 2026-08-19 13:13:46 +02:00
marius-kilocode ec37e1ef59 refactor(cli): scope project ID cache lifecycle 2026-08-19 13:02:28 +02:00
Igor Šćekić 90a93a7aa2 feat(opencode): link sessions to their pull request (#13137)
* feat(opencode): add PR link detect and parse helpers

detectPrLink runs gh pr view, parsePrUrl accepts GitHub and GitLab PR
URLs, and a Storage helper holds the manual override.

* feat(opencode): add kilo pr link, unlink, and status commands

kilo pr becomes a parent command with checkout preserved. link and
unlink write the Storage override; the next heartbeat persists it.

* feat(opencode): advertise prLink on the heartbeat and ingest it

getSessions resolves the Storage override, cleared, or detected link,
puts prLink on the heartbeat, and syncs the session_pr_link item.

* fix(opencode): encode worktree in pr link override storage key

The manual override key used the raw absolute worktree path. Storage
builds the file with path.join, so a Windows drive colon made an invalid
filename and kilo pr link failed. Encode the worktree so the key is one
valid path segment on both platforms.

* test(opencode): cover kilo pr status outputs

Extract the status handler body so it is testable, then assert the four
outputs: stored link, cleared, detected, and no link. Split captured
output on os.EOL so the test passes on Windows.

* refactor(opencode): remove dead pr-link code found in simplify pass

detectPrLink now reuses parsePrUrl instead of hand-parsing the URL and
number, drop the dead github.com special case, and inline the
prLinkTripleKey helper.

* fix(opencode): clear pr-link dedupe map on session delete

* docs(kilo-docs): regenerate CLI reference for kilo pr subcommands

* chore: add session-pr-link changeset and bump facade allowlist
2026-08-16 09:33:14 +01:00
Yury Zialionka 8aff7ade1b Merge origin/main: reconcile with independently landed #13091 and #13113
Main landed the same httpapi design (git-opt-in fixtures, --shard flag)
and the same permission.create readiness wait. Resolution adopts main's
implementations and keeps this branch's unique work on top: the
--shards child-process orchestrator (adapted to main's zero-based
shard indexing), scenario retry with backoff gated on state-reset,
project.update isolation, and exerciser env stripping. Removed the
superseded agentsReady/probe machinery and this branch's duplicate
round-robin filter (double-sharding silently dropped scenarios).

Validated: coverage, auth, and 4-shard effect passes all green
(315 checks, 0 failures).
2026-08-13 21:42:43 -06:00
kilo-maintainer[bot] 67cda85c94 release: v7.4.22 2026-08-13 22:26:16 +00:00
Yury Zialionka 2aa10017c0 refactor(tool): resolve websearch config via Env.Service instead of process.env
Closes #12996. Part of #12986.

- websearch resolves KILO_WEBSEARCH_PROVIDER, EXA_API_KEY and
  PARALLEL_API_KEY through Env.Service in the tool body and threads
  them into the pure helpers; selectWebSearchProvider takes the
  override as a parameter.
- mcp-websearch no longer snapshots EXA_API_KEY into a module-level
  URL at import time; exaUrl(key) derives it per call, so BYOK keys
  set or cleared after startup are honored.
- Tool registry provides Env.node.
- kilo-tool-process-env allowlist is now empty; check:architecture
  drops from 15 to 9 classified ratchet sites.
- Transform/model tests confirmed running in-process via plain
  bun test (455 tests, <1s), the other half of #12996.

warpgrep.ts, the third file in the original ratchet, was already
removed on main.
2026-08-13 13:52:17 -06:00
Johnny Eric Amancio 5c97b481d2 refactor(cli): remove built-in WarpGrep (#13084) 2026-08-12 15:29:42 +02:00
Johnny Eric Amancio 5119e565e2 Merge remote-tracking branch 'origin/johnnyeric/kilo-opencode-v1.18.0' into johnnyeric/kilo-opencode-v1.18.13
# Conflicts:
#	bun.lock
2026-08-11 11:59:05 +02:00
Johnny Eric Amancio fbb52c89d3 Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.18.0 2026-08-11 11:47:51 +02:00
kilo-maintainer[bot] a5aaef74a8 release: v7.4.21 2026-08-11 03:07:28 +00:00
Johnny Eric Amancio 9bab72e5a7 Merge remote-tracking branch 'origin/johnnyeric/kilo-opencode-v1.18.0' into johnnyeric/kilo-opencode-v1.18.13 2026-08-07 16:12:20 +02:00
Johnny Eric Amancio 5065743896 Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.18.0 2026-08-07 14:55:06 +02:00
Johnny Eric Amancio b6505b164b Merge remote-tracking branch 'origin/johnnyeric/kilo-opencode-v1.18.0' into johnnyeric/kilo-opencode-v1.18.13 2026-08-07 13:09:21 +02:00
marius-kilocode c49c8c9f9d fix(ci): widen handler glob and match spawnSync 2026-08-07 13:09:19 +02:00
marius-kilocode c5608d0b7b fix(ci): address review feedback on architecture check 2026-08-07 12:59:44 +02:00
marius-kilocode 73be1056c2 ci: add domain architecture and state ratchet guards 2026-08-07 12:47:57 +02:00
Johnny Eric Amancio 7f1b402587 chore(upstream): preserve kilo web command removal 2026-08-07 12:03:15 +02:00
Johnny Eric Amancio d99467fa02 resolve merge conflicts 2026-08-06 14:10:41 +02:00
Johnny Eric Amancio 3003a302bc fix: address pull request review comments 2026-08-06 12:37:02 +02:00
Johnny Eric Amancio af6d1ded6d fix: address second-round merge review findings 2026-08-06 01:06:52 +02:00
Johnny Eric Amancio cbbbd7217f fix: address upstream merge review findings 2026-08-06 00:12:23 +02:00
Johnny Eric Amancio a19cec67f8 fix(upstream): support in-place worktree merges 2026-08-05 23:59:12 +02:00
Johnny Eric Amancio 25f4b58d93 fix: address post-merge validation findings 2026-08-05 21:08:55 +02:00
Johnny Eric Amancio 88083fb5c5 resolve merge conflicts 2026-08-05 16:01:49 +02:00
Johnny Eric Amancio 76783409bf refactor: kilo compat for v1.18.0 2026-08-05 11:59:08 +02:00
Johnny Eric Amancio 10a3eec7bd fix: address upstream merge regressions 2026-08-04 18:14:39 +02:00
Johnny Eric Amancio 6c138449d5 Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.17.13
# Conflicts:
#	package.json
#	packages/core/schema.json
#	packages/core/src/command.ts
#	packages/core/src/config/plugin/command.ts
#	packages/core/src/database/schema.gen.ts
#	packages/core/src/session/sql.ts
#	packages/core/src/v1/session.ts
#	packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/agentmanager/full-screen-diff-with-changes-chromium-linux.png
#	packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/labs-tool-call-lab/search-previews-chromium-linux.png
#	packages/opencode/src/command/index.ts
#	packages/opencode/test/server/httpapi-ui.test.ts
#	packages/sdk/js/src/v2/gen/types.gen.ts
#	packages/sdk/openapi.json
#	packages/tui/src/routes/session/index.tsx
2026-08-04 12:57:20 +02:00
kilo-maintainer[bot] 62baedd258 release: v7.4.20 2026-08-04 10:23:57 +00:00
kilo-maintainer[bot] 20aead0d87 release: v7.4.19 2026-08-04 07:56:10 +00:00
kilo-maintainer[bot] f00da9a75b release: v7.4.18 2026-07-31 19:59:08 +00:00
Johnny Amancio a606a91e69 fix: restore Kilo deltas the merge dropped
- tool-input delta/end no longer recreate a settled call as a pending part
- outputTokenMax is back in overflow accounting, with RuntimeFlags rewired
- MCP server instructions reach the system prompt again (sys.mcp call site)
- session revert decodes stored messages through the Kilo normalize boundary
- shell tool titles runs with the model description and keeps it in metadata
- subdirectory snapshots drop newly ignored files: the ignore check and the
  index removal ran from the instance dir, but candidates are worktree
  relative
- customize-opencode builtin stays unregistered after the boot.ts rename
- --auto is interpreted in one place; the flag beside it now covers only
  --yolo and --dangerously-skip-permissions
- --cloud-fork works again, validateSession had landed before the import
- TUI block tool skips the empty title row, opencode catalog gate reads
  credentials per reload, TUI worker logs crashes, Snowflake OAuth uses the
  Kilo page, annotations guard covers the shared packages
- tests: startRun spawned without the solid preload so every run under it
  died on the JSX runtime; two upstream tests get a permission fixture since
  headless auto-rejects bash; one expected a single error record where Kilo
  emits two, as it did before this merge
- changeset for the range, help snapshot, llmgateway indentation
2026-07-30 19:52:20 +02:00
Johnny Amancio db000fef1c Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.17.13
# Conflicts:
#	bun.lock
#	packages/core/src/v1/permission.ts
#	packages/opencode/src/acp/permission.ts
#	packages/opencode/src/cli/cmd/tui.ts
#	packages/opencode/src/skill/discovery.ts
#	packages/opencode/src/skill/index.ts
#	packages/opencode/test/cli/run/run-process.test.ts
#	packages/opencode/test/skill/discovery.test.ts
#	packages/opencode/test/tool/registry.test.ts
#	packages/sdk/openapi.json
#	packages/server/src/handlers/pty.ts
2026-07-30 16:32:39 +02:00
Johnny Amancio 61b2f1d0cb fix: repair generated artifacts and branding after the v1.17.13 merge
Generation was failing. Upstream added a guard in this range that rejects
duplicate session event variants, and Kilo's tool-content codec on the shared
event schema was tripping it, so openapi.json and the SDK were stale and a temp
packages/sdk/js/openapi.json got committed by accident.

Move the codec off the event schema into core/src/kilocode/event-storage.ts,
keyed by event type and applied only at the SQL boundary. Session events are on
the wire now (SessionEvent.Durable backs /api/session/{id}/history), so a
transform there forked the generated API. Shipped readers still parse old rows
and the wire contract goes back to upstream's. Drops the consumer-side
normalizers in the TUI and sync-v2 that existed only to undo the widening.

Also: restore the Kilo HttpApi title and a few branding strings, balance five
kilocode_change markers, drop a duplicate TUI palette entry, and teach
check-model-tool-network about the LayerNode wiring that replaced
Layer.provide(ToolNetwork.httpLayer).
2026-07-30 16:20:25 +02:00
Johnny Amancio 518501a994 resolve merge conflicts 2026-07-30 14:24:24 +02:00
kilo-maintainer[bot] a0364858a6 release: v7.4.17 2026-07-29 11:29:05 +00:00
Johnny Amancio 898f0dc40b refactor: kilo compat for v1.17.13 2026-07-29 02:06:01 +02:00
marius-kilocode 28f2abe5e9 Merge remote-tracking branch 'origin/main' into marius-kilocode/kilo-opencode-v1.17.9 2026-07-27 08:11:14 +02:00
marius-kilocode c8abc86fe7 fix: align merged CI contracts 2026-07-27 08:10:52 +02:00
Igor Šćekić a19d44c3ef Advertise the instance from enableRemote and report attention status on the heartbeat (#12532)
* fix(cli): advertise the instance from enableRemote so /remote registers as a spawn target

Enabling the remote relay from the TUI `/remote` slash command connected the
socket and mirrored sessions, but never advertised the instance, so the CLI
never appeared as a spawn target in the mobile "Run on" picker. Only the
explicit `kilo remote` command called setInstanceAdvertisement.

The advertisement now runs on every successful enableRemote() entry, before the
already-connected and coalescing early returns. That ordering matters: bootstrap
auto-enable frequently connects first, so `/remote` usually hits
`if (remote) return` and an advertisement placed in the connection-setup body
would leave the defect unfixed in the common case. `ingestDisabled` returns
before the advertisement and stays unadvertised.

The ensure helper is a no-op when an advertisement is already set, so it fires no
extra heartbeat, while explicit setInstanceAdvertisement keeps its existing
replace semantics. buildInstanceAdvertisement moves to a shared module so the
command path and the enable path derive it identically.

* fix(cli): report pending question and permission on the session heartbeat

The heartbeat built each session's status from SessionStatus.Service, whose
union is idle/retry/busy/offline and which never consults Question.Service or
Permission.Service. deriveStatus() already did consult both, but only fed the
ingest session_status sync. So a session genuinely blocked on a question was
advertised as busy on the heartbeat, and the mobile app — which takes live row
status from the heartbeat — showed no needs-input badge.

Extract the precedence (permission, then question, then SessionStatus) into a
shared helper used by both deriveStatus and the heartbeat, so the two channels
cannot drift.

The heartbeat runs on a ~10s timer across every session, and deriveStatus makes
service calls per session, so the permission and question lists are fetched once
per tick and indexed by session id rather than queried per session. A test pins
the call count.

Behaviour note beyond the strict fix: sharing the derivation also means a
SessionStatus of offline now reports as retry on the wire, matching what
deriveStatus has always sent to ingest. Nothing consumes offline from the
heartbeat — the transport forwards only idle and busy, and the mobile row treats
both as non-attention — so the effect is that the two channels now agree. The
detach fence test is parameterised accordingly; its assertion that the status
clears on detach is unchanged.

* chore(cli): widen the promise-facade allowlist for the heartbeat attention tests

The DEF-3 heartbeat tests raise and reply to real Question and Permission
requests through the global AppRuntime, which took kilo-sessions.test.ts from 4
classified references to 29 and failed the allowlist check.

Bumping the count rather than restructuring the tests is deliberate: the
heartbeat resolves attention status from the global Question.Service and
Permission.Service, so asserting it requires driving those same services.
Scoped layers cannot express that — the global-runtime coupling is the thing
under test — and it is the same integration pattern this entry already
sanctioned for the detach fence. The reason string records that.
2026-07-25 15:45:43 +02:00