- Fix npx command to use --package flag since package has multiple bins
- Remove undocumented autonomous mode (--auto) from Getting Started and Commands
- Remove kilo serve from Commands table (internal, not user-facing)
- Fix kilo session to show actual subcommands (list, delete)
- Remove kilo completion from Commands table (not working)
- Fix table formatting
The @kilocode/cli npm package page had no README. This adds a
README covering installation, usage, features, and links, and
updates the publish script to include it in the published package.
* docs(kiloclaw): add model commands section to Control UI page
Add a 'Changing Models' section to control-ui.md documenting the /model
and /models slash commands for browsing and switching between 335+ models
via the Control UI Chat. Add cross-reference from dashboard.md's
'Changing the Model' section pointing to the new docs.
* docs(kiloclaw): add per-session note, default model config, and OpenClaw link
Remove inline screenshot placeholder. Add note that /model switches apply
per-session only, explain how to change the default model via openclaw.json,
and link out to OpenClaw Model Providers docs for advanced configuration.
* Apply suggestions from code review
* Apply suggestions from code review
Change proc.once('exit') to proc.once('close') so all stdout/stderr
data events are delivered before StringDecoder.end() is called. The
'exit' event fires when the process exits but before stdio streams
finish draining, which could cause the decoder flush to miss trailing
chunks and corrupt the last multi-byte character.
decoder.write() can hold incomplete multi-byte sequences internally.
Without calling decoder.end() after streams close, those trailing bytes
are silently dropped. Flush all decoders after process exit so any
remaining bytes are emitted as replacement characters rather than lost.
Address review feedback: a shared StringDecoder across stdout and stderr
can mix partial UTF-8 bytes between streams. Use one decoder per pipe so
incomplete sequences on stdout are never completed by stderr bytes.
The Agent Manager tracks all worktree sessions in a single KiloProvider,
so permissions() and questions() contain entries from every session.
PR #6850 removed the per-session filter, causing cross-session leakage
where prompts from session A would appear in session B's dock.
Add a sessionFamily memo that walks message parts to collect child session
IDs (subagents) recursively, then filter permissions/questions to only the
current session + its descendants.
Replace chunk.toString() with StringDecoder in stream processing to
prevent garbled characters (arrows, tree-drawing chars appearing as
mojibake) when multi-byte UTF-8 sequences are split across chunk
boundaries. StringDecoder maintains state across chunks to correctly
reassemble incomplete characters.
Fixed in bash tool, prompt shell execution, and ripgrep output.
* fix: process carriage returns in bash tool output for Windows
* fix: normalize CRLF before processing carriage returns
Normalize \r\n to \n first so Windows CRLF line endings aren't
mistakenly treated as overwrite frames, which would blank out
ordinary output lines.
* fix: preserve visible frame when trailing \r produces empty segment
When terminal output ends with a bare carriage return (e.g. '50%\r'),
split('\r') produces an empty last segment. Instead of returning the
empty string (which blanks the progress display), walk backward to
find the last non-empty segment.
Anonymous users don't have access to kilo-auto/frontier (a paid model set),
so the extension silently fails when they try to use it. Change the hardcoded
default to kilo-auto/free so new installs work out of the box without login.
Every child_process.spawn() call was missing windowsHide: true, causing
a visible CMD console window to briefly appear on every shell command,
LSP server start, ripgrep search, clipboard operation, and process kill
on Windows. This option is a no-op on non-Windows platforms.
Remove the info/note callout added by PR #6366 that directed users to
manually edit exec-approvals.json or use the OpenClaw CLI when a node
doesn't advertise exec approval capabilities.
Update permission stories to render ChatView with PermissionDock above the
chatbox instead of old inline permission buttons. Add new stories for
todowrite permission dock, write permission with file patterns, and question
dock above chatbox.
remove deprecated model-provider-blocklist page and nav item
update enterprise model-access-controls doc content
add redirect from old docs path to new enterprise path
Replace inline permission rendering with a dedicated PermissionDock component
using kilo-ui's DockPrompt, matching the pattern from packages/app/. The prompt
input is now hidden when a permission or question is pending, instead of being
stacked below it.
* refactor: always diff worktrees against remote tracking ref
* fix: use seed repo to control initial branch name in CI tests
The createTempRepoWithOrigin helper used git init --bare which
inherits the system default branch name (master on some CI).
Now uses a seed repo with an explicit branch rename to main.
* fix: address review feedback - validate remote refs and avoid slash-parsing
- Only set remote for existing branches when remote tracking ref exists
- Pass remote explicitly to aheadBehind() instead of parsing from ref
- Use resolved remote in defaultBranch() instead of hardcoded origin
* fix: verify remote name against actual remotes in backward compat path
stripRemotePrefix now checks the git remote list instead of
refExistsLocally to avoid treating slash-named local branches
like release/1.0 as remote-prefixed refs.