Repository navigation
Conversation
rohita5l
reviewed
Oct 1, 2026
rohita5l
left a comment
Collaborator
There was a problem hiding this comment.
Thanks for the PR. Launch works and the Kilo module is a clean copy of the OpenCode one, but the PR only covers configure and launch. The main gaps are MCP not connected (Kilo sessions get no MCP servers because of KILO_CONFIG isolation) and ug status showing no models. The inline comments also cover a small OpenCode default leaking into Kilo, plus test and comment cleanups.
Locally, all 61 tests in test_agent_kilo.py pass. test_cli.py, test_agents_init.py and test_agent_opencode.py show the same failures on this branch as on its base commit, so the PR doesn't add any.
djcelis
force-pushed
the
add-kilo-agent
branch
2 times, most recently
from
October 2, 2026 15:38
2283133 to
b942310
Compare
Author
Kilo (@kilocode/cli) is an OpenCode fork sharing config schema, provider model, and plugin system. This adds a kilo agent module that reuses the shared opencode_models discovery, isolates config via KILO_CONFIG, gates on kilo >= 7.3.1, and spawns via subprocess_cross_os.popen for Windows npm-binary resolution.
…w models
Isolation (core fix): switch Kilo config isolation from KILO_CONFIG to
XDG_CONFIG_HOME. Re-probing kilo 7.3.1 showed KILO_CONFIG is NOT exclusive —
it merely merges on top of the user's real ~/.config/kilo. XDG_CONFIG_HOME is
true isolation: Kilo reads only $XDG_CONFIG_HOME/kilo/, ignores the user's
real config, still discovers the plugin, and fires the config() hook (token
refresh works). Verified on 7.3.1/7.4.1.
MCP: wire Kilo into mcp.py (import, MCP_CLIENTS table, configure/remove
dispatch, _MCP_CLIENT_MODULES, and _managed_mcp_entry), mirroring OpenCode.
Live testing then surfaced two further gaps, now fixed:
- `ug mcp list` ran `kilo mcp list` without the isolation env, so Kilo read
the empty ~/.config/kilo and every server showed "missing". Added
_kilo_cli_env() pinning XDG_CONFIG_HOME (mirrors _gemini_cli_env).
- _parse_health_mcp_list did not understand Kilo's `● ✓ name connected`
tree output. Added a Kilo-scoped _parse_kilo_mcp_list. (The same gap
affects OpenCode today; should be tracked as a separate follow-up.)
Verified end-to-end: `ug mcp add --agents kilo` registers servers in the
isolated config, `ug mcp list --agents kilo` reports connected/failed
status, and a `ug kilo run` invoked system.ai.dbsql.execute_sql successfully.
Status: _status_models/_status_default_model surface Kilo's models,
which it shares with OpenCode under opencode_models.
Cleanups: collapse the duplicate KILO_CONFIG_INNER_DIR constant; remove the
dead opencode_default_model branch in default_model(); add an actionable hint
when no models are discovered; add Kilo to the --agent help text, help
command order, and token-refresh launch note. Remove inaccurate comments;
correct the version-floor comment.
Tests: assert XDG isolation (XDG_CONFIG_HOME set; KILO_CONFIG not set), add
Kilo MCP dispatch + status-env + tree-parse coverage, fix the shared
base_urls key to "opencode", use 7.3.1 version, drop the oc_mod
alias, and correct the default-model test to the bucketed-derivation behavior.
rohita5l
force-pushed
the
add-kilo-agent
branch
from
October 8, 2026 14:47
b942310 to
45c82f9
Compare
Pzharyuk
pushed a commit
to Pzharyuk/unity-gateway
that referenced
this pull request
Oct 8, 2026
`Windows installation tests` logs in to JFrog with a GitHub OIDC token (`id-token: write`). Pull requests from forks never get one, so the job failed on every fork PR (for example databricks#901: "Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable"). - Add the same fork guard the other credentialed integration jobs use. - Make the fork rule explicit in `tests/test_integration_contract.py`. It lists `SKIPPED_ON_FORK_PRS` and derives each job's real fork behavior from the workflow, through its own guard or a skipped `needs`. The test fails if: - the list drifts from the workflow; - any job that runs on forks uses secrets or OIDC. Dropping the new guard fails the test. Follow-up from the same thread, not in this PR: a way for fork PRs to run the credentialed suites after a team member approves or adds a label. This pull request and its description were written by Isaac. Co-authored-by: Isaac <no-reply@databricks.com>
rohita5l
enabled auto-merge
October 9, 2026 00:48
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.
Adds Kilo CLI (
@kilocode/cli) as a first-class coding agent, run withug kiloand configurable withug configure --agent kilo. Kilo is a fork of OpenCode (already supported), so this reuses the existing discovery pipeline and mirrorsagents/opencode.py.Couple notes:
opencode_models7.3.1, tested empirically -7.2.1does not fire the plugin hook,7.2.25works, but I decided to skip the7.2.xseries because it looks like a noisy patch series.KILO_CONFIGso a user's own Kilo config never bleeds into aug-launched session.Verification done:
ug configure --agent kilo, followed byug kilowhich picks up the workspace url, connects to unity gateway and launches kilo ("Launching Kilo with Unity Gateway" -> "Starting Kilo").tests/test_agent_kilo.py— 61 passed.