Hardcodes the list of active and disabled workflows and fails CI when
.github/workflows/ drifts. Wired into check-opencode-annotations so we
don't add a new workflow file for this.
Consolidate workflow disabling: the six workflows previously soft-disabled
via `if: false` / `&& false` are now moved and renamed alongside the
other `.disabled` workflows so the disabling mechanism is consistent.
Reset six workflow files that were soft-disabled via `if: false` / `&& false`
to the last merged upstream (v1.14.29) before moving them to the disabled folder
in a follow-up commit.
Extract duplicated Pierre diff CSS custom properties from multiple
stylesheets into a single shared `.kilo-diff-theme` class in
`webview-ui/src/styles/diff.css`. Apply the class to all diff container
elements (DiffPanel, FullScreenDiffView, DiffVirtualApp, PermissionDiff)
so hover overrides are consistently defined.
This fixes diff hover styling by adding the missing
`--diffs-bg-addition-hover-override` and
`--diffs-bg-deletion-hover-override` variables and eliminates ~130 lines
of duplicated CSS variable declarations across the codebase.
Result of running find-reset-candidates.ts across the repo and hand-
reviewing each candidate.
- mcp/oauth-provider.ts: kilocode_change markers were stale — the
branding (Kilo, kilo.ai) already lives in the translate transforms,
so the marker annotations no longer point at any Kilo-specific code.
- acp/session.ts: matches upstream's import order.
- tui/ui/dialog.tsx: matches upstream's prettier line-wrap on a long
onMouseUp prop.
No behavior change.
Add a new setup script to configure `merge.conflictStyle=zdiff3` locally
within the repository. This ensures that the common ancestor is visible
during merge conflicts, which is required for structural resolution by
`mergiraf` and simplifies manual conflict resolution.
The configuration is applied during `bun install` via the `postinstall`
hook and remains as a fallback for the upstream merge utilities.
Upstream opencode stamps its own version into shared files (the Zed extension toml + any package.json it bumps), which leaves the tree pointing at an upstream release tag that doesn't exist on Kilo's pipeline — Zed download URLs silently 404 as a result.
script/sync-versions.ts rewrites every top-level package.json version and the Zed extension toml (version + 5 download URLs) to a single target in one shot. Defaults to the root package.json version, accepts an explicit version argument, and skips packages/kilo-jetbrains/ which tracks its own cadence.
Documented in .kilo/command/upstream-manual-merge.md as a dedicated step-10 commit after 'resolve merge conflicts' so version churn stays out of the behavioural merge commit.
Fixes hang when running the finder from the repo root without a path
scope. Root cause: upstream-only packages (packages/console, packages/web,
packages/desktop, etc. in config.skipFiles) contain multi-megabyte
media assets that stall concurrent Bun `git show` subprocesses on the
pipe buffer.
Changes:
- Batch upstream blob sizes in one `git cat-file --batch-check`
subprocess before classifying anything. Files with missing upstream
land directly in `upstream-missing`; files > 256 KB land in the new
`too-large` bucket. Only sane-sized survivors get per-file `git show`.
- Filter out files matching the merge config's `keepOurs` and
`skipFiles` globs (.github workflows, translated READMEs, upstream-
only packages, etc.) — these are intentionally preserved or removed
in Kilo and would otherwise pollute the report and tempt incorrect
resets.
Full-repo dry-run now completes in ~2s.
Incorporate lessons from the v1.14.30 merge: explain reasoning before
showing diffs, investigate why Kilo-specific helpers exist before
bypassing them, prefer commenting-out over deletion with kilocode_change
markers, use TODO (not NOTE) for follow-ups, check adjacent files that
structural upstream splits force you to touch, grep for usages before
deleting apparently-unused upstream declarations, and include PR-body
guidance and the 'resolve merge conflicts' commit convention.
Users that hand us BOM-less UTF-16/32 are violating the documented
contract; trust jschardet + iconv.encodingExists and let the result
be whatever it is.
Replace the subprocess-based line diff in classifyDrift with an
in-process multiset diff (approxDiff) so concurrent classifications
don't deadlock on big text files like sprite.svg via Bun $.quiet()
pipe-buffer stalls.
Also filter non-code assets (SVG, PNG, fonts, archives, lock files,
etc.) before classification so they don't bloat the report or stress
git subprocesses. Switch kilo-only path excludes to glob pathspecs so
every packages/kilo-*/ and **/kilocode/** dir is excluded without
maintaining a hand list.
Rename the 'whitespace-only' bucket to 'cosmetic-only' — with the
multiset diff it also catches line reordering, so the old label was
misleading.
When autocompleting a file, folder, or special mention via the @ menu
in the chat textarea, insert a single trailing space (unless the next
char is already whitespace) so typing immediately after selection does
not get appended to the path and break attachment parsing.
* fix(cli): restore kilo branding in MCP auth toast and client name
The 'Run: opencode mcp auth' popup / toast and the MCP protocol client
'name' field were reverted to 'opencode' by an upstream refactor
(opencode PR #22913, pulled in via Kilo PR #9346). Re-apply the
Kilo-branded strings with narrow kilocode_change markers and add a
regression test in packages/opencode/test/kilocode/ so the next upstream
merge fails a Kilo-owned test instead of shipping an 'opencode' popup.
* fix: use kilocode_change block markers for startAuth signature
---------
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: marius-kilocode <marius@kilocode.ai>
Bulk-finds files that have drifted insignificantly from the last merged
upstream and (optionally) resets them. Extracts shared clean/changed
marker helpers into utils/markers.ts and shared reset logic into
utils/reset.ts so both the single-file reset helper and the new finder
use the same classification pipeline.