Always return the in-flight promise when a refresh is running so callers
don’t receive an expired cached value. Preserve the original timestamp
until refresh succeeds and only update it on successful recompute to
avoid masking failed refreshes.
Move share/ingest modules under kilo-sessions and update bootstrap and
session share/unshare/remove flows to use KiloSessions. Update ingest
queue test imports accordingly.
Add `kilo_meta` items to the ingest queue with a stable key so updates
coalesce, and send metadata derived from `KILO_PLATFORM` and `KILO_ORG_ID`
during session sync.
Move per-session debounce/retry ingest logic into a reusable IngestQueue
helper and wire ShareNext to use it, including an auth error callback to
clear cached credentials. Add test coverage for coalescing, throttling,
retry/backoff, and non-retryable failures.
- Add --auto flag to kilo run command
- Implement two-layer permission system:
- Permission rules: auto-approve all actions except questions
- Event loop handler: auto-respond to any permission requests
- Ensures fully non-interactive operation for CI/CD
- All changes marked with kilocode_change for upstream tracking
- Tested: file operations, bash commands, external directory access
Migrate Kilocode rules from .kilocoderules and .kilocode/rules/ to
Opencode's instructions config array.
Features:
- Discover rules from .kilocoderules, .kilocode/rules/*.md, and
mode-specific variants
- Support global rules from ~/.kilocode/rules/
- Read-only migration (never modifies project files)
- Combines with existing opencode config (never overwrites)
- Kilocode-only (no .roorules or .clinerules migration)
Files:
- rules-migrator.ts: Core migration logic
- config.ts: Integration point for direct CLI usage
- config-injector.ts: Integration for VSCode extension path
- rules-migrator.test.ts: 13 unit tests
- config-injector.test.ts: 4 new integration tests
- rules-migration.md: Documentation
Migrate Kilocode MCP server configurations from the VSCode extension's
mcp_settings.json to Opencode's native MCP config format.
Features:
- Read MCP settings from VSCode extension global storage
- Convert Kilocode format (command + args) to Opencode format (command array)
- Handle disabled servers (skip them)
- Warn about alwaysAllow permissions that cannot be migrated
- Support project-level .kilocode/mcp_settings.json
Config precedence (lowest to highest):
1. Kilocode MCP settings (new)
2. Remote/well-known config
3. Global user config
4. Project config (opencode.json)
5. OPENCODE_CONFIG_CONTENT
This allows users to configure MCP servers in the Kilocode VSCode extension
and have them automatically available in kilo-cli without any manual setup.
Native opencode config takes precedence over legacy Kilocode settings.
This ensures unicode and special characters in filenames are displayed correctly when generating diff patches, allowing proper file detection and revert operations
When opencode.json was missing a $schema, the config loader would add it
and write the file back - but with env variables like {env:API_KEY} replaced
with their actual secret values. This made it impossible to safely commit
opencode.json to version control.
Now the original config text is preserved when adding $schema, keeping
variable placeholders intact.