Skip to content

chore: remove upstream .opencode project config - #15283

Closed
marius-kilocode wants to merge 1 commit into
v2from
remove-opencode-dir
Closed

marius-kilocode wants to merge 1 commit into
v2from
remove-opencode-dir

Conversation

@marius-kilocode

Copy link
Copy Markdown
Collaborator

What Problem This Solves

.opencode/ is upstream's own project config for developing OpenCode: contributor agents (triage, duplicate-pr), commands (commit, changelog, rmslop, translate, ...), skills (effect, opencode-dev, rtl-aware-development, sample-skill), translation glossaries, the GitHub triage tools and sample themes. Kilo does not use any of it: no code, test, script or workflow in the repository references these files, the triage workflows are already removed, and Kilo v1 never read .opencode. With #15282, Kilo v2 does not read it either.

Why This Change Was Made

Same process as the desktop and web app removal in #15151:

  • Delete .opencode/ (41 tracked files).
  • Add .opencode/** to skipFiles in script/upstream/utils/config.ts. The sync removes upstream changes and additions under the path again, modify/delete conflicts included, and the shared-patch counter does not count the removal.
  • Extend the "Not shipped" sentence in migration-context.md decision 7.

Kilo keeps its project config in .kilo/ (Kilo-owned in script/upstream/utils/owned.ts).

User Impact

None for Kilo users. In this repository, the TUI no longer finds the two sample themes (mytheme, smoke-theme). The useful parts of the upstream opencode-dev skill (server API debugging, log filtering, heap and CPU profiles, inspector) are not ported here; they need Kilo paths and a check of each command, and stay a follow-up for .kilo/skills/v2-migration.

Evidence

  • shouldSkip against defaultConfig.skipFiles: .opencode/agent/triage.md, .opencode/opencode.jsonc, .opencode/skills/opencode-dev/SKILL.md match; .kilo/skills/v2-migration/SKILL.md, packages/core/src/config/discovery.ts and docs/.opencode/x.md do not.
  • bun script/check-shared-patches.ts: ok, counts unchanged (files 31, markedLines 316, unmarkedLines 50, deletedFiles 0).
  • bun script/check-opencode-annotations.ts: ok. bun script/upstream/progress.ts --check: up to date.
  • script/upstream: checks.test.ts and merge.test.ts, 10 pass.

Kilo keeps its project config in .kilo. The sync skips upstream changes under .opencode (skipFiles), and the shared-patch counter does not count the removal.
@github-actions

Copy link
Copy Markdown
Contributor

➖ v2 migration progress: 0.9% → 0.9% (0 done, 0 total, 0 dropped; 87/9829 cells)

Placement: 0 new marked lines in shared files, 0 new kilo_port annotations, 0 new core-internal imports.

Ratchets: 9 core-internal imports (base 9); shared patches by rung 29 seam, 2 patch (base 29 seam, 2 patch).

No change to the progress map.

v2 migration progress map at this commit

Full map · how cells close

@marius-kilocode

Copy link
Copy Markdown
Collaborator Author

Folded into #15282, so the .opencode removal ships and is tested together with the config discovery change.

// Upstream VS Code extension (Kilo ships its own)
"sdks/vscode/**",
// Upstream's own project config for developing OpenCode: contributor agents, commands, skills, glossaries,
// triage tools and sample themes. Kilo reads `.kilo` (migration-context.md decision 11) and keeps its

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[SUGGESTION]: The cited decision number does not exist

migration-context.md has decisions 1-10 only; the .opencode scope statement is decision 7, the line this PR edits. Cite decision 7, or drop the number.

// Upstream's own project config for developing OpenCode: contributor agents, commands, skills, glossaries,
// triage tools and sample themes. Kilo reads `.kilo` (migration-context.md decision 11) and keeps its
// project config there.
".opencode/**",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[SUGGESTION]: The new skip pattern has no test coverage

script/upstream/transforms/skip-files.test.ts enumerates the product areas Kilo removed in the v2 config skips the product areas Kilo removed (desktop, app, console, web, infra, sst.config.ts, sdks/vscode). It was not extended for .opencode/**, so removing or mistyping the pattern would pass CI. Adding e.g. .opencode/opencode.jsonc and .opencode/themes/mytheme.json there would lock in the new entry.

5. **Staged cutover.** G1 CLI/TUI → G2 VS Code → G3 JetBrains, each with its own go/no-go. G2 and G3 are independent client-surface tracks that run in parallel with G1 once their prerequisites land. Until their gate, the IDEs stay on v1: VS Code bundles the CLI from the same `main` build (no version pin); JetBrains pins a CLI version.
6. **Storage.** A separate customer v2 data store. v1 files are never touched while any v1 surface ships. Import is opt-in and re-runnable. Path consolidation only after G3.
7. **Scope.** Post-cutover (non-gating): voice, image generation, team and incremental sharing, legacy TUI extras, and features behind experimental flags on v1 that are off by default, unless explicitly made a gate. Features named experimental but on by default on v1 (for example background subagents and the shared agent board) are in scope like any shipped feature. KiloClaw is not needed. Hard gates: FIM/next-edit for G2; whether it gates G3 is pending Q-G3-01. Cloud agents and Anaconda Desktop gate whichever surface they consume. Not shipped, as on v1: upstream's desktop app, web app and hosted platform packages, removed from `origin/v2` on 2026-10-16 (#15151). The sync skips upstream changes under them (`skipFiles` in `script/upstream/utils/config.ts`), and the shared-patch counter does not count them. The CLI embeds no web UI; non-API server paths return 404.
7. **Scope.** Post-cutover (non-gating): voice, image generation, team and incremental sharing, legacy TUI extras, and features behind experimental flags on v1 that are off by default, unless explicitly made a gate. Features named experimental but on by default on v1 (for example background subagents and the shared agent board) are in scope like any shipped feature. KiloClaw is not needed. Hard gates: FIM/next-edit for G2; whether it gates G3 is pending Q-G3-01. Cloud agents and Anaconda Desktop gate whichever surface they consume. Not shipped, as on v1: upstream's desktop app, web app and hosted platform packages, removed from `origin/v2` on 2026-10-16 (#15151); upstream's own `.opencode/` project config (contributor agents, commands, skills, glossaries, triage tools, sample themes), removed on 2026-10-20 because Kilo keeps its project config in `.kilo`. The sync skips upstream changes under them (`skipFiles` in `script/upstream/utils/config.ts`), and the shared-patch counter does not count them. The CLI embeds no web UI; non-API server paths return 404.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[SUGGESTION]: "Not shipped, as on v1" overstates the v1 state for .opencode

On v1, script/upstream/utils/config.ts lists .opencode/command/commit.md under keepOurs (Kilo's own /commit command with Kilo model and prefix rules), and .opencode/agent/triage.md plus .opencode/tool/github-triage.ts carry kilocode_change blocks (Kilo model and Kilo-Org/kilocode routing). v1's triage workflow is disabled, so no runtime behavior is lost, but the decision and PR body do not record that these Kilo-authored files are intentionally dropped rather than ported into .kilo/. Naming them, or porting the /commit command to .kilo/command/, would keep the migration record accurate.

@kilo-code-bot

kilo-code-bot Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: 3 Issues Found | Recommendation: Address before merge (PR is closed unmerged as of 2026-10-20T10:15:30Z, so these apply if it is reopened or replaced)

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 3

No lost kilocode_change markers or Kilo-owned content were found in the 41 deleted .opencode/ files: none of them contain Kilo markers at HEAD~1, so no v2 Kilo change is dropped. Kilo v2 confirms it no longer reads .opencode (KiloConfigDiscovery.directories in packages/core/src/kilocode/config/discovery.ts), and no package, test, script or workflow loads the deleted paths. .opencode/** in skipFiles correctly matches both modified and modify/delete conflicts (skip-files runs with --no-commit, so HEAD is Kilo's pre-merge tree), and script/upstream/utils/shared.ts exempts it from the patch counter as the PR body states.

Issue Details (click to expand)

SUGGESTION

File Line Issue
script/upstream/utils/config.ts 135 Comment cites migration-context.md decision 11; decisions end at 10 and the .opencode scope statement is decision 7
script/upstream/utils/config.ts 137 New .opencode/** skip entry is not added to the enumeration test in script/upstream/transforms/skip-files.test.ts, so a mistyped or removed pattern would pass CI
migration-tracking/plans/migration-context.md 41 "Not shipped, as on v1" does not record that v1 kept a Kilo-specific .opencode/command/commit.md (keepOurs) and Kilo-marked triage agent/tool; no runtime behavior is lost because v1's triage workflow is disabled, but these are dropped rather than ported to .kilo/
Files Reviewed (43 files)
  • .opencode/** (41 files, all deleted) - no issues in changed content
  • script/upstream/utils/config.ts - 2 suggestions
  • migration-tracking/plans/migration-context.md - 1 suggestion

Fix these issues in Kilo Cloud


Reviewed by deepseek-v4.1-flash-1017 · Input: 85.7K · Output: 16.8K · Cached: 2.3M

Review guidance: REVIEW.md from base branch v2

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.

1 participant