Skip to content

feat: add Kilo Code support#512

Merged
safishamsi merged 2 commits into
Graphify-Labs:v8from
alacasse:feat/kilo-support
Jun 1, 2026
Merged

feat: add Kilo Code support#512
safishamsi merged 2 commits into
Graphify-Labs:v8from
alacasse:feat/kilo-support

Conversation

@alacasse

Copy link
Copy Markdown
Contributor

Closes #477

Added support for Kilo Code.

Summary

  • Added Kilo Code as a supported platform in README and install scripts
  • Added Kilo-specific skill and command files
  • Added install/uninstall logic including plugin registration
  • Extended tests for install flow, command detection, and registration
  • Updated metadata for Kilo integration

@iwconfig

Copy link
Copy Markdown

This PR currently has 121 commits, which makes it vastly overscoped relative to its stated purpose. It looks like your branch accidentally included a lot of upstream history from v4. Additionally, the default branch is now v5. Your branch is stale.

Since all of your actual work is contained in a single commit (090aacb), the easiest way to fix this branch without opening a new PR is to reset it to v5 and cherry-pick your specific commit.

To do this, run the following commands (which use upstream to fetch directly from the main repository):

1. Add the main repository as upstream (if you haven't already):

git remote add upstream https://github.com/safishamsi/graphify.git

2. Fetch the latest branches from upstream:

git fetch upstream

3. Checkout your branch:

git checkout feat/kilo-support

4. Reset your branch to match the latest v5:
(This will safely wipe the 120+ extraneous commits from your branch history and align it with our new base)

git reset --hard upstream/v5

5. Cherry-pick your work onto the clean branch:

git cherry-pick 090aacba28ef80fbc4895a79013144aafd9328f1

6. Resolve conflicts (Only if the cherry-pick pauses):
Because you originally wrote this against v4, Git might pause if the code has changed in v5. If it does, resolve the conflicts in your editor, then run:

git add . # or whichever files had conflicts
git cherry-pick --continue

7. Force push to update THIS existing PR:

git push --force-with-lease origin feat/kilo-support

@alacasse
alacasse force-pushed the feat/kilo-support branch from 090aacb to 32320f3 Compare April 25, 2026 15:36
@alacasse
alacasse changed the base branch from v4 to v5 April 25, 2026 15:36
@Qodo-Free-For-OSS

Copy link
Copy Markdown

Hi, If a project has .kilo/kilo.jsonc, graphify kilo install will read it (after stripping comments) and then overwrite it using json.dumps, permanently deleting user comments and JSONC formatting.

Severity: action required | Category: correctness

How to fix: Avoid rewriting JSONC files

Agent prompt to fix - you can give this to your LLM of choice:

Issue description

When .kilo/kilo.jsonc exists, install/uninstall rewrites it as plain JSON via json.dumps(...), deleting comments and original formatting.

Issue Context

This is user-data loss. The code intentionally supports .jsonc (commented config), so it must not destroy comments.

Fix Focus Areas

  • graphify/main.py[783-813]
    • Change the write strategy when config_file.suffix == '.jsonc'.
    • Options (pick one):
      • Prefer writing/maintaining .kilo/kilo.json for automated edits and leave .jsonc untouched.
      • Or implement a non-destructive JSONC edit approach (preserve original raw text and only inject the plugin entry without removing comments).
  • graphify/main.py[816-836]
    • Apply the same non-destructive approach to uninstall (do not rewrite .jsonc as JSON).

Found by Qodo code review

@alacasse
alacasse force-pushed the feat/kilo-support branch 2 times, most recently from 86b55ca to 506fe9f Compare May 1, 2026 13:17
@alacasse
alacasse changed the base branch from v5 to v7 May 7, 2026 19:48
@metheofanis

Copy link
Copy Markdown

Is there any progress?

@alacasse

Copy link
Copy Markdown
Contributor Author

Is there any progress?

This branch now merges into V8, it should be possible to merge.
The default branch keeps changing, it's a moving target.

@iwconfig

Copy link
Copy Markdown

This branch now merges into V8, it should be possible to merge.

unfortunately you've included the upstream history again. As you can see this PR contains 86 commits, many of which do not belong to this PR.

And also, the PR is stale again. It points to v7, not v8. You must rebase your branch, or cherry-pick the commits like i explained earlier. Do not merge upstream changes. It clutters the PR diff.

The default branch keeps changing, it's a moving target.

Yeah, I must say it's a weird way of doing git for a fast-moving AI-driven project like this. For a mature, slow-moving project it's fine i think.

@alacasse
alacasse force-pushed the feat/kilo-support branch from ea21863 to 392b583 Compare May 24, 2026 13:53
@alacasse
alacasse changed the base branch from v7 to v8 May 24, 2026 13:53
@alacasse
alacasse force-pushed the feat/kilo-support branch from 392b583 to 98acc6f Compare May 24, 2026 16:23
@alacasse

Copy link
Copy Markdown
Contributor Author

This branch now merges into V8, it should be possible to merge.

unfortunately you've included the upstream history again. As you can see this PR contains 86 commits, many of which do not belong to this PR.

And also, the PR is stale again. It points to v7, not v8. You must rebase your branch, or cherry-pick the commits like i explained earlier. Do not merge upstream changes. It clutters the PR diff.

The default branch keeps changing, it's a moving target.

Yeah, I must say it's a weird way of doing git for a fast-moving AI-driven project like this. For a mature, slow-moving project it's fine i think.

Thank you.
I just fixed it all, it's for now without conflict. I hope it will be merged soon.

@alacasse

Copy link
Copy Markdown
Contributor Author

Please merge this, each time there is a change in the project, the version changes and we have a conflict.
Or better, please change the versioning workflow or this PR will still be here in one year and I'd have spent 100 times how long it did take to write the code.

alacasse added 2 commits June 1, 2026 10:37
Integrate Kilo installation, command wiring, and plugin registration while preserving existing user-authored JSONC comments and formatting. This keeps Kilo support compatible with v5 without destructive config rewrites.
…-kilo.md

test: add test for Kilo skill to avoid double-quoted Python f-string dict keys
@alacasse
alacasse force-pushed the feat/kilo-support branch from 0f84aef to 3310c9a Compare June 1, 2026 14:48
@safishamsi
safishamsi merged commit a8005c2 into Graphify-Labs:v8 Jun 1, 2026
@safishamsi

Copy link
Copy Markdown
Collaborator

Merged 🎉 Thanks for the patience @alacasse - I know the rebase saga was painful, and you cleaned it up properly: 2 commits, rebased onto latest v8, no clutter.

Also verified the JSONC fix resolves the data-loss flag - existing .kilo/kilo.jsonc is read but never rewritten (plugin registration goes to kilo.json), so user comments are preserved. Ran the full suite (1525 passed) plus an install/uninstall smoke test before merging.

Point taken on the versioning friction - the frequent version bumps on the default branch do make long-lived PRs hard to keep current. Appreciate you sticking with it.

@alacasse

alacasse commented Jun 1, 2026

Copy link
Copy Markdown
Contributor Author

Thank you @safishamsi! I'm glad this is merged and that people are going to be able to use it!

That said I was looking at the main.py installer and I think it's doing a lot.

I'd like to help out to split it and make it more maintainable. Would you find this helpful? I'd work on it in multiple passes as to not introduce too many changes at once. I'd provide a plan before working on it.

Cheers!

@safishamsi

safishamsi commented Jun 1, 2026 via email

Copy link
Copy Markdown
Collaborator

safishamsi added a commit that referenced this pull request Jun 1, 2026
…1104)

tree-sitter-dm (BYOND DreamMaker) publishes only a Windows wheel, so on
Linux/macOS uv/pip compiled it from source and aborted the entire
`uv tool install graphifyy` when a C toolchain or python3-dev was missing.
It is the only core grammar lacking Linux/Mac wheels. Move it from core
dependencies to an optional `dm` extra (also in `all`); the default install
now needs no compiler. extract_dm already imports the grammar lazily with a
graceful fallback, and .dmi/.dmm/.dmf use no tree-sitter, so only .dm/.dme
AST parsing is gated behind the extra.

Also: guard the .dm grammar tests with pytest.importorskip so a plain
`uv sync` (no extras) doesn't hard-fail; bump to 0.8.28 with a changelog
upgrade note; switch the README extras table + type notes from pip to
`uv tool install` (uv is the recommended installer, and pip-into-a-uv-tool-env
is the exact ModuleNotFoundError the README already warns about). 0.8.28 also
ships Kilo Code (#512) and the Dart parser modernization (#1098).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@alacasse
alacasse deleted the feat/kilo-support branch June 19, 2026 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for Kilo Code

5 participants