* fix(tui): dedupe solid-js and @opentui/solid to fix "No renderer found" startup crash
The bundled CLI shipped with two copies of solid-js and two copies of
@opentui/solid since 7.2.1. Each duplicated copy of solid-js and
@opentui/solid creates its own RendererContext token via createContext(),
so the context provided by render() (using one copy) is invisible to
useRenderer() calls resolved against the other copy. A reactive setStore
early in boot triggers a cascade that crosses the copy boundary and
explodes with "Error: No renderer found", preceded by the warning
"You appear to have multiple instances of Solid."
Two duplications were responsible:
1. solid-js: @opentui/solid@0.1.87 declares an exact "solid-js": "1.9.9"
dependency, so bun installed a nested solid-js@1.9.11 inside
node_modules/@opentui/solid/node_modules while the rest of the
workspace used the catalog solid-js@1.9.12 at the top level. Force
dedupe via a root override.
2. @opentui/{core,solid}: packages/kilo-gateway pinned dev/peer
versions to 0.1.75 while opencode used 0.1.87. With kilo-gateway's
tui module imported by opencode in 7.2.1+, both versions were
bundled side-by-side. Bump kilo-gateway's pins to 0.1.87 to match.
Verified locally with a --single build on macOS arm64: pre-fix the binary
crashes on startup with the Solid error; post-fix it boots cleanly. Bundle
shrinks ~16KB from removing the duplicated solid-js copy.
* fix: Upgrade stale version with catalog:
---------
Co-authored-by: Brendan DeBeasi <brendandebeasi@users.noreply.github.com>
Co-authored-by: Johnny Amancio <johnnyeric@gmail.com>
The foo/bar/baz good/bad examples didn't illustrate the rule (just
shorter nonsense vs. longer nonsense). Replace with prose that points
at the canonical 'Naming Enforcement' block, which already lists
realistic preferred names and anti-examples.
* docs: add free and budget model picks to model selection guide
Closes#7038. Links to Auto Model Free and Using Kilo for Free pages.
* docs: address review warnings for model pricing accuracy
* fix: remove stale models table
* Apply suggestions from code review
Co-authored-by: Johnny Amancio <johnnyeric@gmail.com>
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
* feat: Add support for native agents from marketplace instead of modes
* chore: update kilo-vscode visual regression baselines
* fix: add guard for case when user has pre-existing agent with same name
* chore: Clean up unused code
* chore: continue clean up of old code related to modes
* chore: add notification message informing users about migration from modes to agents
* fix: fix broken layout of remove dialog and update leftover mode string
* fix: adjust strings with mode string instead of agent
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
config.get() returns the merged effective value, so a workspace-level pin
or the schema default would falsely look like a stored global default.
Switch to config.inspect().globalValue so the migration only acts on
values actually stored in user settings, and update the test stub to
model scoped values.
Looking up by provider+model id instead of relying on array index makes
the default robust to reordering of the AUTOCOMPLETE_MODELS list, and
fails loudly at module load if the referenced entry is ever removed.
Adds a test asserting the default resolves to a real entry.
The migration cleared pinned default settings before the manager's first
readSettings() call, but firing it as a void promise let the manager's
constructor (which kicks off load() synchronously) race with the migration.
Awaiting the migration in registerAutocompleteProvider ensures the cleared
state is visible when the manager loads.