CI:
- Render the config console's active overlay target from its new object
shape instead of passing it to JSX.
- Make the config overlay `expected` revision optional in the schema,
writer, and handler so clients without a binding write unconditionally
instead of receiving a 400, and add the missing PUT /indexing/consent
exerciser scenario. Regenerate the SDK for the schema change.
- The multi-project Storybook story called useLanguage() outside its
provider and rendered nothing; it now uses the story translator.
- Scope indexing test select locators by row title, since the tab gained a
project selector that shifted positional lookups.
Review findings:
- Gate worktree creation, promotion, and multi-version creation on the
target project's state: waitForStateReady only tracked the active
project, so those handlers could mutate a background project's state
before it loaded.
- Re-check trust and enablement for every project-stamped message instead
of resolving contexts through the unchecked map lookup.
- Register projects through resolveProjectRoot so a folder inside a linked
worktree cannot duplicate an existing project, and fix that helper to
issue valid rev-parse commands.
- Validate the persisted activeTarget shape before applying it.
- Stop throwing from workspace/session directory resolution: it runs
eagerly per webview message, where a throw dropped the message.
- Evict superseded config bindings per scope and directory.
- Guard the multi-project rename against the blur that Escape triggers.
- Unregister routes when disabling secondary projects.
- Replace the section message substring test with an explicit type set.
- Match an open session tab in the project search's current item and scope
selection acks by project id.
- Filter untrusted projects out of indexing consent, and restore config
scope switching plus project-scoped indexing writes that the consent
rework had removed.
- Round-trip the sessions-collapsed mutation so multi-project bodies, which
render purely from pushed state, reflect the toggle.
Adds an experimental.websearch config flag that exposes the websearch
tool to models from any provider, not only the Kilo gateway. The flag
is editable from the VS Code Web Tools settings tab (renamed from
Browser) and the Kilo Console Tools page, with project/global overlay
inheritance and revert support. Environment flags KILO_ENABLE_EXA and
KILO_ENABLE_PARALLEL keep working as before.