Move the ask agent's deny+allowlist after user config in the merge
order so ask mode's restrictions always win. Previously, user global
permission config (e.g. edit: { 'src/log.ts': 'allow' }) was appended
last, causing PermissionNext.disabled() to stop at the user's specific-
pattern rule and leave edit/write/bash in the LLM's tool list.
Fixes#6235
- introduce ENV_VERSION constant in kilo-gateway and export it
- modify getEditorNameHeader to append version when provided
- export ENV_VERSION from gateway index for external use
- initialize ENV_VERSION from Installation.VERSION in opencode startup
- update tests to verify editor header with and without version
Add the Enhance Prompt feature to the VS Code extension, matching the
legacy extension's behaviour. A ✨ sparkle button in the chat input
toolbar rewrites the user's draft prompt using an LLM.
CLI:
- POST /enhance-prompt endpoint using LLM.stream with small model
- System prompt as agent.prompt for caching; user text as user message
- clean() strips code fences and surrounding quotes from LLM output
Extension:
- KiloProvider handler using SDK client.enhancePrompt.enhance()
- Shows VS Code error notification on failure
- WandSparkles icon from lucide-solid via @kilocode/kilo-ui
- Spin animation while enhancement is in flight
- Empty-input click shows feature description (all 16 i18n locales)
- Ctrl+Z / ⌘Z undo restores original draft
- Guard checks isBusy/isDisabled/enhancing matching canEnhance()
Tests:
- 11 unit tests for clean() in enhance-prompt.test.ts
Migration plan:
- Removed feature row (parity achieved)
- Deleted prompt-improvement.md spec doc
Move showIn filtering from the gateway to each client. The gateway now
returns all notifications unfiltered, and the CLI TUI filters for
showIn containing "cli" while the VS Code extension filters for
"extension". Notifications with no showIn field appear in both clients.
This prevents extension-targeted notifications (e.g. "Prefer the
terminal? Install the Kilo CLI") from appearing in the CLI where
they don't make sense.