The /local-review command used git diff base...HEAD (triple-dot) which only
captured committed changes. The diff viewer uses merge-base + two-dot diff
against the working tree. This mismatch caused /local-review to show
'nothing to review' when changes were uncommitted.
Now computes merge-base explicitly and diffs the working tree against it,
matching WorktreeDiff behavior. Also includes untracked files.
The .help('help', ...) method registers yargs' built-in help command
which shadows the custom HelpCommand registered on the same 'help' path.
This means 'kilo help --all' never reaches the custom handler.
Fix by:
- Replacing .help('help', ...) with .help(false) + .option('help', ...)
to disable the built-in command while keeping --help/-h flags
- Adding early-exit handlers in middleware for --help and --version
to skip expensive initialization (telemetry, DB migration)
UpgradeCommand and UninstallCommand are plain object literals (no cmd()
wrapper) whose handler param types don't satisfy CommandModule<any, any>.
Remove the annotation and let TypeScript infer the union type — consumers
already cast via loadCommands().
The shell-completion entrypoint was registered via .completion() in index.ts
but missing from the commands array used by generateHelp(). This meant
kilo help --all and cli-reference.md never included it.
Add a synthetic CommandModule entry for completion to commands.ts and remove
the now-redundant manual row in generateCommandTable().
Separate verbose parse details into a new Warning.detail field so toast
messages stay short while 'kilo config check' and VS Code's Show Details
action expose the full diagnostic. Make the TUI config-warning toast
persistent (dismissed on first prompt submit) and fire VS Code's
checkConfigWarnings() independently so prior failures in the SSE handler
cannot suppress it. Add 'kilo config check' subcommand that prints all
warnings with color and exits non-zero.
Collect warnings during config loading instead of crashing when config
files have invalid JSON, schema errors, or frontmatter issues. Warnings
are exposed via a new GET /config/warnings pull-based endpoint.
- Add Config.Warning schema and warnings collection in stateInit()
- Wrap all loadFile/load calls with try/catch to collect warnings
- Thread warnings through loadCommand/loadAgent/loadMode/invalid
- Wrap well-known remote config block to prevent network/parse crashes
- Add GET /config/warnings server route with OpenAPI spec
- Regenerate SDK with config.warnings() method
- TUI: fetch warnings in bootstrap non-blocking phase, show as toast
- VS Code: fetch warnings on SSE connect, show as native notifications
- Add 5 new tests for warning collection (JSON, schema, markdown)
The skill loaded but the agent still only searched the repo root when
asked 'where is /review-pr?'. Add an explicit procedural subsection
that tells the agent to search ~/.config/kilo/, ~/.kilo/, ~/.kilocode/,
and ~/.opencode/ with explicit path arguments before falling back to
project directories. Add a regression test verifying the guidance is
present in the builtin skill output.