* fix: handle AbortError during kilo login and org selection
Async onSelect handlers in DialogKiloOrganization and team selection
were not wrapped in try/catch. Since DialogSelect calls onSelect
without awaiting the returned promise, any rejection (e.g. AbortError
from SDK signal) became an unhandled rejection that Bun dumped raw to
the terminal. Wrap all async SDK calls in org/team selection with
proper error handling and silently ignore AbortErrors.
* fix: log non-abort errors during fallback sync reset
Replace try/catch wrapping ~400 lines with a finished flag pattern to
minimize upstream merge conflicts. Combine multiple kilocode_change
markers into single blocks.
Addresses review feedback from marius-kilocode on PR #155.
The Kilocode extension stores project-level MCP settings in
.kilocode/mcp.json, but the migrator was looking for
.kilocode/mcp_settings.json (which is only used for global settings).
This meant local MCP servers were never picked up by the CLI.
refactor(opencode): improve project ID resolution and normalization
Implement logic to resolve a unique project identifier with priority given
to `.kilocode/config.json` and falling back to the git origin remote URL.
The resolved ID is normalized, cached per-instance, and sent as a header
to the Kilo Gateway provider to enable project-specific tracking.
* fix: use 'max' instead of 'xhigh' as highest reasoning effort for Anthropic models on Kilo Gateway
Anthropic's native effort levels are low/medium/high/max, not xhigh.
The upstream merge replaced the Kilo-specific effort mapping with
OPENAI_EFFORTS which uses xhigh. This restores 'max' as the
user-facing variant name while mapping it to 'xhigh' on the wire
for OpenRouter API compatibility.
* fix: clarify comment about OpenRouter effort naming vs Anthropic naming
* feat: add Kilo soul prompt for consistent personality across all models
* fix: gate soul prompt behind Codex check to match existing prompt delivery pattern
Codex sessions deliver prompts via options.instructions, not system messages.
Prepend the soul to options.instructions for Codex, and skip it from the
system array, matching how SystemPrompt.provider() is already handled.
* fix: make Ctrl+C interrupt instead of kill, require double-press to exit
* fix: revert config changes, handle ctrl+c double-press in event handlers only
Reverts keybind default changes (unnecessary — ctrl+c overlap is handled
by event priority in onKeyDown). Adds missing preventDefault() in
child-session ctrl+c handler to prevent SIGINT.
Add the x-kilocode-machineid HTTP header to outgoing requests when using
the kilo-gateway. This enables the cloud backend to track machine IDs
in the microdollar_usage_metadata table (Kilo-Org/cloud#90).
The header is set alongside the existing x-kilocode-mode header when
the model API uses @kilocode/kilo-gateway.